Fast BM25
1.0.0
Python での BM25 の高速実装。
BM25 は、単語 (トークン) を操作する検索エンジンのためのシンプルかつ高速なランキング機能です。
スペルミスはうまく機能しないため、それが問題にならない状況でのみ使用してください。
基本の BM25 実装は dorianbrown/rank_bm25 からのものです。
BM25 にコーパス、つまりトークン化されたドキュメント (文字列のリスト) の反復子を渡して、BM25 を初期化します。
from fast_bm25 import BM25
# Load your corpus
corpus = ...
bm25 = new BM25 ( corpus )
results = bm25 . get_top_n ([ "largest" , "city" , "in" , "Japan" ], corpus );
これは Python パッケージではないので、使用したい場合はファイルをコピーしてください
テキスト コーパスでは、最も一般的な単語 (the、a、an、...) は、多くの場合、情報量が最も少ないものです。
それらをクエリから切り離し、クエリの少なくとも 1 つの単語を含むドキュメントのみを検索することにより、BM25 は精度をほとんど損なうことなく速度を大幅に向上させます。
このトレードオフはパラメータalpha
によって制御されます。つまり、alpha が高いほど速度が向上し、単語のカットオフが増加します。
で