NLTK wordnet 不包含词汇术语 - Python

NLTK wordnet does not contain vocabulary term - Python

我程序中的一个函数查找某些词汇的定义,这对我程序的其他部分很有用。然而,似乎并不是每个词汇都出现在 wordnet 中。 我找到的定义如下:

y = wn.synset(w + '.n.01').definition()

其中 'w' 是从列表中输入的众多词汇之一(不包括程序的其余部分,因为它有太多不相关的代码)。但是,当列表到达术语 'ligase' 时,出现以下错误:

line 1298, in synset raise WordNetError(message % (lemma, pos)) nltk.corpus.reader.wordnet.WordNetError: no lemma 'ligase' with part of speech 'n'

有没有绕过这个或其他方法来找到这些术语的定义不在 wordnet 中?我的程序正在处理各种科学术语,所以当我向列表中添加更多单词时,这种情况可能会更频繁地发生。

您不应该假设某个词为 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