昇思25天学习打卡营第24天|RNN实现情感分类

在这里插入图片描述

RNN实现情感分类学习总结

概述

情感分类是自然语言处理领域的重要任务,主要用于识别文本中表达的情绪。本文使用MindSpore框架实现基于RNN的情感分类模型,示例包括:

  • 输入: “This film is terrible” -> 标签: Negative
  • 输入: “This film is great” -> 标签: Positive

数据准备

本节使用经典的IMDB影评数据集,该数据集包含正面和负面评论。数据示例包括:

ReviewLabel
“Quitting” may be as much about exiting…Negative
This movie is amazing because…Positive

数据下载模块

创建数据下载模块,使用requests库进行下载,并通过tqdm库可视化下载进度。下载后,使用tarfile库解压数据集,提取出训练和测试数据。

加载IMDB数据集

数据集解压后,分别读取训练和测试数据,并使用mindspore.datasetGeneratordataset接口加载。这一过程包括构建数据和标签的迭代对象。

加载预训练词向量

使用GloVe词向量进行单词编码,构建词表和对应的词向量矩阵。通过nn.Embedding层加载这些词向量,使模型能够对输入文本进行有效的语义表示。

数据集预处理

对加载的IMDB数据集进行预处理,包括:

  • 将Token转换为索引ID。
  • 统一文本序列长度,使用<pad>进行填充。

使用mindspore.dataset提供的接口实现这些操作,并将处理好的数据集分为训练和验证集。

模型构建

设计用于情感分类的RNN模型结构:

  • Embedding层:使用加载的GloVe词向量。
  • RNN层:采用LSTM作为特征提取器,以避免梯度消失问题。
  • Dense层:将提取的特征映射到二分类输出。

损失函数与优化器

选择nn.BCEWithLogitsLoss作为损失函数,针对二分类问题进行优化。

训练逻辑

训练过程中包括以下步骤:

  1. 读取Batch数据。
  2. 进行正向传播和反向传播,更新模型参数。
  3. 记录损失值。

使用tqdm库可视化训练进度。

评估指标与逻辑

对模型进行评估,通过预测结果与真实标签对比,计算准确率。实现的评估逻辑包括:

  1. 读取Batch数据。
  2. 正向计算预测结果。
  3. 计算准确率。

同样使用tqdm进行可视化。

模型训练与保存

设置训练轮数为5轮,并保存最佳模型。训练过程中维护best_valid_loss以保存损失值最低的模型。

模型加载与测试

训练完成后,通过MindSpore的Checkpoint接口加载最佳模型进行测试。这一过程确保模型能够有效地进行情感分类。

自定义输入测试

设计预测函数,实现输入评价的情感分类。步骤包括:

  1. 分词处理输入句子。
  2. 查找词表获取索引ID。
  3. 转换为Tensor,输入模型进行预测。
  4. 输出预测结果。

通过以上步骤,RNN模型实现了准确的情感分类,展示了自然语言处理中的应用潜力。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞牛爬虫FlyBullSpider 一款简单方便强大的爬虫,限时免费 特别适合小白!用它爬下Boss的2024年7月底Java岗位,分析一下程序员就业市场行情

一、下载安装FlyBullSpider 暂时支持Window,现在只在Win11上做过测试 1 百度 点击百度网盘 下载 链接&#xff1a;https://pan.baidu.com/s/1gSLKYuezaZgd8iqrXhk8Kg 提取码&#xff1a;Fly6 2 csdn https://download.csdn.net/download/fencer911/89584687 二、体验初…

Linux shell编程学习笔记66:ping命令 超详细的选项说明

0 前言 网络信息是电脑网络信息安全检查中的一块重要内容&#xff0c;Linux和基于Linux的操作系统&#xff0c;提供了很多的网络命令&#xff0c;今天我们研究最常用的ping命令。 1 ping命令 的功能、格式和选项说明 1.1 ping命令 的功能 简单来说&#xff0c; ping 命令 会…

Linus: vim编辑器的使用,快捷键及配置等周边知识详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 vim的安装创建新用户 adduser 用户名Linus是个多用户的操作系统是否有创建用户的权限查看当前用户身份:whoami** 怎么创建设置密码passwdsudo提权(sudo输入的是用户…

日记审计遵守合规安全要求

一、什么是日志审计系统 日记审计系统是一种用于记录、监视和分析系统日志的工具或系统。它主要用于帮助组织实时监控与分析各种事件和行为的日志记录&#xff0c;以便检测潜在的安全威胁&#xff0c;了解系统性能和进行故障排除。日志审计系统通常能够收集、存储和分析来自各…

.env.local 配置本地环境变量 用于团队开发

.env.local 用途&#xff1a;.env.local 通常用于存储本地开发环境中的环境变量。这些变量可能包括敏感数据或特定于单个开发者的设置&#xff0c;不应该被提交到版本控制系统中。优先级&#xff1a;在大多数框架中&#xff0c;.env.local 文件中的变量会覆盖其他 .env 文件中…

vite环境下使用bootstrap

环境 nodejs 18 pnpm 初始化 pnpm init pnpm add -D vite --registry http://registry.npm.taobao.org pnpm add bootstrap popperjs/core --registry http://registry.npm.taobao.org pnpm add -D sass --registry http://registry.npm.taobao.org新建vite.config.js cons…

opencv 按键开启连续截图,并加载提示图片

背景图小图 键盘监听使用的是pynput 库 保存图片时使用了年月日时分秒命名 原图&#xff1a; from pynput import keyboard import cv2 import time# 键盘监听 def on_press(key):global jieglobal guanif key.char a:jie Trueelif key.char d:jie Falseelif key.char…

SpringBoot启动命令过长

Error running DromaraApplication: Command line is too long. Shorten command line for DromaraApplication or also for Spring Boot default configuration?

LeetCode 热题 HOT 100 (010/100)【宇宙最简单版】

【链表】No. 0206 反转链表 【简单】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xf…

轻松学EntityFramework Core--模型创建

一、使用代码优先&#xff08;Code-First&#xff09;创建模型 Code-First 方法是 EF Core 提供的一种用于定义模型的方式&#xff0c;它允许开发人员通过编写 C# 类来定义数据库模式&#xff0c;再通过迁移命令生成数据库表。下面我们来一起看一下代码优先如何使用。 1.1、创…

问题记录-SpringBoot 2.7.2 整合 Swagger 报错

详细报错如下 报错背景&#xff0c;我将springboot从2.3.3升级到了2.7.2&#xff0c;报了下面的错误&#xff1a; org.springframework.context.ApplicationContextException: Failed to start bean documentationPluginsBootstrapper; nested exception is java.lang.NullPo…

MySQL练手 --- 1789. 员工的直属部门

题目链接&#xff1a;1789. 员工的直属部门 这道题虽然是个简单题&#xff0c;但是"坑"倒是不少&#xff0c;所以记录一下 思路&#xff1a; 题目要干&#xff1a; 一个员工可以属于多个部门。当一个员工加入超过一个部门的时候&#xff0c;他需要决定哪个部门是…

导航网站WP主题/WP黑格导航主题BlackCandy-简约酷黑色高逼格+焕然一新的UI设计

源码简介&#xff1a; 导航网站WP主题-WP黑格导航主题BlackCandy&#xff0c;它有着简约酷黑色高逼格&#xff0c;而且有焕然一新的UI设计。它是一个简约漂亮的 WordPress 自媒体主题。黑格网址导航主题&#xff0c;自适应电脑端和手机端。 BlackCandy-V2.0这次全新升级了&am…

mac M1安装Roop教程及所遇到的问题

1.安装miniconda&#xff0c;下载地址&#xff1a; 按 Python 版本划分的最新 Miniconda 安装程序链接&#xff1a;https://docs.anaconda.com/miniconda/miniconda-other-installer-links/ 下载后直接默认安装即可。 我用的是&#xff1a;Python3.10对应的Miniconda 2.下载…

哪个邮箱最安全最好用啊

企业邮箱安全至关重要&#xff0c;需保护隐私、防财务损失、维护通信安全、避免纠纷&#xff0c;并维持业务连续性。哪个企业邮箱最安全好用呢&#xff1f;Zoho企业邮箱&#xff0c;采用加密技术、反垃圾邮件和病毒保护&#xff0c;支持多因素认证&#xff0c;确保数据安全合规…

nodejs - express 学习笔记

express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架&#xff0c;官方网址&#xff1a;https://www.expressjs. com.cn/ 简单来说&#xff0c;express 是一个封装好的工具包&#xff0c;封装了很多功能&#xff0c;便于我们开发 WEB 应用&#xff08;HTTP 服务&am…

EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频

EasyMedia转码rtsp视频流flv格式&#xff0c;hls格式 H5页面播放flv流视频 文章最后有源码地址 解决海康视频播放视频流&#xff0c;先转码后自定义页面播放flv视频流 先看效果&#xff0c;1&#xff0c;EasyMedia自带的页面&#xff0c;这个页面二次开发改动页面比较麻烦 …

秋叶大神中文版Stable Diffusion下载安装使用教程

Stable Diffusion是什么&#xff1f; Stable Diffusion是一款开源的AI绘画软件&#xff0c;于2022年发布&#xff0c;由CompVis、Stability AI和LAION的研究人员创建。该软件具有出色的图像生成功能&#xff0c;使用户能够从头开始绘制作品&#xff0c;也可以使用现有的图像进…

Sentinel限流规则详解

上一期教程讲解了 Sentinel 的快速入门&#xff1a;Sentinel快速入门&#xff0c;这一期主要讲述 Sentinel 的限流规则 簇点链路 簇点链路就是项目内的调用链路&#xff08;Controller -> Service -> Mapper&#xff09;&#xff0c;链路中被监控的每个接口就是一个资源…

Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署

目录 环境准备 导入项目包 配置jenkins 构建项目 配置项目上线 修改项目代码测试 环境准备 本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830 首先在node01主机中操作&#xff0c;本次操作需要java8的版本&#xff0c;将之前安装的java17卸…