Un motor de búsqueda de documentos escrito desde cero en Python. Basado en conceptos del Libro de Introducción a la Recuperación de Información de Stanford.
Utiliza la parte TREC8Adhoc de la colección TIPSTER para la creación y evaluación de índices. Tendrá que obtener TREC8Adhoc.tar.bz2
de esta colección (Disco 4 y 5) para reproducir los resultados informados.
Para evaluar los resultados con trec_eval
tendrás que descargar los qrels ad hoc TREC-8.
Características:
Uno de los primeros puertos de Rust se encuentra en ir-search-engine-rust.
Este proyecto requiere al menos Python 3.6.
pip install -r requirements.txt
Ejecute python cmd_index.py --help
para obtener instrucciones.
Para crear un índice y documentar estadísticas usando el método SPIMI, ejecute: python cmd_index.py --document_folder=./data/TREC8all/Adhoc/ --index_file=spimi.index --stats_file=spimi.stats spimi
El script crea dos archivos de salida:
index_file
: índice invertidostats_file
: estadísticas de documentos recopiladas durante la creación del índice (longitud de los documentos y recuento de términos)El formato del archivo de índice está basado en texto.
La primera línea indica el número de documentos únicos en el índice.
Cada línea consecutiva representa un término que incluye datos relacionados:
<TERM> <DOCUMENT_FREQUENCY> <POSTINGS>
Ejecute python cmd_search.py --help
para obtener instrucciones.
Para evaluar una lista de temas en un índice SPIMI creado previamente usando una clasificación bm25, ejecute: 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
El script crea un archivo de salida que se puede usar con trec_eval
, como: trec_eval -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt