Una implementación de Python de la función de clasificación BM25.
Hay 4 módulos principales del programa: analizador, procesador de consultas, función de clasificación y estructuras de datos. El módulo analizador analiza el archivo de consulta y el archivo de corpus para producir una lista y un diccionario, respectivamente. El procesador de consultas toma cada consulta de la lista de consultas y califica los documentos según los términos. La función de clasificación es una implementación de la función de clasificación BM25; utiliza el logaritmo natural en sus cálculos. Finalmente, el módulo de estructuras de datos contiene un índice invertido y una tabla de longitud del documento. El índice invertido utiliza un diccionario para asignar cada palabra a un diccionario; este diccionario secundario asigna cada identificación de documento a la frecuencia de palabras en el diccionario externo. La tabla de longitud del documento contiene la longitud de cada documento y también tiene una función para calcular la longitud promedio del documento de la colección.
Para ejecutarlo, simplemente ejecute $ python main.py
en la carpeta src.