Eine schnelle Implementierung von BM25 in Python.
BM25 ist eine einfache und schnelle Ranking-Funktion für Suchmaschinen, die mit Wörtern (Tokens) arbeiten.
Es funktioniert nicht gut mit Rechtschreibfehlern, also verwenden Sie es nur in Kontexten, in denen das kein Problem darstellt.
Die Basis-BM25-Implementierung stammt von dorianbrown/rank_bm25.
Initialisieren Sie BM25, indem Sie ihm einen Korpus, auch bekannt als Iterator, über tokenisierte Dokumente (eine Liste von Strings) übergeben.
from fast_bm25 import BM25
# Load your corpus
corpus = ...
bm25 = new BM25 ( corpus )
results = bm25 . get_top_n ([ "largest" , "city" , "in" , "Japan" ], corpus );
Es handelt sich nicht um ein Python-Paket. Kopieren Sie die Datei, wenn Sie sie verwenden möchten
In einem Textkorpus sind die häufigsten Wörter (the, a, an, ...) oft die am wenigsten informativen.
Indem BM25 sie von der Abfrage ausschließt und nur Dokumente durchsucht, die mindestens ein Wort der Abfrage enthalten, gewinnt es erheblich an Geschwindigkeit, verliert aber nur sehr wenig an Präzision.
Dieser Kompromiss wird durch den Parameter alpha
gesteuert: höheres Alpha => mehr Geschwindigkeit und mehr Wortunterbrechung.
Bei