N-gram与文本分类中的其他分类器

时间:2013-12-01 18:54:15

标签: machine-learning data-mining classification n-gram text-classification

我是文本分类技术的新手,我想知道文本分类的N-​​gram方法与基于文本分类的其他分类器(决策树,KNN,SVM)之间的区别。

我想知道哪一个更好,n-gram是否属于分类器? n-gram是否克服了分类器技术中的任何缺点?

我在哪里可以获得有关所有这些技术的比较信息。

提前感谢。

2 个答案:

答案 0 :(得分:9)

我实际上会发布一个完整的答案,因为我认为显然你可以使用n-gram模型作为分类器是非常值得的(就像你可以使用你的任何概率模型一样) )。

生成分类器近似于感兴趣的后验,p(class | test doc)为:

p(c | t)\ propto p(c)p(t | c)

其中p(c)是c的先验概率,p(t | c)是似然。分类在所有c上选择arg-max。如果你为每个类估计一个单独的模型,n-gram语言模型,就像Naive Bayes或LDA或你喜欢的任何生成模型一样,可以被解释为概率模型p(t | c)。因此,它可以提供进行分类所需的所有信息。

问题在于该模型是否有用。主要问题是n-gram模型倾向于建立在数十亿字的文本上,其中分类器通常训练成几千个。你可以做一些复杂的事情,例如在所有类模型的参数上放置关节先验,将超参数钳位到相等(这些参数取决于你如何进行平滑)......但它仍然很棘手。

另一种方法是构建一个n-gram字符模型(如果事实证明它是有用的,则包括空格/标点符号)。这可以更加可靠地估计(三元模型的26 ^ 3参数而不是~20000 ^ 3),并且对于作者识别/类型分类/具有风格元素的其他分类形式非常有用。

答案 1 :(得分:7)

N-gram不是分类器,它是概率语言模型,基本单元的建模序列,其中这些基本单位可以是单词,音素,字母等.N-gram基本上是长度序列的概率分布n,它可以在构建文本表示时使用。

分类器是一种算法,它可以使用或不使用n-gram来表示文本。