2012-05-10 15 views
1

私はnltkとpythonでnoobです。最近問題がありました。変数に端末でtext.similar()を表示したいのですが、失敗しましたどうすれば保存できますか?悲しいことに変数を使用してnltk Text.similar()を保存するには

text = nltk.Text(word.lower() for word in nltk.corpus.brown.words()) 
save = [] 
for word in nltk.word_tokenize("i want to slove this problem"): 
    save.append(text.similar(word)) 

、私は「言葉= text.similar( 『女性』)」それから私は、コードをテストします。何も[]保存ではありません見つけ、私はまた、「言葉」では何もありませんが分かりました。私はそれが私がtext.similar()を保存することができなかった縫い目に気づいた。 保存するにはどうすればよいですか?

答えて

7

nltk.Textのインスタンスは、実際にはインタラクティブな探索のためのものです。それはコンソールにたくさんのものをダンプしますが、実際には構築されたオブジェクトはその関数から返されません。

この場合、あなたが望むのはnltk.ContextIndexクラスです。このクラスを使用して...

import nltk 
import nltk.text 
import nltk.corpus 

idx = nltk.text.ContextIndex([word.lower() for word in nltk.corpus.brown.words()]) 
save = [ ] 
for word in nltk.word_tokenize("i want to solve this problem"): 
    save.append(idx.similar_words(word)) 

が完了したら、saveは「I」の文脈の中で最も頻度の高い単語の巣のリストになり、「欲しい」、「に」など

テイクonline nltk.text.Text documentation、具体的にはsimilarメソッドを参照してください。nltk.text.ContextIndex

関連する問題