Этот репозиторий содержит код и ресурсы для запуска семантической и полнотекстовой поисковой системы для книг. В нем используются текстовые встраиваемые и поддерживают урожай метаданные книги из различных источников, используя международные стандарты, такие как MARC21 и Onix 3.
Приложение использует многоязычный-E5-Small для создания текстовых встроений и PostgreSQL с PGVector в качестве векторного хранилища. Это обеспечивает многоязычные возможности семантического поиска.
Следуйте этим шагам, чтобы настроить и запустить приложение:
Запустите следующую команду в каталоге проекта:
docker compose upЭто запустит базу данных PostgreSQL с включенной PGVector.
Выберите и настройте соответствующий шлюз и сервис-URI для сбора метаданных, редактируя application.yaml . Доступные варианты:
Первый запуск может занять некоторое время, так как он загрузит необходимые модели встраивания. Как только модели будут на месте, приложение будет готово для использования.
./gradlew bootRun Посетите http://localhost:8080 в браузере и следите за результатами в ходе развития метаданных. Для получения семантического поиска введите поисковый запрос или оставьте его пустым для случайного выбора (первый поиск будет случайным выбором, а остальные будут семантически похожими книгами). Для полнотекстового поиска введите поисковый запрос.
Ворота отвлекает детали внешних служб и превращает метаданные из внешних служб в общую модель. Приложение поддерживает три шлюза: OAI-PMH (MARC21), Bokbasen (ONIX) и Bibbi. Пользовательские картографии могут быть реализованы по мере необходимости и активированы путем настройки соответствующих значений в application.yaml .
Oai-pmh Gateway Metadatas с использованием протокола инициативы открытых архивов для сбора метаданных (OAI-PMH). Он поддерживает получение библиографических данных в формате MARC21.
Дополнительная документация для oai-pmh от Biblioteksentralen (https://www.bibsent.no/):
Bokbasen Gateway использует формат Onix для метаданных, обычно используемых в издательской индустрии. Это особенно полезно для сбора данных из крупномасштабных поставщиков книг.
Дополнительная документация для Onix от Bokbasen (https://www.bokbasen.no/):
Шлюз Бибби используется для интеграции с службой метаданных Bibbi. Ворота использует формат на основе Schema.org.
Дополнительная документация для Bibbi от Biblioteksentralen (https://www.bibsent.no/):
Инструкции по извлечению набора данных для точной настройки модели на основе BERT для многокачественной классификации обзоров книг: https://github.com/torleifg/book-reviews-genre-classification
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 ';';