用 Python 從頭開始編寫的文檔搜尋引擎。基於史丹佛大學資訊檢索入門書籍中的概念。
使用 TIPSTER 集合的 TREC8Adhoc 部分進行索引建構和評估。您必須從此集合(磁碟 4 和 5)中取得TREC8Adhoc.tar.bz2
才能重現報告的結果。
若要使用trec_eval
評估結果,您必須下載 TREC-8 ad hoc qrel。
特徵:
早期的 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
以取得說明。
要使用 bm25 排名評估先前建立的 SPIMI 索引上的主題列表,請執行: 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