Machine learning 如何在支持向量机中对不同大小的特征向量进行编码

Machine learning 如何在支持向量机中对不同大小的特征向量进行编码,machine-learning,scikit-learn,weka,text-classification,Machine Learning,Scikit Learn,Weka,Text Classification,我对一些评论(段落)进行分类,这些评论由多个句子组成。我通过libSVM在Weka中使用单词袋特征对它们进行分类。然而,我有另一个想法,我不知道如何实施: 我认为在评论中为每个句子创建基于句法和浅层语义的特征是值得尝试的。然而,我找不到任何方法按顺序编码这些特征,因为段落的句子大小不同。我之所以想保持这些特征的顺序,是因为句子特征的顺序可以为分类提供更好的线索。例如,如果我有两个实例P1(3个句子)和P2(2个句子),我会有一个这样的空格(假设每个句子都有一个二进制特征作为a或b): P1->a

我对一些评论(段落)进行分类,这些评论由多个句子组成。我通过libSVM在Weka中使用单词袋特征对它们进行分类。然而,我有另一个想法,我不知道如何实施:

我认为在评论中为每个句子创建基于句法和浅层语义的特征是值得尝试的。然而,我找不到任何方法按顺序编码这些特征,因为段落的句子大小不同。我之所以想保持这些特征的顺序,是因为句子特征的顺序可以为分类提供更好的线索。例如,如果我有两个实例P1(3个句子)和P2(2个句子),我会有一个这样的空格(假设每个句子都有一个二进制特征作为a或b):

P1->a b/X类 P2->b a/高级

所以,我的问题是,我能否在特征空间中实现不同特征大小的分类?如果是的话,我可以在Weka、scikit learn或Mallet中使用任何类型的分类器吗?如有任何回应,我将不胜感激


感谢

无论如何实现,具有标准核(线性、多边形、RBF)的SVM都需要固定长度的特征向量。您可以将这些特征向量中的任何信息编码为布尔值;e、 g.收集语料库中出现的所有句法/语义特征,然后介绍表示“本文档中出现的某某特征”的布尔词。如果捕获这些特征出现在多个句子中这一事实很重要,那么对它们进行计数并将频率放入特征向量中(但一定要根据文档长度对频率进行规范化,因为支持向量机不是比例不变的)。

这是库的问题,因为支持向量机本身不需要固定长度的特征向量,它只需要一个核函数,如果你能提供一个具有可变长度向量的核函数,那么SVM应该可以

如果你正在对文本数据进行分类,我建议看看“有理核”,它是在加权有限传感器上制作的,用于对自然语言文本进行分类。Rational内核可以应用于不同长度的向量,并且已经作为开源项目(OpenFST)实现

特征工程是将你的想法转化为固定长度向量的艺术:)是的,似乎我必须学习:)谢谢你的回复,我忘了这篇文章了,对不起;我必须创建那些基于布尔值和频率的特征,而无需标准化。我还将通过应用规范化来比较我的结果。