textcnn用于文本分类详解(一)

 趁着两天周末,我打算详细讲解一下基于one-hot的CNN文本分类和基于word2vec的Alexnet文本分类。也算是对知识的一个学习巩固。

 声明一下,这两章专题代码我参考了网友的,仅作交流学习用,然后还附上了我自己实操的情况。项目源码附在这里https://github.com/weiyuyan/TextCNN

先看一下作者项目的概貌。


textcnn

首先.idea 文件是当把pycharm作为IDE时自动生成的文件夹,用来存放项目的信息,包括版本控制信息、历史记录等等。
.idea

pycache又是做什么的呢?打开发现

__pycache__

打开里面是几个.pyc后缀的文件,都是乱码。
原来,python解释器会将 *.py 脚本文件进行编译,并将编译结果保存到pycache目录中。下次再执行工程时,若解释器发现这个 *.py 脚本没有修改过,就会跳过编译这一步,直接运行以前生成的保存在 pycache文件夹里的 *.pyc 文件。
这样工程较大时就可以大大缩短项目运行前的准备时间;如果你只需执行一个小工程,没关系 忽略这个文件夹就行。

接下来,graph、model和prediction三个文件夹是之后程序运行才会产生的,我们先不讨论。
"sougo_text_data"是经典的九分类搜狗新闻语料。


sougo_text_data

my_data_helper.py是模型数据读取模块。
function_helper.py是一个辅助功能模块。
cnn_sougo_classification.py是核心的cnn训练模块。
cnn_classification_prediction.py是最后利用模型进行测试的模块。
至于dnn_sougou_classify.py,这个我还没仔细研究,作者是说利用CNN+DNN进行分类???还有DNN这一说法?算了先不管。总之先学习CNN的。
这一篇就先到这里,然后接下来我们开始从my_data_helper.py讲起。

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

推荐阅读更多精彩内容