![深度学习实战:基于TensorFlow 2和Keras(原书第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/670/40319670/b_40319670.jpg)
上QQ阅读APP看书,第一时间看更新
1.10 情感分析
我们用基于IMDb数据集开发的情感分析示例代码来测试Colab。IMDb数据集包括来自Internet Movie Database的50 000条影评。每条评论可能是正面的或负面的(例如,竖起大拇指或不赞成)。数据集分为25 000条训练用评论和25 000条测试用评论。我们的目标是构建一个根据给定文本预测二元判断结果的分类器。可通过tf.keras
轻松加载IMDb,并将评论中的单词序列转换为整数序列,其中每个整数代表字典中的一个特定单词。另外,还有一种简便的方式将所有文本语句长度限制为max_len
,从而可将所有句子(无论长短)作为采用固定长度输入向量的神经网络的输入(详见第8章):
![053-02](https://epubservercos.yuewen.com/FACE01/20940534208098106/epubprivate/OEBPS/Images/053-02.jpg?sign=1738776390-yeo2jM1mfcNFTQA69SUodWfhRit1Rp5r-0-f68ddf0c9f98fb6f82abe7502e795bc4)
现在我们将使用一些将在第8章中详细解释的层类型来创建一个模型。目前,假设Embedding()
层能把评论文本中单词的稀疏空间映射为一个稠密空间。这会使得计算更加容易。另外,还将用到GlobalMaxPooling1D()
层,该层提取n_words
个特征中的每个特征向量的最大值。除此之外,还有两个Dense()
层,最后一个Dense()
层是由具有sigmoid激活函数的单个神经元组成的,用于最终的二元估计:
![054-01](https://epubservercos.yuewen.com/FACE01/20940534208098106/epubprivate/OEBPS/Images/054-01.jpg?sign=1738776390-LLd2Pj3OEIh0KBr13E2YST7YtNBK3P6D-0-47a1d43b3382fd76ebcc10515ce0b700)
现在需要训练上述模型,这段代码与我们之前使用MNIST数据集时所做的非常类似:
![054-02](https://epubservercos.yuewen.com/FACE01/20940534208098106/epubprivate/OEBPS/Images/054-02.jpg?sign=1738776390-sIQ9e3uRHUqq5MzPTPxg741cnasrEZBR-0-7860484c46b06b9e40a0432a9cc1cf5d)
查看神经网络的结构,然后运行几次迭代,结果如图1-36所示。
![055-01](https://epubservercos.yuewen.com/FACE01/20940534208098106/epubprivate/OEBPS/Images/055-01.jpg?sign=1738776390-7I3DoufXrQRNuO42wnqYyEXcVmO9BGjS-0-efc91bf50789b30996db56f8cc260e3b)
图1-36 若干次迭代后神经网络的结果
如图1-37所示,达到了85%的准确度,这对于一个简单网络来说还不错。
![055-02](https://epubservercos.yuewen.com/FACE01/20940534208098106/epubprivate/OEBPS/Images/055-02.jpg?sign=1738776390-ogKzBHGmKxKzdlDFkaHuFgNnBWLb0QMu-0-4fbdd1c923b39f920cfdf448ab445b7b)
图1-37 测试简单神经网络的准确度