我想将一个文本集合分为两类,让我们说我想做一个情感分类。我有两个预先制作的情感词典,一个只包含正面词,另一个只包含负面词。我想将这些词典合并到SVM分类器的特征向量中。我的问题是,是否有可能将正面和负面词汇分开表示为SVM特征向量,特别是当我为测试集生成特征向量时?
如果我的解释不够清楚,那么让我举一个例子。假设我将这两个句子作为训练数据:
Pos: The book is good
Neg: 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
如果我想对一个测试句“食物不好”进行分类,当我无法匹配测试句的类时,我应该如何为具有依赖于现有字典的权重的测试集生成一个特征向量每个字典?我能想到的是,对于测试集,只要两个字典中都存在这个词,我就会给这个词一个很高的权重值。
0 1:0.1 3:0.1 5:0.9
我想知道这是否是为训练集和测试集创建矢量表示的正确方法。
- Edit-- 我忘了提到这些预先制作的词典是使用某种主题模型提取的。例如,来自主题1的前100个单词有点代表正类,主题2中的单词代表负类。我想使用这种信息来改进分类器而不仅仅使用词袋功能。
答案 0 :(得分:1)
简而言之 - 这不是它的工作方式。
学习的重点是让分类器能够自己分配这些权重。你不能“强迫它”为特定功能的每个类具有高价值(我的意思是,你可以在优化级别,但这需要改变整个svm结构。)
所以正确的方法是简单地创建一个“正常”的表示。没有任何额外的规范。让模型决定,他们在统计分析方面比在人类直觉方面更胜一筹。