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