文本分类--NLP-AI(八)

文本分类任务

  • 任务简介
    • 1.字符数值化
      • 方式1
      • 方式2
    • 2.池化(pooling)
    • 3.全连接层
    • 4.归一化函数(Sigmoid)
    • 5.总结
  • 从任务抽象新的技术点
    • Embedding层
    • 池化层

任务简介

任务介绍: 字符串分类,根据一句话的含妈量,区分为两类,一类为正向,一类为负向

举例:

  1. 我的妈呀?
  2. 你妈妈的妈妈叫什么?

根据含有两个3妈以上,即含妈量超标,判定为负向。即1正,2负

目标: 所以我们需要建模,即建立一个f(x),将我们的含妈量语句输入后,输出1为正,输出0即为负。

1.字符数值化

释义: 我们知道,模型是进行数学运算,输入的内容一定要是数字,不能是直接的字符,所以我们先要把每个字转为字符。

方式1

问: 直观方式,我 -> 1, 你 -> 2, 他 -> 3 …. 妈 -> 26… 是否合理?
答: 问就是不合理。如果把汉字字符简单的映射为一个个的数字,那么这些数字就会存在一些明细的规律,比如:1+2 =3;那是不是意味着,我+你就等于他;这样很容易让模型找规律时,会被影响到。

方式2

方案: 将每一个字符转化为同维度的向量
例如:

我 - > [0.32618175 0.20962898 0.43550067 0.07120884 0.58215387]
你 - > [0.21841921 0.97431001 0.43676452 0.77925024 0.7307891 ]

他 -> [0.72847746 0.72803551 0.43888069 0.09266955 0.65148562]

详细释义:

1.我们将每个字符随机生成一个向量,这样就避免了字符之间存在简单的加减乘除关系
2.我们将生成的向量也加入到模型的训练中,这就要求生成的维度必须相同,这样就可以使得语义相同的字:我、吾;其向量值会相近

输入:我的妈呀 --> 4x5的矩阵
这里我们输入模型的就不是简单的一个字符的数字,而是一串字符所代表的向量:

[[0.32618175 0.20962898 0.43550067 0.07120884 0.58215387]
[0.21841921 0.97431001 0.43676452 0.77925024 0.7307891 ]
[0.95035602 0.45280039 0.06675379 0.72238734 0.02466642]
[0.86751814 0.97157839 0.0127658 0.98910503 0.92606296]]

矩阵形状 = 文本长度 x 向量长度

2.池化(pooling)

问题点: 我们最后要求模型输出的是一个数字,这个数字接近1或者0来判断,语句的含妈量;但是我们看到了上面的输入,一段话输入,这个矩阵的行数我们不好控制,并且我们如何将维度降低呢?

解决方案: 所以我们首先将输入进行降维,也就是池化操作,通过池化操作将矩阵处理为向量

示例:
在这里插入图片描述
操作释义:

1.我们将输入的语句转为矩阵后,我们这些向量相加,得到求和后的向量
2.我们将求和的向量的每列的数,根据相加向量的个数求平均,得到一个1*向量长度的矩阵,也就是向量。
上述过程就完成了降维,可以理解为对一句话的含义的压缩。

3.全连接层

目的: 很简单,根据第二部分,我们将矩阵转为向量,那么我们需要将向量转为数字输出,即通过我们线性层(全连接层)来处理。

方案:

1.这里我们采用最简单的线性层公式:y = wx +b
2.这里我们w的矩阵形状和前面的向量有关系,即1
向量长度,b要能够和运算的结果相加,那么形状肯定也是1*向量长度。

举例:
注意:这里的x在实际中,potroch为将其转置,下图可以看到:
在这里插入图片描述

4.归一化函数(Sigmoid)

目的: 归一化函数也是激活函数,这里选择Sigmoid的目的,很简单,即将输出的值映射到[0,1]范围之间,我们想要的输出就是,靠近1就是正向,靠近0就是负向,它可以搬到

举例:
x = 3 归一化后值: σ(x) = 0.9526

函数图像:
在这里插入图片描述

5.总结

1.字符转成向量,向量构成输入的矩阵
2.输入矩阵进行池化,得到向量
3.经过全连接层y=w*x +b 得到实数
4.实数经过归一化sigmoid得到(0,1)之间的数
其中可以进行训练的为红色部分

从任务抽象新的技术点

Embedding层

释义: 上述分类任务中,将字符转化为向量的过程,我们叫Embedding。
举例: 这一层的作用很简单,就像你喊老外给你干活,用中文,他不懂;必须的先翻译成英文告诉他;embedding就相当于翻译给计算机听。

注意:

1.embedding层一把只有深度学习任务中才有,是深度学习的一个特征
2.Embedding矩阵是可训练的参数,一般会在模型构建时随机初始化,可以使用预训练的词向量来做初始化,此时也可以选择不训练Embedding层中的参数
比如:在当前火热的大语言模型中,embedding层与模型层就是配套使用的,因为embedding加入到模型的训练中,蕴含了一定的规律在里面。
3.多个语种和符号可以放到一个词表中,也就是一个embedding层可以涵盖多种字符。

池化层

释义: 上述的分类任务中,将一句话的形成的张量,转化为一个向量的过程,就是我们说的池化。池化的目的是,降维,缩小模型,并且提取特征。

下面我们用视图领域的图像池化来做示例讲解
在这里插入图片描述
过程:

上述左侧4x4的数字,是将一张图片Embedding为数字得到的
1.我们做一个2*2的正方形,将每一个正方形内最大的数字,提取为特征数字
2.全部提取完成后,即得到一个新的2x2的矩阵

好处:

  1. 可以降低后续的网络层输入维度
    2.减小了模型的大小,也就是参数量,因为输入的参数矩阵变小了,和其相乘的后续矩阵的维度也就变小了
    3.提高了模型的计算速度,因为参数变少了
    4.提高了特征的鲁棒性,防止过拟合,因为我们选取最大值,那么其他的参数只要在最大值一下,对我们整体的计算影响都会比较小;如果是平均值,同样如此

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

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

相关文章

伊利25届校招24年社招网申入职北森测评题库全攻略!一文通!

伊利校招社招网申测评全攻略🚀 亲爱的求职小伙伴们,今天我要分享一份伊利校招社招网申测评的全攻略,希望能助你们一臂之力! 测评概览 伊利的网申测评分为六个部分,总共约60分钟的答题时间,涵盖了言语逻辑、…

【微信小程序开发】如何定义公共的js函数,其它页面可以调用

在微信小程序开发中,可以通过以下步骤定义和使用公共的 JS 函数,使得其它页面可以调用: 1. 创建一个公共的 JS 文件:在项目的 utils 目录下创建一个 JS 文件,例如 utils/util.js。 2. 定义公共函数:在 uti…

在word中删除endnote参考文献之间的空行

如图,在References中,每个文献之间都有空行。不建议手动删除。打开Endnote。 打开style manager 删除layout中的换行符。保存,在word中更新参考文献即可。

Python和C++全球导航卫星系统和机器人姿态触觉感知二分图算法

🎯要点 🎯马尔可夫随机场网格推理学习 | 🎯二维伊辛模型四连网格模型推理 | 🎯统计物理学模型扰动与最大乘积二值反卷积 | 🎯受限玻尔兹曼机扰动和最大乘积采样 | 🎯视觉概率生成模型测试图像 &#x1f3…

从课本上面开始学习的51单片机究竟有什么特点,在现在的市场上还有应用吗?

引言 51单片机,作为一种经典的微控制器,被广泛应用于各种嵌入式系统中。尽管如今ARM架构的高性能低成本单片机在市场上占据主导地位,但51单片机凭借其独特的优势依然在某些领域保持着应用价值。本文将深入探讨51单片机的特点、架构、应用以及…

数学建模·模糊评价法

模糊评价法 一种解决评价问题或者得出最佳方案的方法 主观性仍比较强 具体定义 三集:因素集,评语集和权重集,通过模拟矩阵的处理得到最合理的评语 具体步骤 因素集 因素集的确定不难,难在对分级评价时,对因素集的分级…

LeetCode --- 134双周赛

题目 3206. 交替组 I 3207. 与敌人战斗后的最大分数 3208. 交替组 II 3209. 子数组按位与值为 K 的数目 一、交替组 I & II 题目中问环形数组中交替组的长度为3的子数组个数,主要的问题在于它是环形的,我们要考虑首尾相接的情况,如何…

leetcode 404. 左叶子之和

给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24示例 2: 输入: root [1] 输出: 0提示: 节点…

Linux 下使用Docker安装redis

redis: 是一个高性能的,键值对的,将数据存储到内存中的非关系型数据库(nosql数据库 not only sql) 高性能:数据存在内存中,直接访问内存 键值对:新闻id(键&#xff09…

c++数据结构--构造无向图(算法6.1),深度和广度遍历

实验内容: 实现教材算法6.2利用邻接矩阵构造无向图的算法,提供从邻接矩阵获得邻接表的功能,在此基础上进行深度优先遍历和广度优先遍历。 实验步骤: (1)按照实验要求编写代码,构造无向图。 …

浅谈数学模型在UGC/AIGC游戏数值调参中的应用(AI智能体)

浅谈数学模型在UGC/AIGC游戏数值调参中的应用 ygluu 卢益贵 关键词:UGC、AIGC、AI智能体、大模型、数学模型、游戏数值调参、游戏策划 一、前言 在策划大大群提出《游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发》讨论之后就已完…

Hi3861 OpenHarmony嵌入式应用入门--HTTPD

httpd 是 Apache HTTP Server 的守护进程名称,Apache HTTP Server 是一种广泛使用的开源网页服务器软件。 本项目是从LwIP中抽取的HTTP服务器代码; Hi3861 SDK中已经包含了一份预编译的lwip,但没有开启HTTP服务器功能(静态库无法…

NiFi1.25版本HTTPS模式下RestAPI使用入门

Apache NiFi 是一个强大的数据流处理工具,通过其 REST API,用户可以远程管理和控制数据流处理器。本文将介绍如何使用 NiFi 1.25 版本HTTPS 模式下Rest API,包括获取 token、获取组件信息、启动和停止组件、以及更改组件的调度频率等操作。 …

Linux vim文本编辑器

Vim(Vi IMproved)是一个高度可配置的文本编辑器,它是Vi编辑器的增强版本,广泛用于程序开发和系统管理。Vim不仅保留了Vi的所有功能,还增加了许多新特性,使其更加强大和灵活。 Vim操作模式 普通模式&#xf…

科普文:微服务之Apollo配置中心

1. 基本概念 由于Apollo 概念比较多,刚开始使用比较复杂,最好先过一遍概念再动手实践尝试使用。 1.1、背景 随着程序功能的日益复杂,程序的配置日益增多,各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来…

026-GeoGebra中级篇-曲线(2)_极坐标曲线、参数化曲面、分段函数曲线、分形曲线、复数平面上的曲线、随机曲线、非线性动力系统的轨迹

除了参数曲线、隐式曲线和显式曲线之外,还有其他类型的曲线表示方法。本篇主要概述一下极坐标曲线、参数化曲面、分段函数曲线、分形曲线、复数平面上的曲线、随机曲线、和非线性动力系统的轨迹,可能没有那么深,可以先了解下。 目录 1. 极坐…

「网络通信」HTTP 协议

HTTP 🍉简介🍉抓包工具🍉报文结构🍌请求🍌响应🍌URL🥝URL encode 🍌方法🍌报文字段🥝Host🥝Content-Length & Content-Type🥝User…

运动控制问题

第一类运动控制问题是指被控制对象的空间位置或轨迹运动发生改变的运动控制系统的控制问题。这类运动控制问题在理论上完全遵循牛顿力学定律和运动学原则。 1、运动控制问题 第1类运动控制的核心是研究被控对象的运动轨迹 、分析运动路径、运动速度、加速度与时间的关系,常用…

记一次docker容器安装MySQL,navicat无法连接报错(10060错误)

今天在云服务器上使用docker部署mysql 8.0.11时,遇到了一个诡异的问题,在云服务器的docker容器内可以连接上mysql,然而在自己电脑上连接mysql时报错:Can‘t connect to MySQL server on localhost (10060) 下面是网上搜寻的几种可…

SpringMVC框架--个人笔记步骤总结

一、步骤 1.创建工程 2.加入springmvc依赖--pom.xml <!--springmvc依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.10.RELEASE</version> </depend…