我开始使用nltk,我正在尝试生成一个允许我传入形容词的函数,从wordnet中提取第一个synset并将其与反义词一起打印。她是我的代码:
def placementOperator(wordItem):
wordnet_lemmatizer = WordNetLemmatizer()
placementItem = wordnet_lemmatizer.lemmatize(wordItem,'a')
print("The placementItem is: " + placementItem)
iterationSet = wn.synsets(placementItem, 'a')
if iterationSet[0]:
print(" This is the SS NAME : " + iterationSet[0].name())
for j in iterationSet[0].lemmas():
print(" This is the LEMMAAAA: " + j.name())
if j.antonyms():
print(" This is the RElATIONSHIP " + j.name(), j.antonyms()[0].name())
else: print(" _______> NO ANTONYM!")
else: pass
我几乎在那里,除了我的翻译人员将一个列表排除在范围之外'例外。我知道我不能调用一个不存在的列表位置,我知道当一个人尝试这样做时会发生这个错误。但是因为我用明确地测试了这个,如果是iterationSet [0] 我不知道我到底是怎么回事。
任何建议都将受到高度赞赏。
她的错误是:
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/momely/associate/associate.py", line 57, in <module> preProcessor(0)
File "C:/Users/Admin/PycharmProjects/momely/associate/associate.py", line 54, in preProcessor placementOperator(each_element[0])
File "C:/Users/Admin/PycharmProjects/momely/associate/associate.py", line 31, in placementOperator if iterationSet[0]:
IndexError: list index out of range
答案 0 :(得分:1)
最有可能的是,wn.synsets(placementItem, 'a')
返回了一个空列表。如果placementItem
不在wordnet中,就会发生这种情况。
因此,当您执行iterationSet[0]
时,它会抛出超出范围的异常。相反,您可以将支票更改为:
if iterationSet:
print( ....
....
而不是
if iterationSet[0]:
print(...