Python で最初から書かれたドキュメント検索エンジン。スタンフォードの『情報検索入門』の概念に基づいています。
TIPSTER コレクションの TREC8Adhoc 部分をインデックスの構築と評価に使用します。報告された結果を再現するには、このコレクション (ディスク 4 および 5) からTREC8Adhoc.tar.bz2
取得する必要があります。
trec_eval
を使用して結果を評価するには、TREC-8 アドホック 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
スクリプトは 2 つの出力ファイルを作成します。
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 -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt
のように、 trec_eval
で使用できる出力ファイルを作成します。