使用WordNet词形还原器的问题

0 投票
2 回答
1757 浏览
提问于 2025-04-15 23:42

我试过使用WordNet词形还原器,但发现一些常见的词,比如“studying”(学习)或“waiting”(等待),处理得不太对。

我是不是漏掉了什么?

2 个回答

2

默认情况下,NLTK中的WordNetLemmatizer会把单词当作NOUN(名词)来处理。你可以查看这个链接了解更多信息:http://nltk.org/_modules/nltk/stem/wordnet.html

如果你想正确处理动词的词形还原,就需要指定pos(词性)。

>>> from nltk.stem.wordnet import WordNetLemmatizer
>>> wnl = WordNetLemmatizer()
>>> wnl.lemmatize('studying','v')
'study'
>>> wnl.lemmatize('studying','n')
'studying'
>>> wnl.lemmatize('studying')
'studying'
>>> wnl.lemmatize('waiting','n')
'waiting'
>>> wnl.lemmatize('waiting','v')
'wait'
3

在网上的词典上,你可以看到studying(学习)和waiting(等待)不仅是动词的现在分词,还是名词。所以它们被简化成本身的形式也不奇怪。

如果这样不够满意,你需要找一个更“强力”的简化工具(这种工具会故意忽略一些虽然正确但不太常见的词义),或者,如果你能先根据整句话进行词性标注,就可以使用一个可以告诉你某个特定的studying是动词而不是名词的简化工具。

撰写回答