输入一个字符串,并使用NLP Python将每个单词与给定单词进行比较



我想输入一个字符串,标记它,并将每个单词与特定单词进行比较(在此代码中,单词是"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

最新更新