NLTK wordnet不包含词汇术语 - Python

时间:2018-06-13 22:09:35

标签: python nltk wordnet

我的程序中的一个函数找到某些词汇单词的定义,这对我程序的其他部分很有用。然而,似乎并非Wordnet中存在每个词汇单词。 我发现定义如下:

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

其中'w'是从列表中提供的许多词汇单词之一(不包括程序的其余部分,因为它有太多不相关的代码)。但是,当列表到达术语“连接”时,会出现以下错误:

  

第1298行,在synset中       引发WordNetError(消息%(引理,pos))       nltk.corpus.reader.wordnet.WordNetError:没有引理'连接词'与词性'n'

有没有绕过这个或不同的方式找到这些术语的定义而不是在wordnet中?我的程序正在经历各种科学术语,所以当我在列表中添加更多单词时,这可能会更频繁地发生。

1 个答案:

答案 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