1
我想用NTLK获取一些单词的数量的缩写(现在2)。看起来我可以用它来处理第一个单词,但不是第二个单词。我猜我还有很多要学习NTLK。下面有一些简化的示例代码。我基本上试图得到两个缩略词列表,每个词有1个列表。所有的第一个循环都很好。当我尝试第二个字后,我得到:正确使用NTLK与python
syn2 = wn.synsets(word)[0].lemmas[y]
IndexError: list index out of range
希望有人能帮助我理解为什么会发生这种情况。
import nltk
from nltk.corpus import wordnet as wn
import string
from array import *
syn1 = ''
syn2 = ''
mylist = []
mylist2 = []
mylist3 = []
Web_Keywd = 'car loan'
wuser_words = Web_Keywd.split()
for word in wuser_words:
i=i+1
#first
if (i == 1) :
synset1 = wn.synsets(word)
y = 0
for synset in synset1:
syn1 = wn.synsets(word)[0].lemmas[y]
syn1 = syn1.name
mylist2.append(syn1)
y=y+1
if (i == 2) :
y = 0
for synset2 in wn.synsets(word):
syn2 = wn.synsets(word)[0].lemmas[y]
syn2 = syn2.name
mylist3.append(syn2)
y=y+1
感谢这有所帮助。当我进入一个名单wordlist.append(results.get(“汽车”))我注意到主要的词“汽车”似乎重复了好几次..有没有办法解决这个问题? – user2495294
@ user2495294:看我的编辑 – michaelmeyer
感谢这似乎是工作(至少在大多数情况下)。当我搜索'猫'时,我似乎得到了一些意想不到的结果。我得到的结果像呕吐物,清除物,家伙等等。我不确定这些词是如何返回给猫的。看看在线词库,我看到像bobcat,kitty等这样的词,我期望在ntlk结果中看到(但不是)。想知道你是否知道这是为什么? – user2495294