Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于SVM分类器的文本挖掘_Python_Svm_Text Mining - Fatal编程技术网

Python 基于SVM分类器的文本挖掘

Python 基于SVM分类器的文本挖掘,python,svm,text-mining,Python,Svm,Text Mining,我想使用python nltk将SVM分类应用于文本挖掘目的,并获得精度、召回精度和不同的测量信息。为此,我对数据集进行预处理,并将数据集拆分为两个文本文件,即-pos_file.txt(正标签)和neg_file.txt(负标签)。现在我想用随机抽样的SVM分类器,70%用于训练数据,30%用于测试。我看到了一些scikit学习的文档,但不确定如何应用它 pos_file.txt和neg_file.txt都可以被视为一堆单词。 有用的链接- 示例文件:pos_file.txt stac

我想使用python nltk将SVM分类应用于文本挖掘目的,并获得精度、召回精度和不同的测量信息。为此,我对数据集进行预处理,并将数据集拆分为两个文本文件,即-pos_file.txt(正标签)和neg_file.txt(负标签)。现在我想用随机抽样的SVM分类器,70%用于训练数据,30%用于测试。我看到了一些scikit学习的文档,但不确定如何应用它

pos_file.txt和neg_file.txt都可以被视为一堆单词。 有用的链接-

示例文件:pos_file.txt

stackoverflowerror restor default properti page string present
multiprocess invalid assert fetch process inform
folderlevel discoveri option page seen configur scope select project level
class wizard give error enter class name alreadi exist
unabl make work linux
eclips crash
semant error highlight undeclar variabl doesnt work
示例文件:neg_file.txt

stackoverflowerror restor default properti page string present
multiprocess invalid assert fetch process inform
folderlevel discoveri option page seen configur scope select project level
class wizard give error enter class name alreadi exist
unabl make work linux
eclips crash
semant error highlight undeclar variabl doesnt work

此外,将同样的方法应用于单图、二元图和三元图也很有趣。期待您的建议或示例代码

下面是将支持向量机应用于文本分类的一个非常粗略的指南:

  • 将文本转换为向量表示,即对文本进行数字化,以便可以应用SVM(和大多数其他机器学习器)。使用sklearn.feature_extraction.CountVectorizer/TfidfVectorizer可以非常轻松地完成此操作,您可以在矢量化过程中自由选择n-gram范围以及所有其他选项,如停止字消除和字文档频率阈值
  • 执行特征选择,这通常是可选的,因为SVM可以很好地处理特征冗余。然而,特征选择有助于缩小学习空间维度,显著加快训练速度。常见的选择有:sklearn.feature\u selection.chi2/SelectKBest,仅举几个例子
  • 将SVC拟合(训练)到训练数据。内核的各种选择都在您的掌握之中,对于学习者参数(如C和gamma),您可以将它们保留为默认值,以供初始使用。如果您的目标是获得尽可能最佳的性能,那么可以使用grid search(sklearn.grid_search),它会尝试使用您指定的参数组合,并向您显示产生最佳结果的组合。网格搜索通常对评估数据执行
  • 评估。在评估数据上微调学习者参数后,您可以在之前在培训和微调阶段未看到的测试数据上测试拟合的SVM的性能。或者,您可以使用n交叉验证(sklearn.cross_validation)来估计SVM的性能。如果注释文本的数量有限,建议使用n交叉验证,因为它利用了您拥有的所有数据
  • 以下sklearn文档是在sklearn框架中执行文本分类的一个非常好的示例,我建议将其作为起点:


    你应该描述具体的问题,而不仅仅是索取代码(包含在你提供的链接中)@lejlot我想知道我需要遵循的步骤。这些步骤与任何ML的步骤相同-你可以将文件转换为矢量表示(因为SVM只对数值数据有效)并按照scikit learn中的SVM说明进行操作,忘记您处理文本的事实。