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

How to calculate the deepest node in WordNet using NLTK?

是否有使用 NLTK 查找单词层次结构中最低单词的内置功能?例如,如果在 http://www.randomhacks.net/2009/12/29/visualizing-wordnet-relationships-as-graphs/ 处的第一个图中 'placenta' 和 'carnivore' 之间没有边,则最低的单词将是 'placenta' 和 'carnivore'(两者都有距 'entity').

的距离为 10

您可以找到没有下位词的同义词集,例如

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

如果您想排除带有实例下位词的同义词集:

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