2018年10月14日笔记
tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。
CNN是convolutional neural network的简称,中文叫做卷积神经网络。
文本分类是NLP(自然语言处理)的经典任务。
项目成果如下图所示:
清华论文使用技术:bigram特征选取、Chi-square特征降维、tfidf权重计算、LibSVM模型,
2016年论文,链接: http://nlp.csai.tsinghua.edu.cn/site2/index.php/zh/codes/242-thuctc
我使用技术:word-embedding、CNN
使用CNN做文本分类比传统机器学习方法提高precision值0.05,F1score值0.08
因为CNN不需要分词,训练tfidf模型,程序运行时间节省10倍以上。
0.编程环境
操作系统:Win10
python版本:3.6
集成开发环境:jupyter notebook
tensorflow版本:1.6
1.致谢声明
本文是作者学习《使用卷积神经网络以及循环神经网络进行中文文本分类》的成果,感激前辈;
github链接:https://github.com/gaussic/text-classification-cnn-rnn
2.配置环境
使用卷积神经网络模型要求有较高的机器配置,如果使用CPU版tensorflow会花费大量时间。
读者在有nvidia显卡的情况下,安装GPU版tensorflow会提高计算速度50倍。
安装教程链接:https://blog.csdn.net/qq_36556893/article/details/79433298
如果没有nvidia显卡,但有visa信用卡,请阅读我的另一篇文章《在谷歌云服务器上搭建深度学习平台》,链接:https://www.jianshu.com/p/893d622d1b5a
3.下载并解压数据集
两种下载方式效果相同:
1.官方数据集下载链接: http://thuctc.thunlp.org/message
2.百度云盘下载链接: https://pan.baidu.com/s/1OC2uMoVHAWtX4mfOv6urCg 提取码: qphu
数据集大小:1.45GB
样本数量:80多万
数据集详情链接:http://thuctc.thunlp.org
压缩文件THUCNews.zip选择解压到当前文件夹,如下图所示。
使用BandZip解压需要大约 25分钟;
使用7zip解压需要大约 50分钟;
使用WinRAR解压需要大约 100分钟。
所以推荐读者下载并安装BandZip解压软件,下载链接: http://www.bandisoft.com/bandizip/
进入下载页面后,下载按钮如下图所示:
压缩文件夹 THUCNews中有14个文件夹,如下图所示:
14个新闻类别中打开 财经文件夹,如下图所示:
从上面的图中可以看出,每个类别文件夹中有若干文本文件,每个文本文件中内容表示1篇新闻。
4.获取数据
4.1 获取文本文件路径
import os
def getFilePathList(rootDir):
filePath_list = []
for walk in os.walk(rootDir):
part_filePath_list = [os.path.join(walk[0], file) for file in walk[2]]
filePath_list.extend(part_filePath_list)
return filePath_list
filePath_list = getFilePathList('THUCNews')
len(filePath_list)
上面一段代码的运行结果如下:
836062
从上面的运行结果可以看出,文件路径列表中共有836062个元素,即在THUCNews文件夹中总共有836062个文本文件。
4.2 获取所有样本标签
Windows和Linux系统路径字符串的间隔符有区别,本文作者是Windows系统。
label_l