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
我程序中的一个函数查找某些词汇的定义,这对我程序的其他部分很有用。然而,似乎并不是每个词汇都出现在 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