Eine Python-Implementierung der BM25-Ranking-Funktion.
Das Programm besteht aus vier Hauptmodulen: Parser, Abfrageprozessor, Ranking-Funktion und Datenstrukturen. Das Parser-Modul analysiert die Abfragedatei und die Korpusdatei, um jeweils eine Liste und ein Wörterbuch zu erstellen. Der Abfrageprozessor nimmt jede Abfrage in die Abfrageliste und bewertet die Dokumente anhand der Begriffe. Die Ranking-Funktion ist eine Implementierung der BM25-Ranking-Funktion; Es verwendet für seine Berechnungen den natürlichen Logarithmus. Schließlich enthält das Datenstrukturmodul einen invertierten Index und eine Dokumentlängentabelle. Der invertierte Index verwendet ein Wörterbuch, um jedes Wort einem Wörterbuch zuzuordnen. Dieses sekundäre Wörterbuch ordnet jede Dokument-ID der Worthäufigkeit im äußeren Wörterbuch zu. Die Dokumentlängentabelle enthält die Länge jedes Dokuments und verfügt außerdem über eine Funktion zur Berechnung der durchschnittlichen Dokumentlänge der Sammlung.
Führen Sie zum Ausführen einfach $ python main.py
im Ordner src aus.