如何使用变量保存nltk Text.similar()

liu*_*ing 1 python nltk

我是nltk和python中的菜鸟.最近我遇到了一个问题,我想保存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))
Run Code Online (Sandbox Code Playgroud)

可悲的是,我发现保存[]中没有任何内容.然后我测试代码"word = text.similar('women')",我也发现"单词"中没有任何内容.我意识到它接缝我无法保存text.similar().我该怎么做才能保存它?

par*_*uth 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))
Run Code Online (Sandbox Code Playgroud)

完成后,save将成为"i","want","to"等语境中最常用单词的嵌套列表.

看一下在线nltk.text.Text文档,特别是similar它引用的方法nltk.text.ContextIndex