如何在python nltk和wordnet中获得单词/ synset的所有下位词?

时间:2013-03-11 03:29:42

标签: python nltk wordnet

我有一个wordnet中所有名词的列表,现在我想只留下车辆中的单词并删除其余的单词。我该怎么做?下面是我想制作的伪代码,但我不知道如何使其工作

for word in wordlist:
  if not "vehicle" in wn.synsets(word):
    wordlist.remove(word)

2 个答案:

答案 0 :(得分:10)

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]))

这将为您提供每个同义词集中的所有唯一单词,即名词“vehicle”{1st sense}的hyponym

答案 1 :(得分:7)

s3