يحتوي هذا المستودع على رمز وموارد لتشغيل محرك بحث دلالي وكامل للكتب. يستخدم نصوص النصوص ويدعم بيانات التعريف الكتاب من مصادر مختلفة ، وذلك باستخدام معايير دولية مثل Marc21 و Onix 3.
يعمل التطبيق على الاستفادة من 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 وصفات بيانات مبادرة المحفوظات المفتوحة لبروتوكول محفوظات المحفوظات (OAI-PMH). وهو يدعم استرداد البيانات الببليوغرافية بتنسيق MARC21.
وثائق إضافية لـ OAI-PMH من Biblioteksentralen (https://www.bibsent.no/):
تستخدم بوابة Bokbasen تنسيق Onix للبيانات الوصفية ، التي تعمل عادة في صناعة النشر. هذا مفيد بشكل خاص لحصاد البيانات من بائعي الكتب على نطاق واسع.
وثائق إضافية لـ Onix من Bokbasen (https://www.bokbasen.no/):
يتم استخدام بوابة Bibbi للتكامل مع خدمة بيانات التعريف 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 ';';