Python으로 처음부터 작성된 문서 검색 엔진입니다. Stanford의 Information Retrieval Book 소개의 개념을 기반으로 합니다.
인덱스 구축 및 평가를 위해 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
스크립트는 두 개의 출력 파일을 생성합니다.
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
과 함께 사용할 수 있는 출력 파일을 생성합니다. trec_eval -q -m map -c ./data/TREC8all/qrels.trec8.adhoc.parts1-5 ./out.txt