NLTK 的 WordNet 中的同义词集上位词列表不完整?

Incomplete list of synset hypernyms in NLTK's WordNet?

在尝试通过 WN NLTK 的界面恢复任何给定的 WordNet 同义词集的上位词时,我得到了我认为与 WN 的网络搜索界面不同的结果。例如:

from nltk.corpus import wordnet as wn
bank6ss = wn.synsets("bank")[5]  # 'bank' as gambling house funds
bank6ss.hypernyms()
# returns [Synset('funds.n.01')]

也就是说,只找到一个上位词(没有找到其他上位词,例如 instance_hypernyms())。但是,在看WN's web interface时,这个'bank'的意义列出了"Direct hypernym"下的其他几个上位词:

funds, finances, monetary resource, cash in hand, pecuniary resource

如何解释这种差异,我怎样才能在 NLTK 的 WordNet 中获得更长的上位词列表?

我的 NLTK 安装中使用的 WordNet 版本是 3.0。

我刚刚意识到我正在查看两种不同类型的输出:NLTK WordNet 中返回的是上位词 synset (Synset['funds.n.01']) 而列表Web 界面中的上位词由属于那个同义词集的 词元 组成。

为了完整回答这个问题,这个引理列表可以在 NLTK 中恢复如下:

from nltk.corpus import wordnet as wn
bank6ss = wn.synsets("bank")[5]  # 'bank' as gambling house funds
hn1ss = bank6ss.hypernyms()[0]
hn1ss.lemmas()
# returns [Lemma('funds.n.01.funds'), 
#   Lemma('funds.n.01.finances'),
#   Lemma('funds.n.01.monetary_resource'), 
#   Lemma('funds.n.01.cash_in_hand'),
#   Lemma('funds.n.01.pecuniary_resource')]

或者,如果只对引理名称感兴趣:

hn1ss.lemma_names()
# returns [u'funds',
#   u'finances',
#   u'monetary_resource',
#   u'cash_in_hand',
#   u'pecuniary_resource']