Python 使用Scikit学习SVM为文本分类准备数据

Python 使用Scikit学习SVM为文本分类准备数据,python,svm,scikit-learn,Python,Svm,Scikit Learn,我正在尝试应用Scikit中的SVM来对我收集的推文进行分类。 因此,将有两个类别,分别命名为A和B。 目前,我将所有推文分类为两个文本文件,“A.txt”和“B.txt”。 然而,我不确定Scikit学习支持向量机需要什么类型的数据输入。 我有一个以标签(a和B)为键的字典,还有一个以特征(单字)及其频率为值的字典。 对不起,我对机器学习很陌生,不知道该怎么做才能让SVM工作。 我发现SVM使用numpy.ndarray作为数据输入的类型。我需要根据自己的数据创建一个吗? 应该是这样的吗 La

我正在尝试应用Scikit中的SVM来对我收集的推文进行分类。 因此,将有两个类别,分别命名为A和B。 目前,我将所有推文分类为两个文本文件,“A.txt”和“B.txt”。 然而,我不确定Scikit学习支持向量机需要什么类型的数据输入。 我有一个以标签(a和B)为键的字典,还有一个以特征(单字)及其频率为值的字典。 对不起,我对机器学习很陌生,不知道该怎么做才能让SVM工作。 我发现SVM使用numpy.ndarray作为数据输入的类型。我需要根据自己的数据创建一个吗? 应该是这样的吗

Labels    features    frequency
  A        'book'        54
  B       'movies'       32

非常感谢您的帮助。

请查看上的文档

还可以看一看

这里还有一个教程:


特别是不要过于关注SVM模型(特别是对内核模型更感兴趣的不是
sklearn.SVM.SVC
,因此不是文本分类):一个简单的感知器,LogisticRegression或Bernoulli naive Bayes模型在训练速度更快的情况下也可以发挥同样的作用。

多项式naive Bayes/SVM两者都适用。链接到
文本分类示例
非常感谢报告,我修复了断开的链接。@ogrisel:我正在尝试使用naive Bayes的10个类,但对结果并不满意。如果数据集很小,则svm非常适合,对于少量样本(例如,少于10000个样本左右),每类大约100个句子,
SVC(kernel='linear')
可能足够快,可以收敛。但是,它应该提供与
LinearSVC
类似的预测性能,并与
LogisticRegression
类似的性能,后者应该更快,并且可以扩展到数十万个样本。对于每种情况,您都需要通过交叉验证为C选择最佳值。此外,
logisticsregression
默认情况下提供了良好的概率估计(使用
predict\u proba
方法)。这就是为什么我建议您在默认情况下在通用
SVC
上使用线性模型。