不同的Nltk,需要wordnet hypernym输出

时间:2017-06-16 01:29:03

标签: python nltk wordnet hypernym

当我尝试打印上位词时,我只想要单词而不是关于单词的所有信息。

pp = wn.synset('grow.v.01')
pp1= pp.hypernyms()
print pp1

我的输出是[Synset('change.v.02')]。我只想要“改变”。我需要做些什么改变?对不起,我是wordnet的新手。

1 个答案:

答案 0 :(得分:1)

您可以使用lemma_names对象的Synset功能。 请记住它会返回名称列表,您可以选择您满意的名称(在这种情况下,只有1个结果'更改')。

>> print(pp1[0].lemma_names())
['change']

同时调用hypernyms()也会返回一个列表,因此我使用了pp1[0]。例如,查询'dog'会返回[dog, frump, cad...]等。如果您想获取所有上位词的所有lemma_names,则可以使用列表推导。

>> [s.lemma_names() for s in wn.synsets('dog')]
[['dog', 'domestic_dog', 'Canis_familiaris'],
 ['frump', 'dog'],
 ['dog'],
 ...
 ['chase', 'chase_after', 'trail', 'tail', 'tag', 'give_chase', 'dog', 'go_after',  'track']]