何为数据挖掘,顾名思义就是从大量数据中挖掘或抽取出知识。在实际中,进行数据挖掘的数据不仅仅有数值型数据,还有图片型数据,文本型数据等。而所谓文本挖掘,就是从大量文本数据中,提取出对信息使用者有价值的信息。文本挖掘主要的研究领域有:文本结构分析,文本分类,文本聚类,文本关联分析等。今天,小编用一个例子为大家讲解使用支持向量机SVM进行短文本分类。

对于支持向量机,前面已有小伙伴对它进行详细介绍,若想了解具体情况,可查看历史文章:python机器学习——支持向量机(入门理解)

数据说明:本次用来训练及测试的分类数据有两类,分别是“体育”类及“文学出版”类,“体育”类数据由899个短文本组成,“文学出版”类数据由797个短文本组成。

先来看看利用SVM文本分类的流程吧!

数据预处理---->数据向量化---->利用Sklearn-learn进行SVM分类

一、数据预处理

对于文本挖掘,数据预处理的过程必不可少同时也至关重要。在数据预处理过程中,主要是进行中文分词及去除停用词。

(一)中文分词

分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,该过程主要为第二步数据向量化特征选择做准备。Jieba分词是目前国内使用人数最多的中文分词工具,且支持三种分词模式,下面对其三种分词模式的使用方法进行简单介绍。

(二)去除停用词

由于中国人的说话习惯,在中文语句中会有许多的语气用词“啊,呀,呢”及一些无特殊含义的词“的,这儿,一些”等,这些词没有实际意义确占比较大,一方面增大了计算量,另一方面减少了有意义词的权重。去除停用词采取的方法通常是,建立一个专门的停用词库,然后调用词库去掉无意义词汇,网上有许多停用词词库,这儿就不具体介绍了。

二、数据向量化

数据向量化是连接文本型数据与计算机的桥梁,可以将文本型数据转化为计算机可读的数值型数据。目前,较为常见的数据向量化方法是使用词向量模型。

词向量(Word embedding),又叫Word嵌入是自然语言处理(NLP)中的一组语言建模和特征学习技术的统称,它是通过“浅层双层的神经网络”对大量文本进行训练,从而将每一个词对应一个向量,建立起词与词之间的关系。这儿对于其训练过程不做过多赘述,直接看如何使用吧!

三、利用Scikit-learn进行SVM分类

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。

Scikit-learn中的SVM算法库分为两类,一类是分类的算法库,包括SVC, NuSVC和LinearSVC 3个类;另一类是回归算法库,包括SVR, NuSVR和LinearSVR 3个类。相关的类都包含在sklearn.svm模块之中。下面就开始使用Scikit-learn进行SVM短文本分类啦!

在该过程有如下几个步骤:

(一)分类数据贴标签

分别对两类数据进行数据预处理及数据向量化后,每一个短文本都由一个向量表示。接着按照分类将“体育”类文本贴上标签“1”,“文学出版”类文本贴上标签“0”。

(二)合并分类数据并拆分训练集,测试集

将两类数据及对应的数据标签对应合并,接下来使用“sklearn”模块中“train_test_split”包对数据进行切割,随机选择30%的数据作为测试集,剩余数据作为训练集。

(三)利用SVM模型进行训练并测试

SVM模型有许多核函数,使用不同核函数,其效果也不尽相同,在这里使用三个不同的核函数做对比,看看针对本案例那个核函数的预测效果更佳。在该过程使用了“sklearn”模块中“classification_report”和“accuracy_score”包获得预测的准确度,精确度,召回率,F1值。

Accuracy:(准确度),它是预测正确的正例和负例数据占全部数据的比例。

A=(TP+TN)/(TP+TN+FP+FN)

precision:(精确度),它是预测正确的正例数据占预测为正例数据的比例。

P=TP/(TP+FP)

Recall:(召回率),它是预测为正例的数据占实际为正例数据的比例。

R=TP/(TP+FN)

f1-score:(F1),它是精确度和召回率的调和平均值,

1.使用线性核函数的预测结果

      Accuracy: 0.8646365422396856

2.使用多项式核函数的预测结果

Accuracy: 0.8567779960707269

3.使用径向基核函数的预测结果

Accuracy: 0.8292730844793713

通过对比,可看出对于本案例,使用线性核函数的分类效果更好。通过这个例子,大家是否掌握了进行文本分类的技巧呢,实际上在文本挖掘中,它的前期处理过程大致相同,需要改变只有分类模型的使用哦!

以下,是代码和分类数据的百度网盘链接:

https://pan.baidu.com/s/1MO8cXoHvG4ylhhOv57zu5w

提取码:qf2w

文字来源|陈丹

图片来源|陈丹

编辑|宋欣蕊

审核|叶紫薇

欢迎大家转发,但大家记得标明原创出处哟~如果喜欢记得点【在看】呀~,扫描关注我们的公众号↓

sklearn svm如何选择核函数_文本挖掘篇|利用SVM进行短文本分类相关推荐

  1. sklearn svm如何选择核函数_机器学习之支持向量机多种核模型对比

    机器学习 xueyifeiyun1989zx,公众号:围着围巾的小黑机器学习之监督学习实战 前文我们提到机器学习中的监督学习,其中有一个模型是我们提到的但是没有训练测试的,叫做支持向量机(简称SVM) ...

  2. sklearn svm如何选择核函数_使用python+sklearn实现成对度量、相关性和核函数

    sklearn.metrics.pairwise子模块实现了评估样本集的成对距离或相关性.此模块包含距离度量和内核.这里对这两个问题作了简要的总结.距离度量是函数d(a, b),如果对象a和b被认为比 ...

  3. python svm核函数_机器学习算法实践-SVM核函数和软间隔

    前言 上文中简单总结了对于线性可分数据的SVM的算法原理,本文对于非线性可分以及有噪声存在的时候我们需要对基本SVM算法的改进进行下总结其中包括: 核函数在SVM算法中的使用 引入松弛变量和惩罚函数的 ...

  4. lda主题模型python实现篇_基于LDA主题模型的短文本分类

    VSM(向量空间模型)是信息检索领域最为经典的分析模型之一,采用VSM对短文本进行建模,即将每一篇短文本表示为向量的形式,用TF-TDF表示向量的值.给出一些符号定义:短文本集SD= {sd1,sd2 ...

  5. SVM原理详细图文教程来了!一行代码自动选择核函数,还有模型实用工具

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 贾浩楠 发自 凹非寺 转自 | 量子位 SVM?老分类算法了,轻松拿下. 然而,每一次老板让你 ...

  6. SVM原理详细图文教程来了!一行代码自动选择核函数

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 转载自:量子位 SVM?老分类算法了,轻松拿下. 然而,每一次老板让你讲解SVM,或每一次面试被 ...

  7. svm常用核函数及选择核函数的方法

    SVM核函数的选择对于其性能的表现有至关重要的作用,尤其是针对那些线性不可分的数据,因此核函数的选择在SVM算法中就显得至关重要.对于核技巧我们知道,其目的是希望通过将输入空间内线性不可分的数据映射到 ...

  8. 百题突击12:1,SVM算法的优缺点 2,SVM的超参数C如何调节 3,SVM的核函数如何选择 4,简述SVM硬间隔推导过程 5,简述SVM软间隔推导过程

    1,SVM算法的优缺点 优点 可以解决高维问题,即大型特征空间: 解决小样本下机器学习问题: 能够处理非线性特征的相互作用: 无局部极小值问题:(相对于神经网络等算法) 无需依赖整个数据: 泛化能力比 ...

  9. 使用SVM分类如何选择核函数类型

    先粘贴一下,以后有经验了再自己总结. 如果如果特征数远远大于样本数的情况下,使用线性核就可以了. 如果特征数和样本数都很大,例如文档分类,一般使用线性核, LIBLINEAR比LIBSVM速度要快很多 ...

最新文章

  1. linux中的ftp是什么意思,什么是linux的ftp
  2. oracle快速了解法,【oracle】rownum的快速了解
  3. 励志!送女儿去厦大读研后,爸爸回家就考了厦大的博士,现在是女儿的“学弟”...
  4. Java 文件目录显示
  5. java dubbo jsf_cubelink
  6. 什么是数字孪生?终于有人讲明白了
  7. hibernate框架(二)核心配置API
  8. 解决Oracle11g密码180天过期,账号锁住的问题
  9. 404 错误页面:重装上阵
  10. ROS防火墙规则收集
  11. Cesium-相机系统与视域移动
  12. 分治回溯--Nqueen
  13. java.io.IOException: There appears to be a gap in the edit log. We expected txid ***, but got txid
  14. 【电脑办公软件】万彩办公大师教程丨TextDiff文本比较工具
  15. 一文告诉你车载测试的秘密
  16. (三)SpringCloud实战之openfeign服务调用
  17. 毕设-基于JavaWeb毕业论文选题系统
  18. Linux 下载sublime
  19. bzoj4997 [Usaco2017 Feb]Why Did the Cow Cross the Road III(bfs)
  20. 线性代数——向量的内积、范数、正交,向量组的线性相关性和向量空间

热门文章

  1. Java 内部类 和 匿名内部类
  2. Python 中 PyQt5 + pycharm 调用 Qt Designer,将.ui文件转换成 .py 文件
  3. java运行命令解释
  4. Tomcat学习笔记(一)
  5. 华为鸿蒙显示安卓,被谷歌除名,华为6月2日发布鸿蒙反击,开机界面已流出!...
  6. [记录] --- linux安装redis
  7. 检测电脑硬件的软件_【软件分享】PowerDVD | PotPlayer | AIDA64
  8. subscribe error不执行_你不知道的redis:第三方jar无封装命令我们该怎么执行?
  9. 电脑机器人_【头条】厚积薄发!卡达电脑智能机器人之纸箱码垛机赋能智能工厂...
  10. mysql怎么获取系统_MySQL获取系统性能和状态代码