Ich vermutete, dass die Antwort auf meinen Titel oft darin besteht, die Dokumentationen zu lesen, aber ich habe das NLTK-Buch durchgelesen es gibt keine Antwort. Ich bin etwas neu bei Python.
Ich habe eine Menge .txt
-Dateien und möchte die Korpusfunktionen verwenden können, die NLTK für den Korpus nltk_data
bereitstellt.
Ich habe PlaintextCorpusReader
ausprobiert, aber ich konnte nicht weiter kommen als:
Wie segmentiere ich die newcorpus
Sätze mit punkt? Ich habe versucht, die Punkt-Funktionen zu verwenden, aber die Punkt-Funktionen konnten PlaintextCorpusReader
class nicht lesen?
Können Sie mich auch dazu bringen, wie ich die segmentierten Daten in Textdateien schreiben kann?
Bearbeiten: Diese Frage hatte einmal ein Kopfgeld und es gibt jetzt ein zweites Kopfgeld. Siehe Text in der Kopfgeldbox.
Ich denke, die PlaintextCorpusReader
segmentiert die Eingabe bereits mit einem Punkt-Tokenizer, zumindest wenn Ihre Eingabesprache Englisch ist.
Konstruktor von PlainTextCorpusReader
%Vor% Sie können dem Leser einen Wort- und Satz-Tokenizer übergeben, aber für letzteres ist der Standardwert bereits nltk.data.LazyLoader('tokenizers/punkt/english.pickle')
.
Bei einer einzelnen Zeichenfolge wird ein Tokenizer wie folgt verwendet ( hier ) , siehe Punkt 5 für Punkt Tokenizer).
%Vor%Nach einigen Jahren, in denen wir herausgefunden haben, wie es funktioniert, ist hier das aktualisierte Tutorial von
Wie erstellt man einen NLTK-Korpus mit einem Verzeichnis von Textdateien?
Die Hauptidee besteht darin, den nltk.corpus.reader zu verwenden Paket. Falls Sie ein Verzeichnis von Textdateien in Englisch haben, verwenden Sie am besten PlaintextCorpusReader .
Wenn Sie ein Verzeichnis haben, das wie folgt aussieht:
%Vor%Verwenden Sie einfach diese Codezeilen und Sie können ein Korpus erhalten:
%Vor% HINWEIS: Das PlaintextCorpusReader
verwendet die Standardwerte nltk.tokenize.sent_tokenize()
und nltk.tokenize.word_tokenize()
, um Ihre Texte in Sätze und Wörter aufzuteilen, und diese Funktionen werden für Englisch erstellt, möglicherweise NICHT funktioniert für alle Sprachen.
Hier ist der vollständige Code mit der Erstellung von Test-Textdateien und wie man einen Korpus mit NLTK erstellt und wie man auf verschiedenen Ebenen auf den Korpus zugreift:
%Vor%Um schließlich ein Verzeichnis von Texten zu lesen und einen NLTK-Korpus in anderen Sprachen zu erstellen, müssen Sie zunächst sicherstellen, dass Sie eine pythonaufrufbare Wort-Tokenisierung und Satz-Tokenisierung haben Module, die String / Basestring-Eingaben verarbeiten und solche Ausgaben erzeugen:
%Vor%