我开始使用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
我马上就到了,只是我的翻译抛出了一个“列表超出范围”异常。我知道我不能调用一个不存在的列表位置,并且我知道当一个人试图这样做时,就会出现这个错误。但是,由于我是用if iterationSet[0]显式地测试这一点,所以我不确定无论如何我都会以错误告终。在
任何建议都将不胜感激。在
她就是错误:
^{pr2}$
很可能,
wn.synsets(placementItem, 'a')
返回了一个空列表。如果placementItem
不在wordnet中,则可能发生这种情况。在因此,当您执行
iterationSet[0]
操作时,它会抛出一个超出范围的异常。相反,您可以将支票改为:而不是
^{pr2}$相关问题 更多 >
编程相关推荐