【发布时间】:2018-01-19 15:24:27
【问题描述】:
我正在使用 Python 2.7 中的 nltk 模块。以下是我的代码
from nltk.corpus import wordnet as wn
listsyn1 = []
listsyn2 = []
for synset in wn.synsets('dog', pos=wn.NOUN):
print synset.name()
for lemma in synset.lemmas():
listsyn1.append(lemma.name())
for synset in wn.synsets('paw', pos=wn.NOUN):
print synset.name()
for lemma in synset.lemmas():
listsyn2.append(lemma.name())
countsyn1 = len(listsyn1)
countsyn2 = len(listsyn2)
sumofsimilarity = 0;
for firstgroup in listsyn1:
for secondgroup in listsyn2:
print(firstgroup.wup_similarity(secondgroup))
sumofsimilarity = sumofsimilarity + firstgroup.wup_similarity(secondgroup)
averageofsimilarity = sumofsimilarity/(countsyn1*countsyn2)
当我尝试运行此代码时,我收到错误“AttributeError: 'unicode' object has no attribute 'wup_similarity'”。谢谢你的帮助。
【问题讨论】:
-
就像错误所说的那样,
firstgroup是一个 unicode 字符串,而不是定义wup_similarity的任何对象的实例。这是因为您通过附加lemma.name()来填充listsyn1,这可能会返回一个字符串。 -
知道了@DanielRoseman 非常感谢。
标签: python unicode nltk wordnet