文本分类(一):整体流程

12 篇文章 0 订阅

有了新闻分类的语料库,接下来我们就可以进行文本分类了。
首先说一下大概的流程:

1.进行分词
2.去停用词
3.取名词
4.特征提取
5.特征加权
6.构造分类器

正式开始

1 进行分词

现在网上有很多开源的分词工具可以供我们选择, 选择结巴分词进行分词。虽然中科院的分词工具号称是最好的中文分词工具,但是它并木有进行开源。
首先进行jieba的安装,结巴的github托管地址:github。里面有结巴的安装教程,比较好理解。
貌似分词就这么简单的结束了。

2 去停用词

貌似是更加简单的一步,只要找一个停用词表,然后写个小程序进行剔除 就可以了。

3 取名词

根据结巴的分词标注结果进行取名词操作,因为往往名词是一篇文章的重点关注对象。这一步需要根据实际任务来做,如果是新闻的话,名词代表的可能就足够了。

4 特征提取

进行语料库(保存很多文章的地方)的各个文章类别的特征提取。采用卡方检验进行特征的提取。

χ2(c,w)=N(ADBC)2(A+C)(A+B)(B+D)(C+D)

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:

/tfw,d=nw,dini,d

其中 tfw,d 表示为词w在文章d中的权重, nw,d 为词 w 在文章d中出现的次数, ini,d 为文章d的总词数。
逆向文档频率:
idfi=log|w||j:widj|

其中 |D| 为语料库中文件总数,分母为包含 wi 的文件数目。

注意:由于词表中的每个词不一定在每个类中都会出现,因为需要采取平滑的方法。采用分母+1平滑的方法。

6 构造分类器

采用svm作为分类器。选取libsvm来训练模型。
1.为了使模型训练时间降低,首先使用svm-scale命令,对训练数据和测试数据进行缩放操作,上限为1,下限为0
2.使用grid.py对使用内核为rbf的svm模型进行参数选择。
3.使用svm-predict命令,对测试数据进行测试。

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值