Ich habe geteilt Text nachfolgende Worte ngrams mit diesem Python-Skript:Zählfrequenz von ngrams
from nltk.util import ngrams
sentence = open('text.txt', "r")
n = 2
sixgrams = ngrams(sentence.read().split(), n)
for grams in sixgrams:
print (grams)
Jetzt bin ich mit folgenden zwei Problemen konfrontiert.
. Mein Ergebnis sieht wie folgt aus
('\xd1\x8e\xd0\xbc', '\xd0\xb1\xd0\xb0\xd0\xb9\xd0\xb3\xd0\xb0\xd0\xb0\xd0\xbd')
Es ist vielleicht, weil text.txt Datei russische kyrillische Zeichen hat und in UTF-8 codiert. Gibt es eine Möglichkeit, mein Ergebnis in einem für Menschen lesbaren Format in Python anzuzeigen?
. Ich habe versucht, Collections.Counter zu verwenden, um die Anzahl der Häufigkeit der folgenden Wörter Kombinationen zu erhalten, und alle Ngrams zu drucken, die mehr als 2 Mal (sortiert nach Wert) angezeigt werden. Ich habe es stundenlang versucht, es nicht so zeigen zu lassen, wie ich es möchte.
Eingabebeispiel:
Diddle diddle dumpling my son Diddle diddle my son
Ausgabe Beispiel:
Diddle diddle 2
diddle dumpling 2
dumpling my 1
my son 2
son Diddle 1
Diddle my 1
my son 1
Ausgabebeispiel mit Grenze von 2:
Diddle diddle 2
diddle dumpling 2
my son 2
verwenden Sie Python 2.7? – Saleem
Es ist vorzuziehen, Python 3 für NLP-Aufgaben wegen der überlegenen Textfähigkeiten von Python 3 zu verwenden:/ –
In Python 3 hätten Sie 'юм байгаан' schon gesehen –