Deep Learning with Python
第一篇:对电影评论进行正负面判断(二分类问题)
[前七个步骤是按照书里面进行建模和对比,最后是对任意评论进行正负面判断]
基础知识:
训练神经网络主要围绕以下四个方面。
1、层,多个层组合成网络(或模型)。
2、输入数据和相应的目标。
3、损失函数,即用于学习的反馈信号。
4、优化器,决定学习过程如何进行
接下来的例子使用Keras深度学习框架实现。
这个例子中,将电影评论的文字内容将其划分为正面和负面两种。
然后就可以开始第一个实验了。
在终端中输入jupyter notebook,进入Jupyter。
首先加载IMDB数据集
(第一行主要是为了再jupyter notebook中运行的时候能够使用matplotlib显示图像才添加的)
%matplotlib inline
from keras.datasets import imdb
(train_data,train_labels),(test_data,test_labels)=imdb.load_data(num_words=10000)
保留训练数据中前10000个最经常出现的单词。得到的向量数据较少,便于处理。运行之后会下载大概80M的数据。
其中:train_data、test_data是由单词索引(每个索引代表一个单词)组成;
train_label、test_label是由标签组成,每个标签代表对应的单词索引是负面的还是正面的(0表示负面,1表示正面)。
# word_index是一个将单词映射为整数索引的字典
word_index=imdb.get_word_index()
#键值颠倒,将整数索引映射为单词
reverse_word_index=dict([(value,key) for (key,value) in word_index.items()])
#将评论阶码,减去了3是因为0、1、2是保留的索引(0:padding填充;1:start of sequence序列开始;2:unknown未知词)。
decoded_review=" ".join([reverse_word_index.get(i-3,"?") for i in train_data[0]])
#得到的decoded_review是train_data[0]的原评论,print一下可以查看
print(decoded_review)