Um mecanismo de busca de documentos escrito do zero em Python. Baseado em conceitos do livro Introdução à Recuperação de Informações de Stanford.
Usa a parte TREC8Adhoc da coleção TIPSTER para construção e avaliação de índices. Você terá que obter TREC8Adhoc.tar.bz2
desta coleção (Disco 4 e 5) para reproduzir os resultados relatados.
Para avaliar os resultados com trec_eval
você terá que baixar os qrels ad hoc TREC-8.
Características:
Uma das primeiras portas do Rust está localizada em ir-search-engine-rust.
Este projeto requer pelo menos python 3.6.
pip install -r requirements.txt
Execute python cmd_index.py --help
para obter instruções.
Para criar um índice e estatísticas de documento usando o método SPIMI, execute: python cmd_index.py --document_folder=./data/TREC8all/Adhoc/ --index_file=spimi.index --stats_file=spimi.stats spimi
O script cria dois arquivos de saída:
index_file
: índice invertidostats_file
: estatísticas do documento coletadas durante a criação do índice (tamanho do documento e contagem de termos)O formato do arquivo de índice é baseado em texto.
A primeira linha indica o número de documentos exclusivos no índice.
Cada linha consecutiva representa um termo incluindo dados relacionados:
<TERM> <DOCUMENT_FREQUENCY> <POSTINGS>
Execute python cmd_search.py --help
para obter instruções.
Para avaliar uma lista de tópicos em um índice SPIMI criado anteriormente usando uma classificação bm25, execute: 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
O script cria um arquivo de saída que pode ser usado com trec_eval
, como: trec_eval -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt