我将 NLTK WordNet Lemmatizer 用于词性标记项目,首先将训练语料库中的每个单词修改为其词干(就地修改),然后仅在新语料库上进行训练。但是,我发现词形还原器没有按我的预期运行。
例如,单词 loves
词形还原为 love
这是正确的,但是这个词loving
仍然loving
即使在词形还原之后。这里loving
就像“我很喜欢它”这句话一样。
不是 love
变形词的词干 loving
?同样,许多其他“ing”形式在词形还原后仍保持原样。这是正确的行为吗?
还有哪些其他准确的词形还原器? (不需要在 NLTK 中)是否有形态分析器或词形还原器在决定词干时也考虑单词的词性标记?例如,单词 killing
应该有kill
作为词干 if killing
用作动词,但应该有 killing
如果用作名词,则作为词干(如 the killing was done by xyz
)。
WordNet 词形还原器确实考虑了 POS 标记,但它并没有神奇地确定它:
>>> nltk.stem.WordNetLemmatizer().lemmatize('loving')
'loving'
>>> nltk.stem.WordNetLemmatizer().lemmatize('loving', 'v')
u'love'
如果没有 POS 标签,它会假设您提供的所有内容都是名词。所以在这里它认为你正在向它传递名词“love”(如“sweetlove”)。
我是一名优秀的程序员,十分优秀!