私はwordnetのすべての名詞のリストを持っています。今、私は乗り物である単語だけを残し、残りを削除したいと思います。どうすればいいのですか?以下は私が作りたい擬似コードですが、それを機能させる方法がわかりません
for word in wordlist:
if not "vehicle" in wn.synsets(word):
wordlist.remove(word)
from nltk.corpus import wordnet as wn
vehicle = wn.synset('vehicle.n.01')
typesOfVehicles = list(set([w for s in vehicle.closure(lambda s:s.hyponyms()) for w in s.lemma_names()]))
これにより、名詞「車両」(第1の意味)の下位語であるすべてのシンセットからのすべての固有の単語が得られます。
def get_hyponyms(synset):
hyponyms = set()
for hyponym in synset.hyponyms():
hyponyms |= set(get_hyponyms(hyponym))
return hyponyms | set(synset.hyponyms())