如何使用NLTK计算WordNet中最深的节点?

问题描述 投票:0回答:1

是否有内置功能可以使用NLTK查找单词层次结构中的最低单词?例如,如果在http://www.randomhacks.net/2009/12/29/visualizing-wordnet-relationships-as-graphs/的第一张图中“胎盘”和“食肉动物”之间没有边缘,则最低的词将是“胎盘”和“食肉动物”(两者都与“实体”的距离为10)。

python nltk wordnet
1个回答
0
投票

你可以找到没有下位的同义词组,例如

from nltk.corpus import wordnet as wn

lowest_level = set()

for ss in wn.all_synsets():
    if ss.hyponyms() == []:
        lowest_level.add(ss)

len(lowest_level) # 97651

如果您想要使用实例hyponyms排除synsets:

from nltk.corpus import wordnet as wn

lowest_level = set()

for ss in wn.all_synsets():
    if ss.hyponyms() == ss.instance_hyponyms() == []:
        lowest_level.add(ss)

len(lowest_level) # 97187
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.