当我尝试打印上位词时,我只想要这个词而不是关于这个词的所有信息。
pp = wn.synset('grow.v.01')
pp1= pp.hypernyms()
print pp1
我的输出是 [Synset('change.v.02')]。我只想“改变”。我需要做什么改变?对不起,我是 wordnet 的新手。
您可以使用对象的lemma_names
功能Synset
。请记住,它返回名称列表,您可以选择您满意的名称(在这种情况下,它只有 1 个结果'change')。
>> print(pp1[0].lemma_names())
['change']
同时调用hypernyms()
也会返回一个列表,因此我使用了pp1[0]
. 例如查询“狗”返回[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']]