这是"Hierarchical Attention Network for Document Classification"论文使用tensorflow仿真实现的代码,具体的论文介绍和代码讲解可以参考我的博客内容:
论文笔记: http://blog.csdn.net/liuchonge/article/details/73610734
代码讲解: http://blog.csdn.net/liuchonge/article/details/74092014
数据集下载链接为:
https://github.com/rekiksab/Yelp/tree/master/yelp_challenge/yelp_phoenix_academic_dataset
为了执行程序,首先你要下载上面的数据集里面的yelp_academic_dataset_review.json
文件,然后分别执行:
python DataUtils.py
python train.py
上面一句是先进行数据集的预处理操作,将yelp_academic_dataset_review.json
文件转化为模型所需要的输入格式,并保存在yelp_data
文件中。第二句是执行模型训练部分的代码,接下来就需要默默的等待就好了。可以到0.0.0.0:6006
的本地网址查看tensorboard可视化界面,(在此之前需要执行tensorboard命令,开启该网址)。
模型架构:
“Document Modeling with Gated Recurrent Neural Network for Sentiment Classification”使用两个神经网络分别建模句子和文档,采用一种自下向上的基于向量的文本表示模型。模型架构如下图所示:
"Hierarchical Attention Network for Document Classification"的模型架构,其实主要的**和上面的差不多,也是分层构建只不过加上了两个Attention层,用于分别对句子和文档中的单词、句子的重要性进行建模。而且引入Attention机制除了提高模型的精确度之外还可以进行单词、句子重要性的分析和可视化,让我们对文本分类的内部有一定了解。模型主要可以分为下面四个部分,如下图所示:
- a word sequence encoder,
- a word-level attention layer,
- a sentence encoder
- a sentence-level attention layer.