Eine von Grund auf in Python geschriebene Dokumentensuchmaschine. Basierend auf Konzepten aus Stanfords „Introduction to Information Retrieval Book“.
Verwendet den TREC8Adhoc-Teil der TIPSTER-Sammlung zur Indexerstellung und -auswertung. Sie müssen TREC8Adhoc.tar.bz2
aus dieser Sammlung (Datenträger 4 und 5) beziehen, um die gemeldeten Ergebnisse zu reproduzieren.
Um die Ergebnisse mit trec_eval
auszuwerten, müssen Sie die TREC-8-Ad-hoc-Qrels herunterladen.
Merkmale:
Ein früher Rust-Port befindet sich unter ir-search-engine-rust.
Dieses Projekt erfordert mindestens Python 3.6.
pip install -r requirements.txt
Führen Sie python cmd_index.py --help
aus, um Anweisungen zu erhalten.
Um mit der SPIMI-Methode einen Index und Dokumentstatistiken zu erstellen, führen Sie Folgendes aus: python cmd_index.py --document_folder=./data/TREC8all/Adhoc/ --index_file=spimi.index --stats_file=spimi.stats spimi
Das Skript erstellt zwei Ausgabedateien:
index_file
: Invertierter Indexstats_file
: Dokumentstatistiken, die während der Indexerstellung erfasst werden (Dokumentlängen und Termanzahl)Das Indexdateiformat ist textbasiert.
Die erste Zeile gibt die Anzahl der eindeutigen Dokumente im Index an.
Jede aufeinanderfolgende Zeile stellt einen Begriff einschließlich zugehöriger Daten dar:
<TERM> <DOCUMENT_FREQUENCY> <POSTINGS>
Führen Sie python cmd_search.py --help
aus, um Anweisungen zu erhalten.
Um eine Themenliste für einen zuvor erstellten SPIMI-Index anhand eines BM25-Rankings auszuwerten, führen Sie Folgendes aus: 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
Das Skript erstellt eine Ausgabedatei, die mit trec_eval
verwendet werden kann, etwa: trec_eval -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt