2017-12-21 9 views
0

NLTKのsynsetsに特定の単語が存在するかどうかチェックしたいと思います。次のコードはそれを行います。単語がNLTK synsetsにあるかどうかを確認する最速の方法は?

from nltk.corpus import wordnet 
if wordnet.synsets(word): 
    ... do something ... 

しかし、確認する単語がたくさんある場合は遅くなります。より速い方法がありますか? 私は実際のsynsetオブジェクトは必要ありません。ただある場合はyes/noがあります。私は前もって言葉のリストを持っていないので、答えを事前に計算することはできません。

答えて

2

あなたが知る必要があるのは、どの単語が一致するかを知るために、すべての補題のセットを作成し、そこであなたの言葉を調べることです。セットの作成は非常に高速です(もちろん、セット検索はさらに高速です)。

wn_lemmas = set(wordnet.all_lemma_names()) 
... 
if word in wn_lemmas: 
    <do something> 
+0

ニース。これは機能します。ありがとう! – mhucka

関連する問題