我的程序中的一个函数可以找到某些词汇的定义,这对我程序的其他部分很有用。然而,似乎并不是每个词汇都存在于wordnet中。我找到的定义如下:
y = wn.synset(w + '.n.01').definition()
其中'w‘是从列表中输入的众多词汇表中的一个(没有包括程序的其余部分,因为它有太多不相关的代码)。然而,当列表到达术语'ligase‘时,就会出现以下错误:
行1298,在synset raise WordNetError(消息%(词条,位置)) nltk.corpus.reader.wordnet.WordNetError:没有词性为'n‘的词条’‘
有没有办法绕过这一点,或者用一种不同的方式来找到这些术语的定义,而不是在wordnet中?我的程序正在经历各种科学术语,所以随着我向列表中添加更多的单词,这种情况可能会更频繁地发生。
发布于 2018-06-14 06:41:17
您不应该假设某个单词对WordNet是已知的。检查是否存在任何相关的同义词集,如果至少有一个同义词集,则请求定义:
for word in ["ligase", "world"]: # Your word list
ss = wn.synsets(word)
if ss:
definition = ss[0].definition()
print("{}: {}".format(word, definition))
else:
print("### Word {} not found".format(word))
#### Word ligase not found
#world: everything that exists anywhere
https://stackoverflow.com/questions/50846992
复制相似问题