ที่เก็บนี้มีรหัสและทรัพยากรเพื่อเรียกใช้เครื่องมือค้นหาความหมายและข้อความเต็มสำหรับหนังสือ มันใช้การฝังข้อความและสนับสนุนข้อมูลเมตาของหนังสือเก็บเกี่ยวจากแหล่งต่าง ๆ โดยใช้มาตรฐานสากลเช่น Marc21 และ Onix 3
แอปพลิเคชันใช้ประโยชน์ จากหลายภาษา-E5-small สำหรับการสร้างการฝังข้อความและ postgreSQL ด้วย pgvector เป็นร้านค้าเวกเตอร์ สิ่งนี้ให้ความสามารถในการค้นหาความหมายหลายภาษา
ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่าและเรียกใช้แอปพลิเคชัน:
เรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีโครงการ:
docker compose upสิ่งนี้จะเริ่มฐานข้อมูล PostgreSQL ด้วยการเปิดใช้งาน PGVector
เลือกและกำหนดค่าเกตเวย์และบริการที่เหมาะสมสำหรับการเก็บเกี่ยวข้อมูลเมตาโดยแก้ไข application.yaml yaml ตัวเลือกที่มีอยู่:
การเรียกใช้ครั้งแรกอาจใช้เวลาสักครู่เพราะจะดาวน์โหลดโมเดลการฝังที่จำเป็น เมื่อโมเดลอยู่ในสถานที่แอปพลิเคชันจะพร้อมใช้งาน
./gradlew bootRun เยี่ยมชม http://localhost:8080 ในเบราว์เซอร์และดูผลลัพธ์เมื่อการเก็บเกี่ยวข้อมูลเมตาดำเนินไป สำหรับการค้นหาความหมายป้อนคำค้นหาหรือปล่อยให้ว่างสำหรับตัวเลือกแบบสุ่ม (การค้นหาครั้งแรกจะเป็นตัวเลือกแบบสุ่มและส่วนที่เหลือจะเป็นหนังสือที่คล้ายคลึงกันเชิงความหมาย) สำหรับการค้นหาข้อความแบบเต็มให้ป้อนคำค้นหา
เกตเวย์สรุปรายละเอียดของบริการภายนอกและแปลงข้อมูลเมตาจากบริการภายนอกเป็นรูปแบบทั่วไป แอปพลิเคชันรองรับสามเกตเวย์: OAI-PMH (Marc21), Bokbasen (onix) และ Bibbi ตัวแมปแบบกำหนดเองสามารถนำไปใช้ตามต้องการและเปิดใช้งานโดยการกำหนดค่าค่าที่เหมาะสมใน application.yaml
OAI-PMH Gateway Harvests Metadata โดยใช้โปรโตคอล Open Archives Initiative สำหรับการเก็บเกี่ยวข้อมูลเมตา (OAI-PMH) รองรับการดึงข้อมูลบรรณานุกรมในรูปแบบ Marc21
เอกสารเพิ่มเติมสำหรับ OAI-PMH จาก Biblioteksentralen (https://www.bibsent.no/):
Bokbasen Gateway ใช้รูปแบบ ONIX สำหรับข้อมูลเมตาซึ่งใช้กันทั่วไปในอุตสาหกรรมการพิมพ์ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการเก็บเกี่ยวข้อมูลจากผู้ขายหนังสือขนาดใหญ่
เอกสารเพิ่มเติมสำหรับ onix จาก Bokbasen (https://www.bokbasen.no/):
เกตเวย์ Bibbi ใช้สำหรับการรวมเข้ากับบริการข้อมูลเมตา Bibbi เกตเวย์ใช้รูปแบบตาม schema.org
เอกสารเพิ่มเติมสำหรับ bibbi จาก Biblioteksentralen (https://www.bibsent.no/):
คำแนะนำสำหรับการแยกชุดข้อมูลสำหรับการปรับแต่งแบบจำลอง Bert สำหรับการจำแนกประเภทหลาย label ของบทวิจารณ์หนังสือ: 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 ';';