NLTK - Wortarten bestimmen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Noranora
User
Beiträge: 62
Registriert: Donnerstag 21. Januar 2016, 12:51

Hallo!

Ich habe nun mal ein bisschen mit nltk rumprobiert...ich habe dabei mit Ipython Notebook gearbeitet und folgende Anweisungen:

Code: Alles auswählen

import nltk
datei= open("probe.txt")
inhalt=datei.read()
erst=nltk.corpus.PlaintextCorpusReader("probe.txt", ".*",encoding="utf-8")
deutsch=u("probe.txt")
tokenit= nltk.tokenize.WordPunctTokenizer().tokenize(deutsch)
print (tokenit)
text= word_tokenize(deutsch)
print (erst)



Jedoch bekomme ich dann nur zurück:

Code: Alles auswählen
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-21-e881663862ca> in <module>()
3 inhalt=datei.read()
4 erst=nltk.corpus.PlaintextCorpusReader("probe.txt", ".*",encoding="utf-8")
----> 5 deutsch=u("probe.txt")
6 tokenit= nltk.tokenize.WordPunctTokenizer().tokenize(deutsch)
7 print (tokenit)

NameError: name 'u' is not defined






u habe ich dort stehen, damit Umlaute wie ä ü ö und ß auch angezeigt werden können.

Weiter wollte ich dann mit

Code: Alles auswählen

nltk.FreqDist(text)

Die Vorkommen von den einzelnen Wörtern zählen lassen, jedoch funktioniert dies auch nicht so richtig.
Wichtiger ist aber, mit welcher Funktion könnte ich nun die Wortarten der einzelnen Wörter bestimmen?


Ich hoffe hier gibt es jemand, der sich ein bisschen besser auskennt als ich :/...LG
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Die Klammern gehören da nicht hin. Vergleiche:

Code: Alles auswählen

u("probe.txt")
u"probe.txt"
Aber selbst das ist irgendwie nicht besonders sinnvoll, denn das u bezieht sich auf den String "probe.txt", also den Namen der Datei, nicht auf den Inhalt derselben. Gegebenenfalls musst du bei open(...) ein Encoding angeben. Mehr dazu hier: https://docs.python.org/3/library/functions.html#open und hier:https://docs.python.org/3/library/codec ... ule-codecs.
In specifications, Murphy's Law supersedes Ohm's.
Antworten