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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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