เครื่องมือค้นหาเอกสารที่เขียนตั้งแต่เริ่มต้นใน Python อิงตามแนวคิดจากหนังสือ Introduction to Information Retrieval Book ของ Stanford
ใช้ส่วน TREC8Adhoc ของคอลเลกชัน TIPSTER สำหรับการสร้างดัชนีและการประเมินผล คุณจะต้องได้รับ TREC8Adhoc.tar.bz2
จากคอลเลกชันนี้ (ดิสก์ 4 และ 5) เพื่อสร้างผลลัพธ์ที่รายงานอีกครั้ง
ในการประเมินผลลัพธ์ด้วย trec_eval
คุณจะต้องดาวน์โหลด TREC-8 ad hoc qrels
คุณสมบัติ:
พอร์ต Rust ยุคแรกตั้งอยู่ที่ ir-search-engine-rust
โปรเจ็กต์นี้ต้องการอย่างน้อย python 3.6
pip install -r requirements.txt
เรียกใช้ python cmd_index.py --help
เพื่อดูคำแนะนำ
หากต้องการสร้างสถิติดัชนีและเอกสารโดยใช้วิธี SPIMI ให้รัน: python cmd_index.py --document_folder=./data/TREC8all/Adhoc/ --index_file=spimi.index --stats_file=spimi.stats spimi
สคริปต์จะสร้างไฟล์เอาต์พุตสองไฟล์:
index_file
: ดัชนีกลับด้านstats_file
: สถิติเอกสารที่รวบรวมระหว่างการสร้างดัชนี (ความยาวเอกสารและจำนวนคำ)รูปแบบไฟล์ดัชนีเป็นแบบข้อความ
บรรทัดแรกระบุจำนวนเอกสารที่ไม่ซ้ำในดัชนี
แต่ละบรรทัดติดต่อกันแสดงถึงคำที่มีข้อมูลที่เกี่ยวข้อง:
<TERM> <DOCUMENT_FREQUENCY> <POSTINGS>
เรียกใช้ python cmd_search.py --help
เพื่อดูคำแนะนำ
หากต้องการประเมินรายการหัวข้อในดัชนี SPIMI ที่สร้างไว้ก่อนหน้านี้โดยใช้การจัดอันดับ bm25 ให้รัน: python cmd_search.py --output_file=out.txt --run_name=dev --topics_file=./data/TREC8all/topicsTREC8Adhoc.txt --index_file=spimi.index --stats_file=spimi.stats bm25
สคริปต์สร้างไฟล์เอาต์พุตซึ่งสามารถใช้กับ trec_eval
เช่น: trec_eval -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt