检查单词是否在NLTK同义词集中的最快方法?

mhu*_*cka 2 python nlp nltk wordnet

我想检查NLTK的同义词集中是否存在某些单词。以下代码可以做到这一点,

from nltk.corpus import wordnet
if wordnet.synsets(word): 
    ... do something ...
Run Code Online (Sandbox Code Playgroud)

但是如果您要检查的字词很多,速度会很慢。有没有更快的方法?我不需要实际的同义词集对象,只要有,就可以。我没有提前列出的单词,所以我无法预先计算答案。

ale*_*xis 5

由于您只需要知道哪些单词匹配,就可以构成所有引理的集合并在那里查找您的单词。形成集合非常快(当然,集合查找甚至更快)。

wn_lemmas = set(wordnet.all_lemma_names())
...
if word in wn_lemmas:
    <do something>
Run Code Online (Sandbox Code Playgroud)