Das ist so ziemlich die gebräuchlichste Methode, "N gebräuchlichste Dinge" zu finden, mit der Ausnahme, dass Sie eine verpassen sort
und eine unentgeltliche haben cat
:
tr -c '[:alnum:]' '[\n*]' < test.txt | sort | uniq -c | sort -nr | head -10
Wenn Sie kein sort
vor dem uniq -c
eingeben, werden Sie wahrscheinlich eine Menge falscher Singleton-Wörter erhalten. uniq
Nur eindeutige Linienfolgen, keine allgemeine Einheitlichkeit.
EDIT: Ich habe einen Trick vergessen, "Worte anhalten". Wenn Sie sich englischen Text ansehen (sorry, hier einsprachig nordamerikanisch), nehmen Wörter wie "von", "und" die "fast immer die ersten zwei oder drei Plätze ein. Sie wollen sie wahrscheinlich beseitigen. In der GNU Groff-Distribution befindet sich eine Datei mit dem Namen eign
, die eine anständige Liste von Stoppwörtern enthält. Meine Arch Distribution hat /usr/share/groff/current/eign
, aber ich glaube ich habe auch alte Unixe gesehen /usr/share/dict/eign
oder /usr/dict/eign
in.
Sie können Stoppwörter wie diese verwenden:
tr -c '[:alnum:]' '[\n*]' < test.txt |
fgrep -v -w -f /usr/share/groff/current/eign |
sort | uniq -c | sort -nr | head -10
Ich vermute, dass die meisten menschlichen Sprachen ähnliche "Stoppwörter" benötigen, die aus den aussagekräftigen Worthäufigkeitszählungen entfernt wurden, aber ich weiß nicht, wo ich vorschlagen soll, Stoppwörterlisten für andere Sprachen zu erhalten.
BEARBEITEN: fgrep
sollte den -w
Befehl verwenden, der die Ganzwortübereinstimmung ermöglicht. Dies vermeidet Fehlalarme bei Wörtern, die nur kurze Stopp-Werke enthalten, wie "a" oder "i".