IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【深度学习】-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型 -> 正文阅读

[人工智能]【深度学习】-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型

【深度学习】-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型

前言

【深度学习】-Imdb数据集情感分析之模型对比(3)- CNN
【深度学习】-Imdb数据集情感分析之模型对比(2)- LSTM
【深度学习】-Imdb数据集情感分析之模型对比(1)- RNN
对之前内容感兴趣的朋友可以参考上面这几篇文章,接下来我要给大家介绍本篇博客的内容。为了观察CNN提取文本结构化的优势和LSTM提取上下文关系性的优势,我们将两种模型进行集成,引入了CNN-LSTM集成模型进行实验。先经过CNN层来提取局部特征,再使用LSTM层提取这些局部特征的长距离特征,再经变换输入全连接层,进行情感分析并打分量化,最后将两种模型的分数平均,从而得到最终分数。

一,CNN是什么?

CNN网络适合于提取数据的结构化信息,因此在特征工程中得到了广泛的应用,而LSTM网络更适合于提取数据的时间相关性和文本片段中的依赖项,有按时间顺序扩张的特性,广泛应用于时间序列中。同时,这给我们在情感分析任务上带来一个新思路,可以将两者结合,构建新的集成模型CNN-LSTM的对文本进行分类。模型结构如图所示:
在这里插入图片描述

二、训练CNN-LSTM模型

1.数据预处理

与前文类似,详细请移步【深度学习】-Imdb数据集情感分析之模型对比(1)- RNN
数据预处理部分

2.构建及训练CNN-LSTM模型

模型结构

在这里插入图片描述

设定模型参数

filter_length = 5    # 滤波器长度

pool_length = 4      # 池化长度
max_features = 4000   # 词汇表大小
maxlen = 400           # 序列最大长度
embedding_size = 32   # 词向量维度

nb_filter = 32      # 1维卷积核个数
filter_length = 3    # 卷积核长度
hidden_dims = 256    # 隐藏层维度

构建网络模型

model = Sequential()
model.add(Embedding(max_features, embedding_size, input_length=400))  # 词嵌入层
model.add(Dropout(0.2))       # Dropout层
lstm_output_size =32 # LSTM 层输出尺寸
# 1D 卷积层,对词嵌入层输出做卷积操作
model.add(Convolution1D(nb_filter=nb_filter,
                        filter_length=filter_length,
                        border_mode='valid',
                        activation='relu',
                        subsample_length=1))
# 池化层
model.add(MaxPooling1D(pool_length=pool_length))
# LSTM 循环层
model.add(LSTM(lstm_output_size))
# 全连接层,只有一个神经元,输入是否为正面情感值
model.add(Dense(1))
model.add(Activation('sigmoid'))  # sigmoid判断情感
 
model.summary()   # 模型概述

训练模型

定义损失函数,优化器以及评估矩阵,并开始训练模型。

## 训练模型
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

train_history =model.fit(x_train, y_train,batch_size=32, 
                         epochs=10,verbose=1,
                         validation_split=0.2)

三、可视化结果

import matplotlib.pyplot as plt
def show_train_history(train_history,train,validation):
    plt.plot(train_history.history[train])
    plt.plot(train_history.history[validation])
    plt.title('Train History')
    plt.ylabel(train)
    plt.xlabel('Epoch')
    plt.legend(['train', 'validation'], loc='upper left')
    plt.show()
show_train_history(train_history,'accuracy','val_accuracy')
show_train_history(train_history,'loss','val_loss')
print('Test score:', score)
print('Test accuracy:', acc)

因为博主的数据集删除了就不放可视化图片了,下次一定。

?四、模型预测

请参照我这篇博客下的模型预测代码。在这里插入图片描述

【深度学习】-Imdb数据集情感分析之模型对比(3)- CNN

五、评估模型并保存

模型评估

用测试集对模型的匹配精度进行评估

score, acc = model.evaluate(x_test, y_test,
                            batch_size=128)

保存模型

model_json = model.to_json()
with open("D:/final_all/1/1.json", "w") as json_file:
    json_file.write(model_json)

model.save_weights("D:/final_all/1/2.h5")
print("Saved model to disk")

六、总结

CNN-LSTM模型训练总用时670s,训练集上的准确率为98.96%,在测试集上的准确率为90.02%,损失率在7.5%,是这几个模型中最优良的模型。

实验总结可以参照我的下一篇博客,有我的整个实验的对比分析以及总结。

参考资料

https://blog.csdn.net/keeppractice/article/details/106145451

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:51:12  更:2022-07-20 18:52:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:45:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计