前言
数据分析不只是对数值型数据的分析,对文本数据的分析也是十分常见的。大家常看到的新闻类APP,如:今日头条,UC头条等,通常都已按新闻类型分好类别,读者可根据自己的喜好查看相应的新闻内容。本案例从数据预处理,数据可视化,文本向量化以及建立模型实现了新闻分类全过程。
1概述
1.1案例背景
新闻分类是文本分类中常见的应用场量。在传统分类模式下,往往是通过人工对新闻内容进行核对,从而将新闻划分到合适的类别中。这种方式会消耗大量的人力资源,并且效率不高。
1.2任务与实现
我们的任务在于,根据新闻文本中的内容,进行文本预处理,建模等操作,从而可以自动将新闻划分到最可能的类别中,节省人力资源。 具体实现内容包括:
◆能够对文本数据进行预处理。【文本清洗, 分词,去除停用词,文本向量化等操作。】
◆能够通过Python统计词频,生成词云图。【描述性统计分析】
◆能够通过方差分析,进行特征选择。【验证性统计分析】
◆能够根据文本内容,对文本数据进行分类。【统计建模】
1.3任务扩展
新闻分类是文本分类的常见场景,本案例的实现也可以应用到其他根据文本内容来实现分类的场景,例如,垃圾邮件过滤,情感分析等。
1.4数据集描述
数据集为2016年1月1日~ 2018年10月9日期间新闻联播的数据,包括: | 列名 | 说明 | | date | 新闻日期 | | tag | 新闻类别 | | headline | 新闻标题 | | content | 新闻内容 |
2.加载数据
2.1准备工作
使用anaconda3环境下的jupyter notebook,需要安装jieba,wordcloud库。
2.2加载数据并预览
3 数据预处理
3.1 文本数据
3 .1. 1 结构化数据与非结构化数据
结构化数据,是可以表示成多行多列的形式,并且,每行( 列) 都有着具体的含义。非结构化数据,无法合理地表示为多行多列的形式,即使那样表示,每行(列)也没有具体的含义。
3 .1 . 2 文本数据预处理
文本数据,是一种非结构化数据,与我们之前分析的结构化数据有所不同。因此,其预处理的步骤与方式也会与结构化数据有所差异。文本数据预处理主要包含:
◆缺失值处理
◆重复值处理
◆文本内容洁洗
◆分词
◆停用词处理
3.2 缺失值处理
content字段存在缺失值,根据实际情况选择用headline字段对应值填充并检查填充后结果。
3.3重复值处理
查找重复值并删除。
3.4文本内容清洗
文本中存在对分析作用不大的标点符号与特殊字符,使用re库中正则匹配方法去除: