محرك بحث للمستندات مكتوب من الصفر بلغة بايثون. استنادًا إلى مفاهيم من كتاب مقدمة ستانفورد لاسترجاع المعلومات.
يستخدم الجزء TREC8Adhoc من مجموعة TIPSTER لبناء الفهرس وتقييمه. سيتعين عليك الحصول على TREC8Adhoc.tar.bz2
من هذه المجموعة (القرص 4 و5) لإعادة إنتاج النتائج التي تم الإبلاغ عنها.
لتقييم النتائج باستخدام trec_eval
سيتعين عليك تنزيل TREC-8 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