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

时间:2018-03-28 04:12:42

标签: python nltk wordnet

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

1 个答案:

答案 0 :(得分: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排除同义词:

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