Keras-深度学习-神经网络-电影评论情感分析模型

news2024/11/20 2:19:09

目录

模型搭建

模型训练


模型搭建

使用到的数据集为IMDB电影评论情感分类数据集,该数据集包含 50,000 条电影评论,其中 25,000 条用于训练,25,000 条用于测试。每条评论被标记为正面或负面情感,因此该数据集是一个二分类问题。

①导入所需的库。

import tensorflow as tf
from keras.datasets import imdb
from keras.models import Sequential
from keras.layers import Dense, Embedding, GlobalAveragePooling1D

②通过调用 imdb.load_data 函数加载 IMDB 电影评论数据集,并将其拆分为训练集和测试集,其中 num_words 参数指定了词汇表的大小,只选择出现频率最高的前 10000 个单词。

vocab_size = 10000
maxlen = 256
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=vocab_size)

③使用 tf.keras.preprocessing.sequence.pad_sequences 函数对训练集和测试集中的序列进行填充,使它们具有相同的长度。

x_train = tf.keras.preprocessing.sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = tf.keras.preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)

④定义了一个序列模型,模型包含了嵌入层(Embedding)、全局平均池化层(GlobalAveragePooling1D)和一个具有 sigmoid 激活函数的全连接层(Dense)。模型使用二元交叉熵作为损失函数,使用 Adam 优化器进行参数优化。

model = Sequential()
model.add(Embedding(vocab_size, 16))
model.add(GlobalAveragePooling1D())
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

⑤使用训练集对模型进行训练,并指定了训练的轮数、批次大小以及在测试集上验证模型。

model.fit(x_train, y_train, epochs=10, batch_size=128, validation_data=(x_test, y_test))

⑥使用测试集对训练好的模型进行评估,计算模型在测试集上的损失和准确率,并将准确率打印出来。

loss, accuracy = model.evaluate(x_test, y_test)
print('Test accuracy:', accuracy)

完整代码如下:

import tensorflow as tf
from keras.datasets import imdb
from keras.models import Sequential
from keras.layers import Dense, Embedding, GlobalAveragePooling1D
# 加载 IMDB 电影评论数据集
vocab_size = 10000
maxlen = 256
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=vocab_size)
x_train = tf.keras.preprocessing.sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = tf.keras.preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)
# 定义模型
model = Sequential()
model.add(Embedding(vocab_size, 16))
model.add(GlobalAveragePooling1D())
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=128, validation_data=(x_test, y_test))
# 在测试集上评估模型
loss, accuracy = model.evaluate(x_test, y_test)
print('Test accuracy:', accuracy)

模型训练

使用 Adam 优化器和二元交叉熵损失函数进行模型训练,并以准确率作为评估指标,共训练10轮,训练过程如图9所示。

图9 IMDB电影评论情感分析训练过程

训练出的电影评论情感分析模型在测试集上的准确率和损失随训练的轮次的变化如图10所示。

图10情感分析 准确率

具体数据如表5所示。

表5 情感分析

由结果可以知道,我们训练出来的电影评论情感分析模型,其数据的拟合效果和测试的泛化效果都比较理想。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD利用嘉立创的封装

1.首先,打开元件库,搜索元器件 2.点开它的封装(符号) 3.文件-->导出-->Altium Designer 4.然后在AD上面打开这个文件 5.将其复制,粘贴放到PCB库中 6.然后在原理图中的封装管理器中,添加封装&#xf…

ODrive引脚排列

对引脚配置的更改仅在odrv0.save_configuration()和odrv0.reboot()之后生效 如果 GPIO 设置为不支持的模式,它将保持未初始化状态。 当将 GPIO 设置为特殊用途模式(例如GpioMode.UART_A)时,您还必须启用相应的功能(例如<odrv>.config.enable_uart_a)。 数字模式是一…

如何创新玩转元服务开发-趋势、分类与我们实践的方向!

一、软件发展分类与元服务&#xff08;一&#xff09;软件分类发展简要分析 软件总体分为系统软件和应用软件两大类。用户、设备、操作系统系统软件、流量入口、应用形态应用软件关系及发展见下表—— 从表中分析得知&#xff0c;从互联网时期到移动互联网主导的发展&#xff…

前端开发两年半,我裸辞了

☀️ 前言 一晃两年半过去了&#xff0c;我离开了我的第一份前端开发工作&#xff0c;当你看到这篇文章&#xff0c;我已经离职两个月了&#xff0c;目前仍在艰难求职中&#xff0c;想记录分享一下我的经历&#xff0c;感兴趣的可以继续往下看&#xff0c;希望能给大家一些启示…

学Python能做哪些副业?我一般不告诉别人!建议存好

前两天一个朋友找到我吐槽&#xff0c;说工资一发交完房租水电&#xff0c;啥也不剩&#xff0c;搞不懂朋友圈里那些天天吃喝玩乐的同龄人钱都是哪来的&#xff1f;确实如此&#xff0c;刚毕业的大学生工资起薪都很低&#xff0c;在高消费、高租金的城市&#xff0c;别说存钱&a…

C++继承机制下析构和构造函数的执行分析

析构函数在下边3种情况时被调用&#xff1a; 对象生命周期结束&#xff0c;被销毁时&#xff1b;delete指向对象的指针时&#xff0c;或delete指向对象的基类类型指针&#xff0c;而其基类虚构函数是虚函数时&#xff1b;对象i是对象o的成员&#xff0c;o的析构函数被调用时&a…

SRM 供应商管理系统都有哪些模块?

3k字干货&#xff01; SRM必备6大模块&#xff1a;供应商管理、采购需求管理、采购寻源、采购履约、交付结算。下面针对环节中的核心场景进行讲解。 1、供应商全生命周期管理 过去&#xff0c;企业业务简单&#xff0c;对接供应商数量少&#xff0c;需求供给匹配、价格合适就…

如何使用KoodousFinder搜索和分析Android应用程序中的安全威胁

关于KoodousFinder KoodousFinder是一款功能强大的Android应用程序安全工具,在该工具的帮助下,广大研究人员可以轻松对目标Android应用程序执行安全研究和分析任务,并寻找出目标应用程序中潜在的安全威胁和安全漏洞。 账号和API密钥 在使用该工具之前,我们首选需要访问该…

适合初创企业租赁的办公模式-共享办公室

随着共享经济的兴起&#xff0c;共享办公室已经成为越来越多人的选择。共享办公室提供了一个灵活、高效、舒适的工作环境&#xff0c;能够帮助个人和团队提高工作效率和创造力。下面我将从三个角度来介绍共享办公室。 共享办公室的优势 首先&#xff0c;共享办公室具有成本效益…

合肥先进光源束测步进电机及驱动器的选择

大规模电机控制的方案选择-电机和驱动器篇 在上面文档的系统里选择的是免电池带绝对值编码器的步进伺服电机方案&#xff0c;现在有些场合只是普通的步进电机就好了&#xff0c;同样从电机控制的龙头企业鸣志的产品中选择&#xff0c;依然选择现成熟的ethercat总线技术的驱动器…

深度学习模型在图像识别中的应用:CIFAR-10数据集实践与准确率分析

文章目录 前言导入所需的库忽略证书验证下载并加载 CIFAR-10 数据集数据预处理构建深度学习模型编译模型模型训练模型评估进行图片识别测试图片运行效果完整代码完结 前言 深度学习模型在图像识别领域的应用越来越广泛。通过对图像数据进行学习和训练&#xff0c;这些模型可以自…

ChatGPT独家汇总:发现最优秀的人工智能对话体验

欢迎来到我们的 ChatGPT 镜像网站汇总博客&#xff01;在这个令人激动的人工智能时代&#xff0c;ChatGPT 作为一款顶尖的语言模型&#xff0c;已经引起了全球范围内的热议。但是&#xff0c;您是否曾经为了找到最佳的 ChatGPT 使用体验而苦苦搜寻&#xff1f;别担心&#xff0…

(15)第一人称视角视频

文章目录 前言 15.1 推荐的零件 15.2 连接图示 15.3 通过任务计划器最小化OSD设置 15.4 集成式OSD 15.5 用户视频/博客 15.6 与FPV飞行特别相关的安全警告 15.7 政府/地方法规 前言 第一人称视角在飞行时为你提供了真正的飞行员视角&#xff0c;它将视频摄像机和发射器…

梯度下降求函数极小值

梯度下降求函数极小值 Himmelblau 函数表达式 ∫ ( x , y ) ( x 2 y − 11 ) 2 ( x y 2 − 7 ) 2 \int(x,y)(x^{2}y-11)^{2} (xy^{2}-7)^{2} ∫(x,y)(x2y−11)2(xy2−7)2 Himmelblau.py 绘制 import numpy as np import matplotlib.pyplot as plt# from mpl_toolkits.mp…

Redis中的缓存雪崩、击穿、穿透的原因以及解决办法

缓存雪崩、击穿、穿透一旦发生&#xff0c;会导致大量的请求积压到数据库层。如果请求的并发量很大&#xff0c;就会导致数据库宕机或是故障&#xff0c;这就是很严重的生产事故了。 俗话说&#xff0c;知己知彼&#xff0c;百战不殆。了解了问题的成因&#xff0c;我们就能够…

PentestGPT:一款由ChatGPT驱动的强大渗透测试工具

关于PentestGPT PentestGPT是一款由ChatGPT驱动的强大渗透测试工具,该工具旨在实现渗透测试任务执行过程的自动化。该工具基于ChatGPT实现其功能,允许广大研究人员以交互式的方式使用,并指导渗透测试人员进行渗透测试任务的总体进度调控并执行指定操作。 除此之外,Pentes…

[学习笔记]python的web开发全家桶2(ing)

初识网站 默认编写的静态的效果动态&#xff1a;需要用到Web框架的功能。 对于目前的我们来看&#xff0c;什么可以做数据存储&#xff1a;txt文件excel文件专业的软件&#xff1a;数据库管理系统 MySQL/Oracle/SQLServer/DB2/Access... 7 MysQL 7.1 安装MySQL MySQL&…

#10042. 「一本通 2.1 练习 8」收集雪花

题目描述 不同的雪花往往有不同的形状。在北方的同学想将雪花收集起来&#xff0c;作为礼物送给在南方的同学们。一共有 n 个时刻&#xff0c;给出每个时刻下落雪花的形状&#xff0c;用不同的整数表示不同的形状。在收集的过程中&#xff0c;同学们不希望有重复的雪花。你可以…

Tomcat【redis-session共享】

目录 1、创建虚拟主机&#xff08;01-02&#xff09;相同【192.168.200.121、192.168.200.122】 2、LB配置文件【192.168.200.120】 3、tomcat节点配置TomcatClusterRedisSessionManager方式实现redis共享&#xff08;01-02&#xff09;相同 4、安装redis、配置【192.168.20…

智慧餐饮未来:点赋科技智能饮品机器人带来的变革

随着科技的不断发展&#xff0c;智慧餐饮作为餐饮行业的新兴概念已经不再只是简单的餐厅智能化&#xff0c;而是包括了数字化、智能化和现代化等多个方面。点赋科技智能饮品机器人是智慧餐饮中最具代表性的之一&#xff0c;它的发展将引领智慧餐饮行业的未来方向。 首先&#x…