这与其说是 scikit 或 python 问题,不如说是 SVM 的一个普遍问题。
SVM 中的数据实例必须表示为各种标量的向量,通常是实数。因此,分类属性必须首先映射到一些数值,然后才能包含在 SVM 中。
一些分类属性更自然/更符合逻辑地映射到某种尺度(一些松散的“度量”)。例如,具有 ('no rush'、'standard delivery'、'Urgent' 和 'Most Urgent') 值的 Priority 字段的 (1, 2, 3, 5) 映射可能是有意义的。另一个示例可能是颜色可以映射到 3 个维度,每个维度对应其红色、绿色、蓝色分量等。
其他属性不具有允许任何甚至近似逻辑映射到比例的语义;然后必须在 SVM 的一个(或可能几个)维度上为这些属性的各种值分配任意数值。可以理解,如果 SVM 具有许多这些任意的“非度量”维度,则它在正确分类项目方面的效率可能会降低,因为 SVM 工作中隐含的距离计算和聚类逻辑在语义上相关性较低。
这一观察结果并不意味着当项目包含非数字或非“度量”维度时根本不能使用 SVM,但它肯定提醒我们,特征选择和特征映射通常是分类器特别是 SVM 的非常敏感的参数.
在 POS 标记的特殊情况下……恐怕我现在很难理解要使用标记语料库的哪些属性以及如何将这些属性映射到数值。我知道SVMTool可以使用 SVM 生成非常有效的 POS 标记器,并且还有几篇学术论文描述了也基于 SVM 的标记器。但是我更熟悉其他标记方法(例如使用 HMM 或最大熵。)