Ich rechnete damit, dass die Antwort auf meinen Titel oft darin besteht, die Dokumentationen zu lesen, aber ich habe das NLTK-Buch durchgesehen aber es gibt keine Antwort. Ich bin ein bisschen neu in Python.
Ich habe eine Reihe von .txt
Dateien und möchte die Korpusfunktionen verwenden können, die NLTK für den Korpus bereitstelltnltk_data
.
Ich habe es versucht, PlaintextCorpusReader
aber ich konnte nicht weiter kommen als:
>>>import nltk
>>>from nltk.corpus import PlaintextCorpusReader
>>>corpus_root = './'
>>>newcorpus = PlaintextCorpusReader(corpus_root, '.*')
>>>newcorpus.words()
Wie segmentiere ich die newcorpus
Sätze mit punkt? Ich habe versucht, die Punkt-Funktionen zu verwenden, aber die Punkt-Funktionen konnten nicht lesenPlaintextCorpusReader
Klasse .
Können Sie mich auch dazu führen, wie ich die segmentierten Daten in Textdateien schreiben kann?
Nachdem Sie einige Jahre lang herausgefunden haben, wie es funktioniert, finden Sie hier das aktualisierte Tutorial von
Wie erstelle ich einen NLTK-Korpus mit einem Verzeichnis von Textdateien?
Die Hauptidee besteht darin, das Paket nltk.corpus.reader zu verwenden . Wenn Sie ein Verzeichnis mit Textdateien in englischer Sprache haben , verwenden Sie am besten den PlaintextCorpusReader .
Wenn Sie ein Verzeichnis haben, das so aussieht:
Verwenden Sie einfach diese Codezeilen und Sie erhalten einen Korpus:
Hinweis: dass das
PlaintextCorpusReader
den Standard verwendennltk.tokenize.sent_tokenize()
undnltk.tokenize.word_tokenize()
Ihre Texte in Sätze und Wörter zu spalten und diese Funktionen sind Build für Englisch, kann es nicht Arbeit für alle Sprachen.Hier ist der vollständige Code zum Erstellen von Testtextdateien und zum Erstellen eines Korpus mit NLTK und zum Zugreifen auf den Korpus auf verschiedenen Ebenen:
Um ein Textverzeichnis zu lesen und einen NLTK-Korpus in einer anderen Sprache zu erstellen, müssen Sie zunächst sicherstellen, dass Sie über ein Python-aufrufbares Wort-Tokenisierungs- und Satz-Tokenisierungsmodul verfügen, das String- / Basestring-Eingaben verwendet und solche Ausgaben erzeugt:
quelle
AttributeError: __exit__
Fehler bekommt . Verwenden Sieopen()
anstelle vonwith()
quelle