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']
在尝试通过 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']