我想将一组文本分类为两类,比如进行情感分类。我有两个预制的词典,一个包含仅正面词汇,另一个包含仅负面词汇。我希望将这些词典纳入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结构)。
所以正确的方法是简单地创建一个“正常”的表示。没有任何额外的规定。让模型自己决定,它们在统计分析方面比人类的直觉要好得多,真的。