Dieses Repository enthält Code und Ressourcen, um eine semantische und Volltext-Suchmaschine für Bücher auszuführen. Es verwendet Texteinbettungen und unterstützt die Erntebuchmetadaten aus verschiedenen Quellen, wobei internationale Standards wie Marc21 und Onix 3 verwendet werden.
Die Anwendung nutzt mehrsprachige E-E5-Small zum Generieren von Texteinbettungen und PostgreSQL mit PGVector als Vektorspeicher. Dies bietet mehrsprachige semantische Suchfunktionen.
Befolgen Sie diese Schritte, um die Anwendung einzurichten und auszuführen:
Führen Sie den folgenden Befehl im Projektverzeichnis aus:
docker compose upDadurch wird die PostgreSQL -Datenbank mit aktivierter PGVector gestartet.
Wählen Sie das entsprechende Gateway und Service-URI für die Ernte von Metadaten aus und konfigurieren Sie sie durch Bearbeiten application.yaml . Verfügbare Optionen:
Der erste Lauf kann einige Zeit dauern, da die erforderlichen Einbettungsmodelle heruntergeladen werden. Sobald die Modelle vorhanden sind, ist die Anwendung zur Verwendung bereit.
./gradlew bootRun Besuchen Sie http://localhost:8080 im Browser und beobachten Sie die Ergebnisse im Verlauf der Metadatenernte. Für semantische Suche geben Sie eine Suchabfrage ein oder lassen Sie sie für eine zufällige Auswahl leer (der erste Suchhit ist die zufällige Wahl und der Rest ist semantisch ähnliche Bücher). Für die Volltext-Suche geben Sie eine Suchabfrage ein.
Das Gateway fasst die Details der externen Dienste ab und verwandelt Metadaten aus den externen Diensten in ein gemeinsames Modell. Die Anwendung unterstützt drei Gateways: OAI-PMH (Marc21), Bokbasen (Onix) und Bibbi. Benutzerdefinierte Mapper können nach Bedarf implementiert und aktiviert werden, indem die entsprechenden Werte in application.yaml konfiguriert werden.YAML.
Das OAI-PMH-Gateway erntet Metadaten mit dem Open Archives Initiative-Protokoll für die Metadatenernte (OAI-PMH). Es unterstützt das Abrufen von bibliografischen Daten im Marc21 -Format.
Zusätzliche Dokumentation für OAI-PMH von Biblioteksentralen (https://www.bibsent.no/):
Das Bokbasen -Gateway verwendet das Onix -Format für Metadaten, das häufig in der Verlagsbranche beschäftigt ist. Dies ist besonders nützlich, um Daten von großen Buchanbietern zu ernten.
Zusätzliche Dokumentation für Onix von Bokbasen (https://www.bokbasen.no/):
Das Bibbi -Gateway wird zur Integration in den Bibbi -Metadatendienst verwendet. Das Gateway verwendet ein Format basierend auf schema.org.
Zusätzliche Dokumentation für Bibbi von Biblioteksentralen (https://www.bibibent.no/):
Anweisungen zum Extrahieren eines Datensatzes zur Feinabstimmung eines BerT-basierten Modells zur Multi-Label-Klassifizierung von Buchbesprechungen: https://github.com/torleifg/book-reviews-genre-classification
psql -h localhost -p 5433 -U username -d postgresExtrahieren Sie Beispieldatensatz mit Genre und Form als Etiketten.
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 ';';