SVM使用预制词典进行文本分类的特征向量表示

我想将一组文本分类为两类,比如进行情感分类。我有两个预制的词典,一个包含仅正面词汇,另一个包含仅负面词汇。我希望将这些词典纳入SVM分类器的特征向量中。我的问题是,是否可以将正面和负面词典分开表示为SVM的特征向量,尤其是在为测试集生成特征向量时?

如果我的解释不够清楚,让我举个例子。假设我有这两句话作为训练数据:

Pos: The book is goodNeg: The book is bad

词汇’good’存在于正面词典中,’bad’存在于负面词典中,而其他词汇不在任何一个词典中。我希望与句子类别匹配的词典中的词汇具有较大的权重值,而其他词汇则具有较小的值。因此,特征向量将如下所示:

+1 1:0.1 2:0.1 3:0.1 4:0.9-1 1:0.1 2:0.1 3:0.1 5:0.9

如果我想对测试句子”The food is bad“进行分类,如何为测试集生成一个特征向量,其权重取决于现有词典,而我无法将测试句子的类别与每个词典匹配?我能想到的是,对于测试集,只要词汇存在于两个词典中,我就会给这个词汇一个较高的权重值。

0 1:0.1 3:0.1 5:0.9

我想知道这是否是为训练集和测试集创建向量表示的正确方法。

–编辑–我忘了提到这些预制词典是使用某种主题模型提取的。例如,主题1的前100个词大致代表正面类别,主题2中的词代表负面类别。我想利用这种信息来改进分类器,而不仅仅是使用词袋特征。


回答:

简而言之 – 这不是它的工作方式

学习的整个意义在于赋予分类器自己分配这些权重的能力。你不能“强迫”它对特定特征在每个类别中具有高值(我的意思是,你可以在优化层面上做到这一点,但这需要改变整个SVM结构)。

所以正确的方法是简单地创建一个“正常”的表示。没有任何额外的规定。让模型自己决定,它们在统计分析方面比人类的直觉要好得多,真的。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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