资源下载地址:https://download.csdn.net/download/sheziqiong/85736113

语料库构建

本项目的语料来源新浪新闻网,通过 spider.py 爬虫模块获得全部语料,总计获得10类新闻文本,每一类新闻文本有10w篇。

  • 借助新浪新闻网的一个api获取新闻文本,api的url为http://api.roll.news.sina.com.cn/zt_list?

  • 使用进程池并发执行爬虫,加快抓取速度。

数据预处理

本项目的数据预处理包括:分词处理,去噪,向量化,由 stopwords.py 模块、text2term.py 模块、vectorizer.py 模块实现。

  • 本项目借助第三方库 jieba 完成文本的分词处理。

  • 通过停用词表去除中文停用词,通过正则表达式去除数字(中文数字&阿拉伯数字)。

filter_pattern = re.compile(ur'[-+]?[\w\d]+|零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿')
  • 使用进程池并发执行数据的分词和去噪,加快数据预处理的过程。

  • 把数据集1:1划分为训练集和测试集,各50w篇文档。

  • 借助scikit-learn提供的CountVectorizer类完成向量化,得到训练集和测试集两个文本的特征矩阵,矩阵类型为稀疏矩阵。www.biyezuopin.vip

  • 去除文档中文档频率小于0.1%的特征,这些特征我们认为出现的频率实在太低同时也不可能为某类文档的局部特征,以此完成降维,最终特征矩阵的维度大约为19543维。

朴素贝叶斯分类

本项目使用朴素贝叶斯作为本项目文本分类的baseline,由 baseline.py 模块实现。

  • 平滑处理

  • 处理零概率

  • 最终分类结果:
    最高召回率:0.95 | 最低召回率:0.46 | 平均召回率:0.79
    最高精确度:0.96 | 最低精确度:0.55 | 平均精确度:0.78
    最高F1测度:0.93 | 最低F1测度:0.50 | 平均F1测度:0.79

SVM分类

本项目使用SVM作为最终的文本分类器,由 svm.py 模块实现其中SVM的核函数选用线性核,特征矩阵投入训练前经过词频加权.

  • 借助TfidfTransformer使用TF-IDF对词频进行加权

  • 选用线性核LinearSVC

  • 结合5折交叉验证和网格搜索GridSearchCV完成调参

  • 最终分类结果:
    最高召回率:0.99 | 最低召回率:0.77 | 平均召回率:0.90
    最高精确度:0.98 | 最低精确度:0.77 | 平均精确度:0.90
    最高F1测度:0.99 | 最低F1测度:0.77 | 平均F1测度:0.90

可视化

比较SVM分类器和贝叶斯分类器的分类性能,通过可视化的方式比较两者的预测结果,由 viewer.py 模块实现。

混淆矩阵热力图

性能对比直方图


资源下载地址:https://download.csdn.net/download/sheziqiong/85736113

基于Python的新浪新闻文本分类相关推荐

  1. 基于tensorflow+CNN的新浪新闻文本分类

    2018年10月4日笔记 tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流. CNN是convolutional neural network的简称,中文 ...

  2. 基于tensorflow、CNN、清华数据集THUCNews的新浪新闻文本分类

    2018年10月14日笔记 tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流. CNN是convolutional neural network的简称,中 ...

  3. 基于tensorflow+RNN的新浪新闻文本分类

    2018年10月11日笔记 tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流. RNN是recurrent neural network的简称,中文叫做循 ...

  4. 【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比

    ·阅读摘要: 两篇论文,第一篇发表于<图学学报>,<图学学报>是核心期刊:第二篇发表于<北京印刷学院学报>,<北京印刷学院学报>没有任何标签. ·参考文 ...

  5. python爬虫新浪新闻_python爬虫之获取新浪新闻信息

    一:前言 windows平台: 1):谷歌的chrome浏览器:python3.6的软件安装包,需要导入的库有: [python]  view plain copy pip install reque ...

  6. python爬虫新浪新闻_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻

    请安装anaconda,其中附带的spyder方便运行完查看变量 1.进入cmd控制台, 输入 pip install BeautifulSoup4 pip install requests 2.编写 ...

  7. 大数据分析案例-基于随机森林算法构建新闻文本分类模型

  8. 天池比赛——新闻文本分类比赛(零基础入门NLP)

    1 赛题理解 1.1 比赛内容 对新闻文本的类别进行预测.比赛提供了包含14个新闻类别的文本数据,分为训练集和测试集A,B.训练集包含20万条新闻文本数据,测试集A,B分别包含5万条新闻文本数据.所有 ...

  9. 朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现

    朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现 以下代码为本人学习后,修改或补充后的代码实现,数据集和原代码请参考:https://github. ...

最新文章

  1. DeepMind:所谓SACX学习范式
  2. C语言和我的世界指令哪个难,我的世界难度有什么区别 难度选择指令介绍
  3. 广发银行创新“智慧金融”打造“智慧城市”
  4. Total Physical Response TPR
  5. 深入浅出交换类排序算法(转)
  6. pythonjson中list操作_python中JSON的使用
  7. Openbox-桌面图标设置
  8. 国际C 语言乱码大赛(IOCCC )
  9. 如何借助表格优化直通车分时折扣
  10. 微信小程序云数据库中变量作为字段名与字段取值、字段值取值
  11. HTTP中GET,POST和PUT的区别
  12. 间谍用GAN生成“红发美女”!潜入美国政坛,全网广钓政客
  13. 跑步用app轨迹画得比较准确的居然是“咕咚”
  14. Latex 引号输入
  15. 使用POI 导出word模板文件
  16. log4j.proprties
  17. 用Python实现自动刷王者荣耀金币,这简直不要太爽了
  18. H5页面实现摇一摇(微信+APP内嵌入使用)
  19. ssh 配置及使用(ssh-keygen,ssh-copy-id,known_hosts)
  20. 2016.4.9-关于“放生”反而促进“捕猎”的思考

热门文章

  1. Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘的解决方法
  2. 华为ENSP模拟器CE12800 CE6800设备包
  3. 头像类NFT的发展前景与局限性在哪里?
  4. jacob 详解 语音_Java系列:Java实现文字转语音
  5. 中标麒麟桌面版yum安装mysql_中标麒麟系统桌面版本CHROME安装问题
  6. 电子工程师必备基础知识
  7. 高德地图 Web JS API示例学习笔记(3)——地图(三维地图)
  8. 微信小程序清除订阅消息授权数据
  9. Pytorch Tensor基本数学运算
  10. 前端 table 导出excel表格方法