Ich verwende text.similar('example')
Funktion von nltk.Text
Modul.Überschreiben Sie eine Funktion in Nltk - Fehler in ContextIndex Klasse
(Welche druckt die ähnliche Wörter für ein gegebenes Wort basiert auf corpus.)
Allerdings möchte ich in einer Liste, die Liste von Wörtern zu speichern. Aber die Funktion selbst gibt None
zurück.
#text is a variable of nltk.Text module
simList = text.similar("physics")
>>> a = text.similar("physics")
the and a in science this which it that energy his of but chemistry is
space mathematics theory as mechanics
>>> a
>>> a
# a contains no value.
Also sollte ich die Quellfunktion selbst ändern? Aber ich denke nicht, dass es eine gute Übung ist. Wie kann ich diese Funktion überschreiben, damit sie den Wert zurückgibt?
Edit - Referencing this thread, versuchte ich mit der ContextIndex
Klasse. Aber ich erhalte den folgenden Fehler.
File "test.py", line 39, in <module>
text = nltk.text.ContextIndex(word.lower() for word in words) File "/home/kenden/den/codes/nlpenv/local/lib/python2.7/site-packages/nltk/text.py", line 56, in __init__
for i, w in enumerate(tokens)) File "/home/kenden/den/codes/nlpenv/local/lib/python2.7/site-packages/nltk/probability.py", line 1752, in __init__
for (cond, sample) in cond_samples: File "/home/kenden/den/codes/nlpenv/local/lib/python2.7/site-packages/nltk/text.py", line 56, in <genexpr>
for i, w in enumerate(tokens)) File "/home/kenden/den/codes/nlpenv/local/lib/python2.7/site-packages/nltk/text.py", line 43, in _default_context
right = (tokens[i+1].lower() if i != len(tokens) - 1 else '*END*') TypeError: object of type 'generator' has no len()
Das ist meine Linie 39 von test.py
text = nltk.text.ContextIndex(word.lower() for word in words)
Wie kann ich dieses Problem lösen?
Mögliche Duplikat [So sparen nltk Text.similar() mit variabler] (http://stackoverflow.com/questions/10537720/how- zu speichern-nltk-textähnlich-mit-variabel) –