【自然语言处理】【深度学习】文本向量化、one-hot、word embedding编码

news2024/12/29 13:39:32

因为文本不能够直接被模型计算,所以需要将其转化为向量
把文本转化为向量有两种方式:

  • 转化为one-hot编码
  • 转化为word embedding

一、one-hot 编码

在one-hot编码中,每一个token使用一个长度为N的向量表示,N表示词典的数量。
即:把待处理的文档进行分词或者是N-gram处理,然后进行去重得到词典。

  • 例:假设我们有一个文档:“深度学习”,那么进行one-hot处理后得到的结果如下
tokenone-hot encoding
1000
0100
0010
0001

弊端:我们有1万个词的时候,编码很长,而且只有一个位置的1有效。使用稀疏向量表示文本,占用空间比较大。

二、word embedding编码

word embedding是深度学习中表示文本常用的一种方法。和one-hot编码不同,word embedding使用了浮点型的稠密矩阵来表示token。根据词典的大小,我们的向量通常使用不同的维度,例如100,256,300等。其中向量中的每一个值是一个超参数,其初始值是随机生成的,之后会在训练的过程中进行学习中获得。Word embedding 的目标是捕捉词语之间的语义关系,使得相似含义的词在向量空间中的表示更为接近。

如果我们文本中有20000个词语,如果使用one-hot编码,那么我们会有20000*20000的矩阵,其中大多数的位置都为0,但是如果我们使用word embedding来表示的话,只需要20000*维度,比如20000*300的形象表示就是:

tokennumvector
词10[w11,w12,w13···w1N],其中N表示维度(dimension)
词21[w21,w22,w23···w2N]
词32[w31,w32,w33···w3N]
·········
词mm[wm1,wm2,wm3···wmN],其中m表示词典的大小

我们会把所有的文本转化为向量,把句子用向量来表示
在这之间,我们会先把token使用数字来表示再把数字用向量来表示
即:token —> num —> vector。
比如,dog是1,cat是2,lion是3,然后再将1、2、3转化为向量。

tokend1d2d3d4
dog-0.40.370.02-0.34
cat-0.15-0.02-0.23-0.23
lion0.19-0.40.35-0.48
tiger-0.080.310.560.07
elephant-0.04-0.090.11-0.06
cheetah0.27-0.28-0.2-0.43
monkey-0.02-0.67-0.21-0.48
rabbit-0.04-0.3-0.18-0.47
mouse0.09-0.46-0.35-0.24

2.1 word embedding数据形状转化

在这里插入图片描述

这批batch的每个句子有N个词,总共有batch_size个句子,也就是说这批batch的形状为[batch_size, N]。

word embedding规定,每个词映射到长度为4的向量上,即维度为4。其形状为[M, D]

这批batch经过word embedding后,查询其中的词典(M个词),把每一个句子的词映射到其中的向量上,最终batch的形状变成了[batch_size, N, D]。

2.2 word embedding API

torch.nn.Embedding(num_embeddings,embedding_dim)
参数:

  • num_embbeding:词典的大小
  • embedding_dim: embedding的维度

使用方法:

embedding = nn.Embedding(vocab_size,300)#实例化
input_embed = embedding(input) #进行embedding操作

2.3数据形状的变化

思考:每一个batch中的句子有10个词语,经过形状为[20, 4]的word embedding之后,原来的句子会变成什么形状?

因为word emdedding规定每个词用长度为4的向量表示,所以batch中每个句子中的10个词语会分布到向量的4个分量上,最终变成[batch_size, 10, 4]。

做图码字不易,可以点个赞嘛,谢谢你~~~

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

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

相关文章

谷歌地球引擎Google Earth Engine针对不同地表类型分别自动生成随机采样点的方法

本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法。 本文是谷歌地球引擎(Google Earth En…

05.Elasticsearch应用(五)

Elasticsearch应用(五) 1.目标 咱们这一章主要学习Mapping(映射) 2.介绍 Mapping是对索引库中文档的约束,类似于数据表结构,作用如下: 定义索引中的字段的名称定义字段的数据类型&#xff…

0124-2-算法题解析与总结(四)

5.5 如何去除有序数组的重复元素 本文对应的力扣题目: 26.删除排序数组中的重复项 83.删除排序链表中的重复元素 26.删除排序数组中的重复项: int removeDuplicates(int[] nums) {int n nums.length;if (n 0) return 0;int slow 0, fast 1;while…

Spring基于AbstractRoutingDataSource实现MySQL多数据源

目录 多数据源实现 yml配置文件 配置类 业务代码 案例演示 多数据源实现 yml配置文件 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedatasource1:url: jdbc:mysql://127.0.0.1:3306/datasource1?serverTimezoneUTC&useUnicodetrue&characte…

第二百八十六回

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了如何拦截路由相关的内容,本章回中将介绍页面转场动画.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在上一章回中介绍了路由拦截相关的内容,本章回中将使用路由拦截实现转场…

《动手学深度学习(PyTorch版)》笔记3

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,本书源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode测试通过。 Chapter3 Linear …

长城资产信息技术岗24届校招面试面经

本文介绍2024届秋招中,中国长城资产管理股份有限公司的信息技术岗岗位一面的面试基本情况、提问问题等。 10月投递了中国长城资产管理股份有限公司的信息技术岗岗位,所在部门为长城新盛信托有限责任公司。目前完成了一面,在这里记录一下一面经…

Puppeteer结合Jest对网页进行测试

之前我们使用Puppeteer进行网页爬虫(以及自动化操作),这篇文章主要验证一下Puppeteer测试的可实现性。 项目设置 让我们从设置一个基本的React应用程序开始。 我们将安装其他依赖项,如Puppeteer和Faker。 为了这篇文章的目的,我创建了一个…

ASP.NET Core WebAPI从HTTPS调整为HTTP启动

使用VS2022创建WebAPI项目时,默认勾选“配置HTTPS(H)”,这样启动WebAPI时以https方式启动。   如果要从HTTPS调整为HTTP启动,需要修改项目中以下几处,首先是Program.cs中删除app.UseHttpsRedirection()语句,删除后…

gitlab runner 安装、注册、配置、使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)

目录 前言漏洞分析影响范围查看自己的GitLab版本升级路程 升级过程13.1.1113.8.8 - 14.0.1214.3.614.9.5 - 16.1.6 前言 最近GitLab发了个紧急漏洞需要修复,ok接到命令立刻着手开始修复,在修复之前先大概了解一下这个漏洞是什么东西 漏洞分析 1、组件…

免费的 UI 设计资源网站 Top 8

今日与大家分享8个优秀的免费 UI 设计资源网站。这些网站的资源包括免费设计材料站、设计工具、字体和其他网站,尤其是一些材料站。它们是免费下载的,材料的风格目前很流行,适合不同的项目。非常适合平面设计WEB/UI设计师收藏,接下…

.git 文件夹结构解析

.git 文件夹结构解析 在这篇文章就让我们来看看这个 Git 仓库里的文件分别都是用来干什么的,以及在执行了相关的 Git 命令后这些文件会如何响应。 hooks(钩):存放一些shell脚本info:存放仓库的一些信息logs&#xff…

1分钟部署幻兽帕鲁联机服务,PalWorld服务器搭建教程(阿里云)

1分钟部署幻兽帕鲁联机服务,PalWorld服务器搭建教程 最近这游戏挺火,很多人想跟朋友联机,如果有专用服务器,就不需要房主一直开着电脑,稳定性也好得多。 概述 幻兽帕鲁是Pocketpair开发的一款开放世界生存制作游戏&…

Linux系统Shell脚本编程之条件语句

一、条件测试 Shell 环境根据命令执行后的返回状态值 " $? " 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值)。使用专门的测试工具 test 命令,可以对特定条件进行测试,并…

金融OCR领域实习日志(一)

一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…

先进车辆驾驶舱系统的强大网络安全协议

近年来,车辆驾驶舱系统发展迅速,融入了导航、娱乐和车辆性能监控系统等先进技术。随着驾驶舱变得更加互联和依赖软件,它们也变得更容易受到网络安全威胁。实施强大的网络安全协议对于保护驾驶员和乘客以及保持车辆运行的完整性至关重要。 本…

支付宝推出新年“五福节”活动,新增四大AI玩法;大型语言模型综合指南

🦉 AI新闻 🚀 支付宝推出新年“五福节”活动,新增四大AI玩法 摘要:支付宝宣布今年的“集五福”活动升级为“五福节”,新增了四大AI玩法:飙戏小剧场、时空照相馆、会说话红包和大家来找福。用户可以通过拼…

uniapp canvas做的刮刮乐解决蒙层能自定义图片

最近给湖南中烟做元春活动&#xff0c;一个月要开发4个小活动&#xff0c;这个是其中一个难度一般&#xff0c;最难的是一个类似鲤鱼跃龙门的小游戏&#xff0c;哎&#xff0c;真实为难我这个“拍黄片”的。下面是主要代码。 <canvas :style"{width:widthpx,height:hei…

c语言-枚举和联合体

文章目录 前言一、枚举类型1.1 枚举类型的定义1.2 枚举类型的使用1.3 枚举的优点 二、联合体类型2.1 联合体类型的定义2.2 联合体类型的特点2.3 联合体大小的计算 总结 前言 本篇文章介绍c语言中的枚举类型和联合体类型 一、枚举类型 1.1 枚举类型的定义 枚举类型和结构体类…