N-grams与其他分类器在文本分类中的比较

我对文本分类技术还不太熟悉,我想了解N-gram方法与其他基于分类器(决策树、KNN、SVM)的文本分类方法之间的区别。

我想知道哪种方法更好,N-gram是否属于分类器?N-gram能否克服分类器技术中的缺点?

我可以在哪里找到关于这些技术的比较信息?

提前感谢。


回答:

我会详细回答这个问题,因为我认为有必要明确指出,N-gram模型可以作为分类器使用(就像你可以将任何特征的概率模型用作分类器一样)。

生成式分类器近似估计感兴趣的后验概率,p(类别 | 测试文档) 如下:

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

其中p(c)是c的先验概率,p(t|c)是似然概率。分类选择所有c中的最大值。一个N-gram语言模型,就像朴素贝叶斯、LDA或你喜欢的任何生成模型一样,如果你为每个类别估计一个单独的模型,它可以被视为一个概率模型p(t|c)。因此,它可以提供进行分类的所有必要信息。

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

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注