情感分析-Tensorflow版

阅读此篇文章,您将会学到:

1、利用Tensorflow搭建双向LSTM情感分析模型

2、在Tensorflow中使用预训练好的词向量

源代码地址:

https://github.com/PrivateThink/tf_imdb/tree/master

项目的结构如下:

rt-polarity.neg:负向的情感文本

rt-polarity.pos:正向的情感文本

glove.6B.300d.txt:词向量文件

data_helpers.py:数据处理文件

tf_imdb.py:模型文件

data_helpers.py:文件包含了三个函数:clean_str,load_data_and_labels,batch_iter.

clean_str函数

clean_str函数:清洗数据,将所有的单词转为小写

load_data_and_labels函数

load_data_and_labels函数:读取正负情感文本数据,并生成标签,[0,1]代表是正标签,【1,0】是负标签。

batch_iter函数

batch_iter函数:生成批量数据,为训练提供小批量的数据,还支持打乱数据。

tf_imdb.py:模型文件中有一个加载词向量的函数loadglove,如下:

loadglove读取glove.6B.300d.txt文件,返回词典和词向量。

接下来解释下tf_imdb.py的主要部分

加载数据

上述代码主要作用是,加载词向量和训练测试的数据,并且将数据转换成机器能识别的序列。

切割数据

利用skleran的train_test_split函数将数据按照8:2切分成训练集和测试集。

定义输入输出

创建Embedding层

创建双向的LSTM层

上述代码都有解释,详细的请参照github上的源代码。

源代码:

https://github.com/PrivateThink/tf_imdb/tree/master

相对来说,Tensorflow比Keras会难的多,对于初学者不友好。

参考

1:https://github.com/roomylee/rnn-text-classification-tf

2:https://ireneli.eu/2017/01/17/tensorflow-07-word-embeddings-2-loading-pre-trained-vectors/

本公众号

将会推出Tensorflow基础教程

敬请关注

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180621G148NT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券