введите строку и сравните каждое слово с данным словом, используя NLP Python - PullRequest
0 голосов
/ 22 января 2020

Я хочу ввести строку, токенизировать ее и сравнить каждое слово с указанным c словом (в этом коде слово «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

help

1 Ответ

1 голос
/ 22 января 2020

Вы передали неверный аргумент функции.

Вместо этого вы должны были передать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...