Este repositório contém código e recursos para executar um mecanismo de pesquisa semântico e de texto completo para livros. Ele utiliza incorporações de texto e suporta metadados de colheita de livros de várias fontes, usando padrões internacionais como Marc21 e Onix 3.
O aplicativo aproveita o multiling-e5-small para gerar incorporações de texto e postgreSQL com o PGVector como loja de vetores. Isso fornece recursos multilíngues de pesquisa semântica.
Siga estas etapas para configurar e executar o aplicativo:
Execute o seguinte comando no diretório do projeto:
docker compose upIsso iniciará o banco de dados PostgreSQL com o PGVector ativado.
Selecione e configure o gateway e o serviço apropriados para a colheita de metadados, editando application.yaml . Opções disponíveis:
A primeira corrida pode levar algum tempo, pois baixará os modelos de incorporação necessários. Quando os modelos estiverem em vigor, o aplicativo estará pronto para uso.
./gradlew bootRun Visite http://localhost:8080 no navegador e observe os resultados à medida que a colheita de metadados progride. Para uma pesquisa semântica, digite uma consulta de pesquisa ou deixe -a em branco para uma escolha aleatória (o primeiro acerto de pesquisa será a escolha aleatória e o restante será semanticamente semelhantes). Para pesquisa de texto completo, digite uma consulta de pesquisa.
O Gateway abstrava os detalhes dos serviços externos e transforma os metadados dos serviços externos em um modelo comum. O aplicativo suporta três gateways: OAI-PMH (Marc21), Bokbasen (Onix) e Bibbi. Os maperes personalizados podem ser implementados conforme necessário e ativado, configurando os valores apropriados no application.yaml .
O OAI-PMH Gateway colhe metadados usando o Protocolo de Iniciativa de Arquivos Open para a colheita de metadados (OAI-PMH). Ele suporta a recuperação de dados bibliográficos no formato MARC21.
Documentação adicional para OAI-PMH da Biblioteksentralen (https://www.bibsent.no/):
O Bokbasen Gateway usa o formato Onix para metadados, comumente empregado na indústria editorial. Isso é particularmente útil para a colheita de dados de fornecedores de livros em larga escala.
Documentação adicional para Onix de Bokbasen (https://www.bokbasen.no/):
O gateway Bibbi é usado para integrar o serviço de metadados BIBBI. O gateway usa um formato baseado no schema.org.
Documentação adicional para Bibbi da BibliotekSentralen (https://www.bibsent.no/):
Instruções para extrair um conjunto de dados para ajustar um modelo baseado em Bert para classificação multi-label de resenhas de livros: https://github.com/torleifg/book-reviews-genre-classification
psql -h localhost -p 5433 -U username -d postgresExtrato de exemplo de conjunto de dados usando gênero e forma como rótulos.
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 ';';