Este repositorio contiene código y recursos para ejecutar un motor de búsqueda semántica y de texto completo para libros. Utiliza incrustaciones de texto y admite la cosecha de metadatos del libro de varias fuentes, utilizando estándares internacionales como MARC21 y ONIX 3.
La aplicación aprovecha multilingüe-E5-Small para generar incrustaciones de texto y PostgreSQL con PGVector como tienda vectorial. Esto proporciona capacidades de búsqueda semántica multilingüe.
Siga estos pasos para configurar y ejecutar la aplicación:
Ejecute el siguiente comando en el directorio del proyecto:
docker compose upEsto iniciará la base de datos PostgreSQL con PGVector habilitado.
Seleccione y configure la puerta de enlace y el servicio apropiados para la cosecha de metadatos editando application.yaml . Opciones disponibles:
La primera ejecución puede llevar algún tiempo, ya que descargará los modelos de incrustación necesarios. Una vez que los modelos estén en su lugar, la aplicación estará lista para su uso.
./gradlew bootRun Visite http://localhost:8080 en el navegador y observe los resultados a medida que avanza la cosecha de metadatos. Para la búsqueda semántica, ingrese una consulta de búsqueda o déjela en blanco para una opción aleatoria (el primer éxito de búsqueda será la opción aleatoria y el resto será de libros semánticamente similares). Para la búsqueda de texto completo, ingrese una consulta de búsqueda.
La puerta de enlace abstrae los detalles de los servicios externos y transforma los metadatos de los servicios externos en un modelo común. La aplicación admite tres puertas de enlace: Oai-PMH (MARC21), Bokbasen (Onix) y Bibbi. Los mapeadores personalizados se pueden implementar según sea necesario y activarse configurando los valores apropiados en application.yaml .
La puerta de enlace Oai-PMH recolecta metadatos utilizando el Protocolo de Iniciativa de Archivos Abiertos para la cosecha de metadatos (OAI-PMH). Admite la recuperación de datos bibliográficos en formato MARC21.
Documentación adicional para Oai-PMH de Biblioteksentralen (https://www.bibsent.no/):
Bokbasen Gateway utiliza el formato ONIX para metadatos, comúnmente empleado en la industria editorial. Esto es particularmente útil para cosechar datos de proveedores de libros a gran escala.
Documentación adicional para Onix de Bokbasen (https://www.bokbasen.no/):
La puerta de enlace de Bibbi se utiliza para integrarse con el servicio de metadatos de Bibbi. La puerta de enlace utiliza un formato basado en schema.org.
Documentación adicional para Bibbi de Biblioteksentralen (https://www.bibsent.no/):
Instrucciones para extraer un conjunto de datos para ajustar un modelo basado en Bert para la clasificación de múltiples laboratorios de reseñas de libros: https://github.com/torleifg/book-reviews-genre-classificación
psql -h localhost -p 5433 -U username -d postgresExtraiga un conjunto de datos de ejemplo usando género y forma como etiquetas.
copy (
select
concat(metadata ->>'title', '. ', metadata ->>'description') as text,
metadata ->>'genreAndForm' as labels
from
book
where
metadata->>'description' is not null
and metadata->>'description' <> ''
and length(metadata->>'description') > 200
and metadata->>'genreAndForm' is not null
and metadata->>'genreAndForm' <> '[]'
) to '~/dataset.csv' with csv header delimiter ';';