machine-learning - 如何在SVM中对不同大小的特征向量进行编码

标签 machine-learning scikit-learn weka text-classification

我致力于对一些由多个句子组成的评论(段落)进行分类。我通过 libSVM 在 Weka 中使用词袋功能对它们进行分类。但是,我有另一个想法,但我不知道如何实现:

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

P1 -> a b b/classX P2 -> b a/classY

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

谢谢

最佳答案

无论实现如何,具有标准内核(线性、多边形、RBF)的 SVM 都需要固定长度的特征向量。您可以通过编码为 bool 值来对这些特征向量中的任何信息进行编码;例如收集语料库中出现的所有语法/语义特征,然后引入表示“本文档中出现的此类特征”的 bool 值。如果捕获这些特征出现在多个句子中的事实很重要,请对它们进行计数并使用将频率放入特征向量中(但请务必根据文档长度对频率进行归一化,因为 SVM 不是尺度不变的)。

关于machine-learning - 如何在SVM中对不同大小的特征向量进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966648/

相关文章:

Python Scikit - 调用 sklearn.metrics. precision_recall_curve 时输入形状错误

machine-learning - 反向传播和前馈神经网络有什么区别?

python - 训练 LSTM 模型

machine-learning - 当一个/多个特征值超出范围时,可以丢弃实例吗?

python - 使用 keras 的 sk-learn API 时出错

python - ModuleNotFoundError : No module named 'sklearn.externals.six'

machine-learning - 如何让 Weka 分类器使用更少的内存和 CPU 时间?

algorithm - 如何在weka中预处理数据以进行分类

machine-learning - 我可以防止 J48 分类器在同一字段上 split 超过 x 次吗?

python-3.x - 无监督文本分类