WSD为什么不匹配WordNet?

时间:2019-10-22 14:50:56

标签: nltk word-sense-disambiguation

我正在处理WSD和WordNet,并且正在尝试弄清为什么它们输出不同的结果。我在使用以下代码时的理解是,歧义命令指定了最可能的Synset:

from pywsd import disambiguate
from nltk.corpus import wordnet as wn

mysent = 'I went to have a drink in a bar'

wsd = disambiguate(mysent)

哪个给我下面的输出

('I', None)
('went', Synset('travel.v.01'))
('to', None)
('have', None)
('a', None)
('drink', Synset('swallow.n.02'))
('in', None)
('a', None)
('bar', Synset('barroom.n.01'))

由此,我感到奇怪的是,由于在WordNet中查询“ I”一词时,我得到了四种可能的解释之一,因此我以“ nonetype”返回。当然,“我”应该对应其中至少一个?

wordnet.synsets('I')

Out:
[Synset('iodine.n.01'), Synset('one.n.01'), Synset('i.n.03'), Synset('one.s.01')]

1 个答案:

答案 0 :(得分:2)

在您上面的句子中,“我”是代词。 wordnet FAQ指出:

  

Q:为什么WordNet缺少:、、、、、、、、、、、、、、、、等等。

     

A:WordNet仅包含“开放类单词”:名词,动词,形容词和副词。因此,排除的单词包括限定词,介词,代词,连词和助词。