用朴素贝叶斯和SVM进行文本分类

本文介绍了使用朴素贝叶斯和SVM进行文本分类的实验,包括数据预处理、特征降维、模型训练与评估。通过对搜狗新闻数据的处理,构建了文本分类语料库。实验中遇到文件处理、URL读取等问题,并提出了解决方案。最终,通过调整SVM的C和gamma参数,实现了性能优化。
摘要由CSDN通过智能技术生成

写在前面的感悟:

测试集文件删除一定要shift+delete!!!!!要不然回收站直接爆炸,用几个小时打开,然后再用几个小时清空。文本分类的数据集看似只有几个G那么大,但是架不住文件数量多,导致各种移动复制删除操作及其缓慢(可能也因为我用的是轻薄本性能低下)

不知道为什么C盘一直在不断生成新东西,导致我每天都在几百MB几百MB地删东西,只想做完项目尽早让笔记本解脱。分析了一下,程序关闭之后按理来说操作系统就会把资源释放掉啊,可能是生成的临时文件太多了吧,还是没有成功地发现根源。

强烈建议使用云电脑!!!,省去很多麻烦,我做完这个项目之后直接重装系统。

吐槽:为什么搜狗文本分类数据集,大规模的只能快递硬盘过去拷贝,让我想起来之前看的科普文章,比起看似先进的网络传输,有时候用大卡车直接运送硬盘有着更高的传输速率。

代码放在Github上了

代码放在Github上了: 朴素贝叶斯与SVM文本分类

机器学习-文本分类

一、问题分析

实验任务为通过机器学习实现对中文文本的分类,实现理论为朴素贝叶斯以及SVM。

具体实现分为以下几个部分:

1.通过现有资源获取进行数据收集(已有语料库以及xml文件解析构造)

2.对训练集数据进行预处理;

3.对语料库的文档进行建模;

4.基于朴素贝叶斯和SVM进行文本分类的有监督训练;

5.利用通过机器学习得到文本分类器,对测试文本进行分类判别;

7.对于所设计的文本分类器进行性能的评估。

二、实验素材准备

1.现有文本分类语料库

复旦大学语料库,但总数只有约9000篇,不能满足实验要求,作为训练集测试集测试后正确率不理想。

在这里插入图片描述

2.搜狗新闻分类处理 SougouDataExtract.py

搜狗实验室网站提供了大量新闻网页xml格式数据,但其不具有分类和文本型,故本实验对其进行处理使之成为文本分类语料库,以备进行后续操作。

在这里插入图片描述

(1)处理操作:

在XML文档中头尾加入以进行解析操作,将会妨碍解析的字符修改(在五、遇到的问题及解决中涉及),基于python的url.parse模块根据xml文件中的url段网址的前缀进行对应content段文本类别的确认,构造文本分类结果。

(2)处理结果:

最终生成文件夹:

在这里插入图片描述

结果文件夹:

在这里插入图片描述
在这里插入图片描述

3.THUCdata

在这里插入图片描述

文本分类数量庞大,足以支撑实验文本数量要求。

三、总体思路

1.文本处理

首先对文本进行预处理,分词、去除无用信息、规范格式等等,使其具有特定的形式以便进行数据的提取,这也是文本建模的过程;

接着进行所需数据的提取,主要是对于每个分类中高频词的获取,词语以及频率作为文本分类器的分类依据,也就是特征的选取,对应机器学习的训练过程,这一过程在本实验中采用多项式模型;

在获得众多特征后,利用CHI2卡方降维提取特定数量的特征作为训练特征,有效增强训练的针对性。

2.训练测试

根据已经处理好的数据进行待分类文本的分类应用。

利用朴素贝叶斯、拉普拉斯平滑等等技术同时进行分类器测试与性能评估,这一过程在本实验中采用伯努利模型,因此本实验基于朴素贝叶斯的机器学习文本分类是通过混合模型(多项式训练,伯努利测试)来实现的。

使用python库svm.svc进行svm训练,并在训练测试过程中改变svc参数进行不同参数下实验结果的对比。

召回率、准确率性能的测试借助于混淆矩阵计算。

四、具体设计

预处理:

最终生成文件夹:

在这里插入图片描述

对于分类文本,我们需要进行以下四个处理:

(1)分词 split.py

分词操作处理文本中的词语,将其按照词性(名词、动词等)一一提取出来并用特定的分隔符进行区分,本程序使用python结巴分词库进行分词,将文本以词语为最小单位进行分隔、标识。

如图:

在这里插入图片描述

(2)聚集
  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值