我的程序中的一个函数找到某些词汇单词的定义,这对我程序的其他部分很有用。然而,似乎并非Wordnet中存在每个词汇单词。 我发现定义如下:
y = wn.synset(w + '.n.01').definition()
其中'w'是从列表中提供的许多词汇单词之一(不包括程序的其余部分,因为它有太多不相关的代码)。但是,当列表到达术语“连接”时,会出现以下错误:
第1298行,在synset中 引发WordNetError(消息%(引理,pos)) nltk.corpus.reader.wordnet.WordNetError:没有引理'连接词'与词性'n'
有没有绕过这个或不同的方式找到这些术语的定义而不是在wordnet中?我的程序正在经历各种科学术语,所以当我在列表中添加更多单词时,这可能会更频繁地发生。
答案 0 :(得分:1)
你不应该假设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