我想输入一个字符串,标记它,并将每个单词与特定单词进行比较(在此代码中,单词是"play"(。我有代码
from nltk.tokenize import word_tokenize
txt = "bat ball cocaine golf football cake leg hand me you her she he dog cat drug"
x = word_tokenize(txt)
from nltk.corpus import wordnet
for i in range (10):
syn = wordnet.synsets(x[i])[0]
print ("Synset name : ", syn.name())
w1 = wordnet.synset('play.n.01')
w2 = wordnet.synset(syn)
print(w1.wup_similarity(w2))
i = i +1
这会产生一个错误:
AttributeError Traceback (most recent call last)
<ipython-input-127-a30645977ba6> in <module>()
13
14 w1 = wordnet.synset('play.n.01')
---> 15 w2 = wordnet.synset(syn)
16 print(w1.wup_similarity(w2))
17 i = i +1
帮助
你向函数传递了错误的参数。
相反,你应该通过syn.name()
使用此w2 = wordnet.synset(syn.name())
通过此更正,IndexError: list index out of range
在第 10 次迭代时提高。
试试这个来解决问题
syn = wordnet.synsets(x[i])
if syn:
syn = syn[0]
else:
continue