昇思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.mzph.cn/news/876038.shtml

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

相关文章

UE5.4内容示例(1)- 学习笔记

https://www.unrealengine.com/marketplace/zh-CN/product/content-examples 《内容示例》是学习UE5的基础示例&#xff0c;可以用此示例熟悉一遍UE5的功能 模型与材质部分 StaticMeshes FBX_Import_Options Material_Advanced Material_Decals Material_Instances Material_N…

MySQL零散拾遗(八)--- MySQL正则表达式

MySQL 支持使用正则表达式进行模式匹配&#xff0c;这对于复杂的字符串处理非常有用。MySQL 中的正则表达式可以通过 REGEXP 或 RLIKE 运算符来实现。下面详细介绍 MySQL 中正则表达式的语法和一些常用的正则表达式模式。 正则表达式基础 锚点 ^: 匹配字符串开头$: 匹配字符串…

Python 高阶语法

前言&#xff1a; 我们通过上篇文章学习了Python的基础语法&#xff0c;接下来我们来学习Python的高阶语法 1.初识对象 在Python中我们可以做到和生活中那样&#xff0c;设计表格、生产表格、填写表格的组织形式的 面向对象包含 3 大主要特性&#xff1a;  封装  继承 …

Zilliz 推出 Spark Connector:简化非结构化数据处理流程

随着人工智能&#xff08;AI&#xff09;和深度学习&#xff08;Deep Learning&#xff09;技术的高速发展&#xff0c;使用神经网络模型将数据转化为 Embedding 向量 已成为处理非结构化数据并实现语义检索的首选方法&#xff0c;广泛应用于搜索、推荐系统等 AI 业务中。 以生…

架构建模-系统架构师(三十二)

1、DNS配置文件是&#xff08;&#xff09;&#xff0c;它包含了主机的域名搜索顺序和DNS服务器地址。 A /etc/hostname B /dev/host.conf C /etc/resolv.conf D /dev/name.conf 解析&#xff1a; 保存在etc/reolv.conf 2、信息隐蔽式开发整体程序时使用的法则&#xff0c…

C语言 定义结构体变量并计算该日在本年中是第几天

定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题&#xff08;即将闰年情况包含在内&#xff09;。 #include <stdio.h>typedef struct {int year;int month;int day; } Date;int isLeapYear(int year) {if ((year % 4 0 && year %…

力扣202.快乐数

202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 主要是用到了鸽巢原理&#xff0c;最后他们一定会重合&#xff0c;我们只需要判断类似&#xff0c;链表的成环相遇的时候是不是1就行了 class Solution { public:int bitsum(int n){int sum 0;while (n){int a 0;a n …

用护眼灯还需要开灯吗?护眼灯行业三大套路迷局揭秘

用护眼灯还需要开灯吗&#xff1f;在使用护眼台灯时&#xff0c;同时开启室内的主照明十分必要。如果关闭其他灯具&#xff0c;仅保留护眼台灯&#xff0c;那么只有台灯周围的小片区域能够被照亮&#xff0c;而房间的其他部分则处于相对昏暗的状态。这种明显的光线差异会造成视…

freertos的学习cubemx版

HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则&#xff0c; 变量名 &#xff1a;类型前缀&#xff0c; c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…

Java常见的面试二

1、普通类和抽象类有那些区别 普通类中不能有抽象方法&#xff0c;抽象类中可以有抽象方法普通类可以直接实例化&#xff0c;抽象类不能直接实例化 2、抽象类能够使用final修饰吗 不能&#xff0c;抽象类是由子类继承的&#xff0c;但是final修饰的类不能被继承。两者矛盾所以…

《书生大模型实战营第3期》入门岛 学习笔记与作业:Python 基础知识

文章大纲 Python 简介1 安装Python1.1 什么是conda&#xff1f;1.1.1 功能与作用&#xff1a;1.1.2 常用命令&#xff1a;1.1.3 适用性&#xff1a; 1.2 Python安装与学习环境准备1.2.1 下载miniconda1.2.2 安装miniconda1.2.3 创建一个python练习专属的conda虚拟环境 2: Pytho…

【制作100个unity游戏之31】用unity制作一个爬坡2d赛车小游戏

最终效果 【制作100个unity游戏之31】用unity制作一个爬坡2d赛车小游戏 前言 今天用unity制作一个简单的爬坡2d赛车小游戏 素材 https://www.spriters-resource.com/mobile/hillclimbracing/ 拼装车素材 车身添加碰撞体&#xff0c;摩檫力0 轮胎添加碰撞体和刚体&#xff0…

【VSCode实战】Golang无法跳转问题竟是如此简单

上一讲【VSCode实战】Go插件依赖无法安装 – 经云的清净小站 (skycreator.top)&#xff0c;开头说到了在VSCode中Golang无法跳转的问题&#xff0c;但文章的最后也没给出解决方案&#xff0c;只解决了安装Go插件的依赖问题。 解决了插件依赖问题&#xff0c;无法跳转的问题也离…

苍穹外卖 02

1.新增员工 controller&#xff1a; EmployeeServiceImpl&#xff1a; 实现controller里的save方法&#xff0c;要调用到mapper层的insert方法 因为员工登录成功后&#xff0c;会将id封装进jwt令牌,并响应给前端 所以后续请求中前端会携带jwt令牌。通过令牌可解析出被封装的…

C++:平衡搜索二叉树(AVL)

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《C&#xff1a;平衡搜索二叉树&#xff08;AVL&#xff09;》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 文章目录 :maple_leaf:AVL树:maple_leaf:…

速盾:分享一些防御 DDoS 攻击的措施

DDoS&#xff08;分布式拒绝服务&#xff09;攻击是指攻击者通过操纵大量的计算机或网络设备&#xff0c;向特定的目标发起大规模的网络流量&#xff0c;以消耗目标网络资源&#xff0c;造成网络服务不可用的攻击行为。为了保护网络免受DDoS攻击的影响&#xff0c;组织和个人可…

大学计算机专业主要课程及概要介绍

大学计算机专业主要课程及概要介绍 大学计算机专业是一门涵盖广泛领域的学科&#xff0c;旨在培养学生在计算机科学与技术方面的理论知识与实践能力。该专业课程设置丰富多样&#xff0c;涵盖了从基础理论到高级应用的多个方面。以下是一些主要的课程及其概要介绍&#xff1a;…

Python爬虫技术 第15节 CSS选择器基础

在使用Python进行网页爬取时&#xff0c;CSS选择器是提取HTML文档中特定元素的常用方法之一。CSS选择器基于HTML元素的结构和属性来定位和选择页面中的元素。结合Python中的BeautifulSoup库或PyQuery库等&#xff0c;可以非常高效地解析和筛选出你想要的数据。 CSS选择器基础 …

我的深度学习命令

安装依赖 pip install -r requirements.txt --index-url https://pypi.tuna.tsinghua.edu.cn/simple conda 环境: conda search pillow 查找可用版本 (或者pip search Pillow)查询当下虚拟环境 …