Frequenzlisten-Erstellung

Als Erweiterung für die Tokenizerimplementation(en) stelle ich nun eine Klasse zur Verfügung, die sich um die Frequenzlistenerstellung kümmert.

Das Prinzip ist relativ einfach: Nachdem eine Zeile tokenisiert wurde, befinden sich die "gültigen" Wörter in einem Vector. Dieser wird pro Zeile durchgegangen und die jeweiligen Wörter werden dann in einen temporären Container der FrequencyList- Klasse gespeichert. Zuerst müssen alle Wörter aller Zeilen in diesen temporären Container, der die Wörter mittels Jenkins-Hash speichert.

Nach dem alle Zeilen der Datei eingelesen wurden, erstellt die FrequencyList-Klasse eine absteigend sortierte Multimap, als Key eben das Wortverkommen im Text und als Value das jeweilige Wort.

Nach ein paar Tests habe ich gesehen, dass die Tokenisierung + Frequenzlistenerstellung ungefähr 1 Minute pro 500 MB auf einem aktuellen System dauert (RAM- Verbrauch liegt bei ca. 17 MB). Die Frequenzliste wird bei der Beispiel-Implementation direkt in eine Ausgabedatei geschrieben.

Kompilierung

Siehe Artikel über die Tokenisierungsbeispiele.

Quellen

Alle Quelltexte sind hier verfügbar:

Historie

Lizenz

Die Quelltexte stehen unter der GPL 2 Lizenz.