我正在使用Mahout实现文本分类系统。我已阅读了停用词的删除功能,而词干提取功能有助于提高文本分类的准确性。以我为例,删除停用词可提供更好的准确性,但词干并没有太大帮助。我发现使用词干分析器后准确性降低了3-5%。我尝试使用porter stemmer和k-stem,但在两种情况下都得到了几乎相同的结果。

我正在使用朴素贝叶斯算法进行分类。

任何帮助将不胜感激。

最佳答案

首先,您需要了解为什么词干通常会提高准确性。想象一下训练集中的以下句子:


  他在2013年踢了低于平均水平的足球,但在那之前被视为升职球员,可以打后卫或中锋。


然后在测试集中进行:


  我们正在寻找许多球员,包括马克


第一句包含许多涉及运动的单词,包括单词“ player”。测试集中的第二句话也提到了玩家,但是,哦,它是复数形式-“玩家”,而不是“玩家”-因此对于分类器来说,它是一个独特的,无关的变量。

词干尝试切掉诸如单词的确切形式之类的细节,并产生单词库作为分类的特征。在上面的示例中,词干可以将两个单词都缩短为“玩家”(甚至“玩法”),并将它们用作相同的功能,因此有更多机会将第二句话归为“体育”类。

但是,有时这些细节会自己发挥重要作用。例如,短语“今天跑步”可能是指跑步者,而“长时间跑步”可能与手机电池寿命有关。在这种情况下,词干会使分类变得更糟,而不是更好。

您在这里可以做的是使用其他功能,以帮助区分相同单词/词干的不同含义。两种流行的方法是n-grams(例如,双字,由单词对而不是单个单词构成的特征)和part-of-speech(POS)标签。您可以尝试使用它们的任意组合,例如词干+词干双词组,或者单词+词干双词组,或者词干+ POS标签,或者词干,词干和POS标签等。

另外,尝试其他算法。例如。 SVM使用的方法与朴素贝叶斯完全不同,因此它可以捕获NB忽略的数据中的内容。

关于machine-learning - 文本分类中的词干-降低准确性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22603332/

10-12 18:03