我需要做一个需要NLTK的项目,所以我两周前开始学习Python,但是很难理解Python和NLTK。在
从NLTK文档中,我可以理解以下代码,如果我在下面的代码中手动添加单词apple和pear,它们就可以正常工作。在
from nltk.corpus import wordnet as wn
apple = wn.synset('apple.n.01')
pear = wn.synset('pear.n.01')
print apple.lch_similarity(pear)
Output: 2.53897387106
但是,我需要使用NLTK来处理项目列表。例如,我有一个下面的项目列表,我想比较列表1和列表2中的项目-例如:将列表1中的单词1与列表2中的每个单词进行比较,然后将列表1中的单词2与列表2中的每个单词进行比较,直到将列表1中的所有单词进行比较。在
^{pr2}$上面的代码当然会出错。有人能告诉我如何将一个变量传递到synset方法中吗[wn.synset公司(*pass_variable_in_here*)]这样我就可以使用双循环来获取它们的lch_相似性值。谢谢您。在
wordnet.synset
需要一个格式为3-part name的字符串:word.pos.nn
。在您没有为
list1
和中的每个单词指定pos.nn
部分list2
。在假设所有的词都是名词似乎是合理的,所以我们可以试试 将字符串
'.n.01'
附加到list1
和list2
中的每个字符串:然而,这并不奏效。
wordnet.synset('drinks.n.01')
引发WordNetError
。在另一方面,same doc page表示可以 使用
synsets
方法查找类似单词:例如,
^{pr2}$wordnet.synsets('drinks')
返回列表:所以在这一点上,你需要考虑一下你想让程序做什么。如果您可以选择列表中的第一项作为
drinks
的代理, 那你就可以利用这将导致程序如下所示:
它产生了
相关问题 更多 >
编程相关推荐