Repositori ini berisi kode dan sumber daya untuk menjalankan mesin pencari semantik dan teks lengkap untuk buku. Ini menggunakan embedding teks dan mendukung pemanenan buku metadata dari berbagai sumber, menggunakan standar internasional seperti Marc21 dan Onix 3.
Aplikasi ini memanfaatkan multibahasa-E5-small untuk menghasilkan embeddings teks dan postgresql dengan pgvektor sebagai toko vektor. Ini memberikan kemampuan pencarian semantik multibahasa.
Ikuti langkah -langkah ini untuk mengatur dan menjalankan aplikasi:
Jalankan perintah berikut di direktori proyek:
docker compose upIni akan memulai database PostgreSQL dengan PGVector diaktifkan.
Pilih dan konfigurasikan gateway dan layanan-URI yang sesuai untuk memanen metadata dengan mengedit application.yaml . Opsi yang tersedia:
Lari pertama mungkin memakan waktu karena akan mengunduh model embedding yang diperlukan. Setelah model berada di tempat, aplikasi akan siap digunakan.
./gradlew bootRun Kunjungi http://localhost:8080 di browser dan saksikan hasilnya saat pemanenan metadata berlangsung. Untuk pencarian semantik, masukkan kueri pencarian atau biarkan kosong untuk pilihan acak (hit pencarian pertama akan menjadi pilihan acak dan sisanya akan menjadi buku yang sama secara semantik). Untuk pencarian teks lengkap, masukkan kueri pencarian.
Gateway mengabstraksi detail layanan eksternal dan mengubah metadata dari layanan eksternal menjadi model umum. Aplikasi ini mendukung tiga gateway: OAI-PMH (Marc21), Bokbasen (Onix) dan Bibbi. Mapper khusus dapat diimplementasikan sesuai kebutuhan dan diaktifkan dengan mengonfigurasi nilai yang sesuai di application.yaml .
Gateway OAI-PMH memanen metadata menggunakan protokol inisiatif arsip terbuka untuk pemanenan metadata (OAI-PMH). Ini mendukung pengambilan data bibliografi dalam format MARC21.
Dokumentasi tambahan untuk OAI-PMH dari Biblioteksentralen (https://www.bibsent.no/):
Gateway Bokbasen menggunakan format Onix untuk metadata, yang biasa digunakan dalam industri penerbitan. Ini sangat berguna untuk memanen data dari vendor buku skala besar.
Dokumentasi tambahan untuk Onix dari Bokbasen (https://www.bokbasen.no/):
Gateway Bibbi digunakan untuk berintegrasi dengan layanan metadata Bibbi. Gateway menggunakan format berdasarkan schema.org.
Dokumentasi tambahan untuk Bibbi dari Biblioteksentralen (https://www.bibsent.no/):
Instruksi untuk mengekstraksi dataset untuk menyempurnakan model berbasis Bert untuk klasifikasi ulasan buku multi-label: https://github.com/torleifg/book-reviews-genre-classification
psql -h localhost -p 5433 -U username -d postgresEkstrak Dataset Contoh Menggunakan Genre dan Bentuk sebagai Label.
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 ';';