Una implementación rápida de BM25 en Python.
BM25 es una función de clasificación simple y rápida para motores de búsqueda que operan con palabras (tokens).
No funciona bien con los errores ortográficos, así que utilícelo sólo en contextos donde eso no sea un problema.
La implementación básica de BM25 es de dorianbrown/rank_bm25.
Inicialice BM25 pasándole un corpus, también conocido como un iterador sobre documentos tokenizados (una lista de cadenas).
from fast_bm25 import BM25
# Load your corpus
corpus = ...
bm25 = new BM25 ( corpus )
results = bm25 . get_top_n ([ "largest" , "city" , "in" , "Japan" ], corpus );
No es un paquete de Python, copia el archivo si quieres usarlo
En un corpus de texto, las palabras más comunes (the, a, an,...) suelen ser las menos informativas.
Al excluirlos de la consulta y buscar únicamente documentos que contengan al menos una palabra de la consulta, BM25 gana mucha velocidad y pierde muy poca precisión.
Esta compensación está controlada por el parámetro alpha
: mayor alfa => más velocidad y más corte de palabras.
En