Un moteur de recherche de documents écrit de toutes pièces en Python. Basé sur les concepts du livre Introduction to Information Retrieval de Stanford.
Utilise la partie TREC8Adhoc de la collection TIPSTER pour la création et l'évaluation d'index. Vous devrez obtenir TREC8Adhoc.tar.bz2
de cette collection (disques 4 et 5) pour reproduire les résultats rapportés.
Pour évaluer les résultats avec trec_eval
vous devrez télécharger les qrels ad hoc TREC-8.
Caractéristiques:
Un des premiers ports de Rust est situé sur ir-search-engine-rust.
Ce projet nécessite au moins Python 3.6.
pip install -r requirements.txt
Exécutez python cmd_index.py --help
pour obtenir des instructions.
Pour créer un index et des statistiques de document à l'aide de la méthode SPIMI, exécutez : python cmd_index.py --document_folder=./data/TREC8all/Adhoc/ --index_file=spimi.index --stats_file=spimi.stats spimi
Le script crée deux fichiers de sortie :
index_file
: index inverséstats_file
: Statistiques du document collectées lors de la création de l'index (longueurs des documents et nombre de termes)Le format du fichier d'index est basé sur du texte.
La première ligne indique le nombre de documents uniques dans l'index.
Chaque ligne consécutive représente un terme comprenant des données associées :
<TERM> <DOCUMENT_FREQUENCY> <POSTINGS>
Exécutez python cmd_search.py --help
pour obtenir des instructions.
Pour évaluer une liste de sujets sur un index SPIMI créé précédemment à l'aide d'un classement bm25, exécutez : 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
Le script crée un fichier de sortie qui peut être utilisé avec trec_eval
, comme : trec_eval -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt