5

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

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

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

提前致谢。

4

2 回答 2

10

我实际上会发布一个完整的答案,因为我认为很明显你可以使用 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 语言模型,就像朴素贝叶斯或 LDA 或任何你喜欢的生成模型一样,如果你为每个类估计一个单独的模型,则可以被解释为概率模型 p(t|c)。因此,它可以提供进行分类所需的所有信息。

当然,问题是该模型是否有用。主要问题是 n-gram 模型往往是基于数十亿个文本单词构建的,而分类器通常在数千个单词上进行训练。你可以做一些复杂的事情,比如将联合先验放在所有类模型的参数上,将超参数钳制为相等(这些参数是什么取决于你如何进行平滑处理)......但这仍然很棘手。

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

于 2013-12-03T10:16:39.943 回答
7

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

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

于 2013-12-01T20:38:11.203 回答