基于tensorflow+CNN的报警信息短文本分类

2018年10月15日笔记

tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。
CNN是convolutional neural network的简称,中文叫做卷积神经网络。
文本分类是NLP(自然语言处理)的经典任务。

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.下载数据

数据集下载链接: https://pan.baidu.com/s/1nvfAWk2Wg1F4xZd2qkq5yA 提取码: 86bh
数据集总共大小71kB,文件夹结构如下图所示:

image.png

1.data文件夹是原始数据,其中有4个csv文件,分别代表4个分类;
2.cnn_package.py文件是代码文件,可以通过python cnn_package.py命令运行;
3.cnn_test.ipynb文件是可以分步运行的代码文件,可以通过jupyter notebook打开服务后访问;
4.shortTextClassification.ipynb文件是做数据处理的代码文件,将data中的数据转换为之后的4个pickle文件和1个词汇表文件;
5.test_content_list.pickle文件是测试集内容列表文件;
6.test_label_list.pickle文件是测试集标签列表文件;
7.train_content_list.pickle文件是训练集内容列表文件;
8.train_label_list.pickle文件是训练集标签列表文件;
9.vocabulary.txt文件是词汇表文件;
10.报警信息短文本分类.zip文件是前面10个文件的压缩结果。
基于当前文件夹打开cmd,在其中输入命令并运行:python cnn_package.py
运行结果如下图所示,上方红框表示100次迭代训练过程,下方红框表示混淆矩阵报告表
image.png

4.完整代码

完整代码已经在数据集文件中给出,即cnn_test.ipynb文件和cnn_package.py文件;
shortTextClassification.ipynb文件中代码的作用是将文本文件转换为二进制文件,即4个pickle文件;
cnn_test.ipynb文件中有作者整理好的代码,思路清晰,易于理解;
从工程开发的角度考虑,本文作者在cnn_package.py文件中封装了一个类TextClassification,对于样本数量在10万左右的分类任务较为适用。

5.推荐阅读

因为本文作者写了类似的文章,并且比本片文章的样本数量更多,难度更大。
1.理解cnn_test.ipynb文件推荐阅读《基于tensorflow+CNN的新浪新闻文本分类》,链接:https://www.jianshu.com/p/b1000d5345bb
2.理解cnn_package.py文件推荐阅读《基于tensorflow+CNN的垃圾邮件文本分类》,链接:https://www.jianshu.com/p/f3ca7c75401b

6.总结

1.本文是作者第9个NLP小型项目,数据共有1712条。
2.本文是一个简单的例子,容易进行上手和实践,本文作者通过本文中代码的练习,完成了类的封装。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容