【发布时间】:2013-03-27 00:10:37
【问题描述】:
给定一个像这样的单词列表['add', 'adds', 'adding', 'adding', 'addition'],我想把它们都写成同一个词'添加'。这意味着将一个单词的所有不同动词和名词形式(但不是它的形容词和副词形式)合并为一个。
我找不到任何可以做到这一点的词干分析器。我找到的最接近的一个是 PorterStemmer,但它使上述列表成为 ['add', 'add', 'ad', 'ad', 'addit']
我对词干提取技术不是很有经验。所以,我想问一下是否有任何可用的词干分析器可以完成我上面解释的操作?如果没有,您对如何实现这一点有什么建议吗?
非常感谢,
【问题讨论】:
-
您正在寻找的是一个
lemmatizer,而不是一个词干分析器,而且是一个相当强大的词干分析器,因为来自addition=>add,需要很多知识。我有一个适用于verb+morpheme=>verbs和nouns+morpheme的英语形态词形还原器。一旦我完成其他工作,我可以在下周发布代码。你急用吗? -
NLTK 中的 WordNet lemmatizer 接近于此,但它需要 POS 标签才能获得良好的结果。但它不做加法 => 加法。
-
@2er0:那太好了!太感谢了。下周对我来说很好。+1
-
@larsmans:我在发布问题之前查看了 WordNet,但在我看来它只返回不同形式的单词。我不知道如何将它与 POS 标签一起使用。我会再检查一次。谢谢。
-
我会尝试清理代码,但它肯定需要优化。我以每句 10-20 个单词约 5-6 秒的成本获得了良好的引理。
标签: python nltk stemming porter-stemmer