Implementasi cepat BM25 dengan Python.
BM25 adalah fungsi pemeringkatan yang sederhana dan cepat untuk mesin pencari yang beroperasi pada kata-kata (token).
Ini tidak cocok dengan kesalahan ejaan, jadi gunakan hanya dalam konteks di mana hal itu tidak menjadi masalah.
Implementasi dasar BM25 berasal dari dorian brown/rank_bm25.
Inisialisasi BM25 dengan meneruskannya sebuah korpus, alias iterator pada dokumen yang diberi token (daftar String).
from fast_bm25 import BM25
# Load your corpus
corpus = ...
bm25 = new BM25 ( corpus )
results = bm25 . get_top_n ([ "largest" , "city" , "in" , "Japan" ], corpus );
Ini bukan paket python, salin file tersebut jika Anda ingin menggunakannya
Dalam korpus teks, kata-kata yang paling umum (the, a, an, ...) seringkali paling tidak informatif.
Dengan memotongnya dari kueri dan hanya mencari dokumen yang berisi setidaknya satu kata dari kueri, BM25 memperoleh banyak kecepatan namun kehilangan sedikit presisi.
Pertukaran ini dikendalikan oleh parameter alpha
: alpha yang lebih tinggi => kecepatan yang lebih tinggi dan pemotongan kata yang lebih banyak.
Pada