Ich fange gerade an, NLTK zu verwenden, und ich verstehe nicht ganz, wie man eine Liste von Wörtern aus Text erhält. Wenn ich benutze nltk.word_tokenize()
, bekomme ich eine Liste mit Wörtern und Satzzeichen. Ich brauche stattdessen nur die Worte. Wie kann ich Interpunktion loswerden? Funktioniert auch word_tokenize
nicht mit mehreren Sätzen: Punkte werden zum letzten Wort hinzugefügt.
word_tokenize()
funktioniert es nicht mit mehreren Sätzen. Um die Interpunktion zu entfernen, können Sie einen regulären Ausdruck oder die Python- isalnum()
Funktion verwenden.
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
(Beachten Sie keinen Punkt am Ende des Ergebnisses) Es kann Probleme verursachen, wenn Sie Dinge wie 'end of sentence.No space'
haben. In diesem Fall tun Sie dies stattdessen: Dies the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
ersetzt alle Interpunktion durch Leerzeichen.
nltk.word_tokenize(the_text.translate(None, string.punctuation))
sollte in Python2 funktionieren, während Sie dies in Python3 tun könnennltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
.