文本分类(一):整体流程
来源:互联网 发布:apache tomcat 整合 编辑:程序博客网 时间:2024/05/23 00:03
有了新闻分类的语料库,接下来我们就可以进行文本分类了。
首先说一下大概的流程:
1.进行分词
2.去停用词
3.取名词
4.特征提取
5.特征加权
6.构造分类器
正式开始
1 进行分词
现在网上有很多开源的分词工具可以供我们选择, 选择结巴分词进行分词。虽然中科院的分词工具号称是最好的中文分词工具,但是它并木有进行开源。
首先进行jieba的安装,结巴的github托管地址:github。里面有结巴的安装教程,比较好理解。
貌似分词就这么简单的结束了。
2 去停用词
貌似是更加简单的一步,只要找一个停用词表,然后写个小程序进行剔除 就可以了。
3 取名词
根据结巴的分词标注结果进行取名词操作,因为往往名词是一篇文章的重点关注对象。
4 特征提取
进行语料库(保存很多文章的地方)的各个文章类别的特征提取。采用卡方检验进行特征的提取。
A:在c类下包含词w的文档数量;
B:不在c类下包含词w的文档数量;
C:在c类下不包含词w的文档数量;
D:不c类下且不包含词w的文档数量;
N:所有文档的数量,即N=A+B+C+D;
对于每一类,分开计算。然后取各类前400作为词表。即分类的特征。
5 特征加权
采用td-idf对每篇文章所具有的特征进行赋值td-idf
TF-IDF是一个度量一个词对所属文档主题贡献程度的一个非常重要的标准,也是将文档转化为向量表示过程中的重要一环。
TF-IDF主要思想为:如果某一个词或者短语在一篇文章中出现的频率TF很高,并且在其它文章中很少出现,则认为该词或者短语具有很好的类别区分能力,适合用来作为特征。
词频TF:
其中
逆向文档频率:
其中
注意:由于词表中的每个词不一定在每个类中都会出现,因为需要采取平滑的方法。采用分母+1平滑的方法。
6 构造分类器
采用svm作为分类器。选取libsvm来训练模型。
1.为了使模型训练时间降低,首先使用svm-scale命令,对训练数据和测试数据进行缩放操作,上限为1,下限为0
2.使用grid.py对使用内核为rbf的svm模型进行参数选择。
3.使用svm-predict命令,对测试数据进行测试。
1 0
- 文本分类(一):整体流程
- 科普-文本挖掘(文本分类)流程
- Win32开发笔记(一):整体流程
- django入门一(整体流程)
- 学习分类文本(一)
- 文本情感分类(一)
- 中文文本分类流程
- 使用gensim和sklearn搭建一个文本分类器(一):流程概述
- 分类问题处理整体正规流程
- 文本挖掘之详细整体的流程
- 学习心得——文本分类(一)
- 使用torch7进行文本分类(一)
- 文本情感分类(一):传统模型
- 学习文本分类(一)
- Redis源码学习笔记(一)-- 整体运行流程详解
- activiti自定义流程之整合(一):整体环境配置
- activiti自定义流程之整合(一):整体环境配置
- 【文本分类】文本分类流程及算法原理
- 第十四周实践项目三--验证是否为BST
- Javascript根据变量来动态查询数组或Json的数据
- [Matlab 基础] Matlab函数笔记 - 绘图
- javascript导图
- 树状数组
- 文本分类(一):整体流程
- 重构(一)
- 安装windows时,手动分区
- Nginx+uWSGI+Django部署
- 编程验证带权图的最短路径路由算法
- C++ inline 函数
- 解决android开发中无法trycatch到由唯一性约束导致的数据库insert不进数据erro的问题
- [工作点滴]定时任务不定期报连接数据库失败
- Highcharts折线图,去掉x轴y轴刻度与刻度名称