該存儲庫包含代碼和資源來運行書籍的語義和全文搜索引擎。它使用文本嵌入,並使用MARC21和Onix 3等國際標準來支持從各種來源收穫書元數據。
該應用程序利用多語言 - e5-small來生成文本嵌入和以pgvector作為矢量存儲的郵政嵌入。這提供了多語種語義搜索功能。
請按照以下步驟設置並運行應用程序:
在項目目錄中運行以下命令:
docker compose up這將在啟用PGVector啟用PostgreSQL數據庫中。
通過編輯application.yaml選擇並配置適當的網關和Service-uri,以收集元數據。可用選項:
首次運行可能需要一些時間,因為它將下載必要的嵌入模型。一旦模型到位,應用程序就可以使用。
./gradlew bootRun訪問http://localhost:8080在瀏覽器中,並隨著元數據收穫的進展,觀看結果。對於語義搜索,輸入搜索查詢或將其留為空白以進行隨機選擇(第一個搜索命中將是隨機選擇,其餘的將是語義上相似的書籍)。有關全文搜索,請輸入搜索查詢。
網關將外部服務的詳細信息抽像出來,並將元數據從外部服務轉變為通用模型。該應用程序支持三個網關:OAI-PMH(MARC21),Bokbasen(Onix)和Bibbi。可以根據需要實現自定義映射器,並通過在application.yaml中配置適當的值來激活。
OAI-PMH Gateway使用開放式檔案倡議協議(OAI-PMH)收穫元數據。它支持以MARC21格式檢索書目數據。
來自Biblioteksentralen(https://www.bibsent.no/)的OAI-PMH的其他文檔:
Bokbasen Gateway使用出版行業通常使用的元數據的ONIX格式。這對於從大型書籍供應商那裡收集數據特別有用。
Bokbasen(https://www.bokbasen.no/)的Onix的其他文檔:
Bibbi網關用於與Bibbi元數據服務集成。網關使用基於schema.org的格式。
Biblioteksentralen(https://www.bibsent.no/)的Bibbi的其他文檔:
提取數據集用於微調基於BERT的模型的說明
psql -h localhost -p 5433 -U username -d postgres使用類型和形式作為標籤提取示例數據集。
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 ';';