Une implémentation Python de la fonction de classement BM25.
Il existe 4 modules principaux du programme : analyseur, processeur de requêtes, fonction de classement et structures de données. Le module analyseur analyse le fichier de requête et le fichier corpus pour produire respectivement une liste et un dictionnaire. Le processeur de requêtes prend chaque requête de la liste de requêtes et note les documents en fonction des termes. La fonction de classement est une implémentation de la fonction de classement BM25 ; il utilise le logarithme népérien dans ses calculs. Enfin, le module de structures de données contient un index inversé et un tableau de longueur de document. L'index inversé utilise un dictionnaire pour mapper chaque mot à un dictionnaire ; ce dictionnaire secondaire mappe chaque identifiant de document à la fréquence des mots dans le dictionnaire externe. Le tableau de longueur des documents contient la longueur de chaque document et dispose également d'une fonction permettant de calculer la longueur moyenne des documents de la collection.
Pour exécuter, exécutez simplement $ python main.py
dans le dossier src.