《自然语言处理NLP》—— 词嵌入(Word Embedding)及 Word2Vec 词嵌入方法

文章目录

  • 一、词嵌入介绍
    • 1.示例介绍
    • 2.词嵌入的主要特点
    • 3.常见的词嵌入方法
    • 3.词嵌入的应用
  • 二、Word2Vec 词嵌入方法
    • 1. 连续词袋模型(CBOW)
    • 2. Skip-gram模型
    • 3.Word2Vec方法的应用

在了解词嵌入之前需要了解什么是 独热编码(One-Hot Encoding),下面链接的文章中对其有简单的介绍

  • https://blog.csdn.net/weixin_73504499/article/details/142748311?spm=1001.2014.3001.5501

一、词嵌入介绍

1.示例介绍

  • 如果需要对语料库中的每个字进行one-hot编码如何实现?
    • 第一步:统计语料库中所有词的个数,例如有4960个词
    • 第二步:按顺序依次给每个词进行one-hot编码,例如第1个词为:[1,0,0,0…0],最后1个词为:[0,0,0,0…1]
    • 这样编码后每个词的矩阵非常稀疏会出现维度灾难。例如"我爱北京天安门",这句话分此后是"我",“爱”,“北京”,"天安门"这四个词,传入神经网络输入层的数据维度为:[4*4960],维度太大,且只有四个位置上的值为1,其余的都为零,效果太差
  • 如何解决独热编码(One-Hot Encoding)中维度灾难的问题?
    • 通过神经网络训练,将每个词都映射到一个较短的词向量上来
    • 例如还是"我爱北京天安门"这句话,通过神经网络训练(指定映射到的词向量维度为300)后的数据为:
      • [0.62,0.12,0.01,0,0,0,0,….,0]
      • [0.1,0.12,0.001,0,0,0,0,….,0]
      • [0,0,0.01,0.392,0.39, 0,….,0]
      • [0,0,0,1,0,0.01,0.123,….,0.11]
    • 这句话的数据维度便成了:[4*300]
    • 注意:维度中的数字已经不只是1和0了,还有一些浮点数,用多个数字来表示一个词,从而降低词向量的维度
    • 这种将高维度的词表示转换为低维度的词表示的方法,我们称之为词嵌入(Word Embedding)
  • 词嵌入(Word Embedding)是自然语言处理(NLP)中的一个核心技术,它能够将词汇表中的单词或短语转换为连续的实数向量。这些向量捕捉了词汇间的语义和句法关系,使得相似的词汇在向量空间中距离较近。词嵌入允许计算机以数值形式理解和处理语言,这对于训练机器学习模型来说至关重要。

2.词嵌入的主要特点

  1. 语义相似性:在向量空间中,语义相似的词汇通常会有较近的向量距离。例如,“king” 和 “queen” 的向量可能会比 “king” 和 “cat” 的向量更接近。

  2. 低维表示:词嵌入将高维的词汇空间映射到低维的向量空间中,使得每个单词都可以用一个相对紧凑的向量来表示。这大大降低了数据的维度和复杂性。

  3. 上下文敏感性:词嵌入的表示方式会受到上下文信息的影响,使得词语之间不是孤立存在的,这十分符合语言的内在逻辑。

3.常见的词嵌入方法

  1. Word2Vec:由Google提出的词嵌入方法,包括CBOW(Continuous Bag of Words)Skip-gram两种模型。这两种模型都通过预测上下文词汇来学习词汇的向量表示。

  2. GloVe(Global Vectors for Word Representation):利用全局词汇共现统计信息来学习词嵌入,捕捉词汇间的全局关系。

  3. FastText:由Facebook提出,考虑了子词(subword)信息,通过字符n-gram来构建词向量,从而提高了对未登录词(OOV)的处理能力。

  4. BERT(Bidirectional Encoder Representations from Transformers):基于Transformer架构的预训练语言表示模型,通过双向编码来学习上下文相关的词嵌入。BERT及其变体(如RoBERTa、T5等)在NLP领域取得了巨大成功。

3.词嵌入的应用

词嵌入在多种NLP任务中都有广泛应用,包括但不限于:

  • 情感分析:通过分析文本中的词汇向量来判断文本的情感倾向。
  • 命名实体识别:利用词嵌入来识别文本中的实体(如人名、地名等)。
  • 机器翻译:词嵌入可以帮助模型理解源语言和目标语言之间的词汇对应关系。
  • 文本分类:将文本转换为词向量后,利用机器学习模型进行分类。

二、Word2Vec 词嵌入方法

  • Word2Vec是词嵌入技术的一种具体实现方法,由谷歌的研究人员在2013年提出。它使用小型神经网络根据单词的上下文来计算单词嵌入。Word2Vec方法包含两种具体模型:连续词袋模型(CBOW)Skip-gram模型

1. 连续词袋模型(CBOW)

  • 原理根据上下文预测中心词。即,给定一系列上下文单词,模型试图预测这些上下文单词所对应的中心词。

  • 实现:首先,将上下文单词的独热编码作为输入,通过神经网络进行训练,最终得到每个单词的词向量表示。

    • 实现过程图如下:
      在这里插入图片描述
  • 模型训练过程
    在这里插入图片描述

  • 模型结构图为:
    在这里插入图片描述
  • 假定语料库中一共有4960个词,则词编码为4960个01组合,现在压缩为300维
    在这里插入图片描述

2. Skip-gram模型

  • 原理根据中心词预测上下文。即,给定一个中心词,模型试图预测该中心词所对应的上下文单词。
  • 实现:与CBOW模型类似,Skip-gram模型也使用独热编码作为输入,并通过神经网络进行训练。不同的是,Skip-gram模型使用中心词的词向量作为输入,并预测上下文单词的概率分布。
    • 实现过程图如下:
      在这里插入图片描述

Word2Vec方法还采用了多种优化技术来提高训练效率和效果,如层次Softmax、负采样等。这些优化技术有助于减少计算量、加速训练过程,并提高词向量的质量。

3.Word2Vec方法的应用

Word2Vec方法在自然语言处理领域具有广泛的应用,包括但不限于以下几个方面:

  1. 文本分类:利用Word2Vec得到的词向量作为文本的特征表示,可以提高文本分类的准确性和效率。
  2. 机器翻译:Word2Vec方法可以帮助模型更好地理解和翻译自然语言文本,从而提高机器翻译的质量。
  3. 情感分析:通过对词向量的分析,可以判断文本的情感倾向,实现情感分析任务。
  4. 推荐系统:在推荐系统中,可以利用Word2Vec方法对用户和物品的文本描述进行向量化表示,从而实现更精准的推荐。

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

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

相关文章

【Spring相关技术】spring进阶-自定义请求报文转对象HttpMessageConverter

文章目录 类继承体系核心类与接口说明底层调用链完整示例步骤 1: 创建自定义的HttpMessageConverter步骤 2: 配置Spring MVC使用自定义转换器步骤 3: 使用自定义转换器 相关文献 类继承体系 默认转换器即springmvc默认的转换器, 用的比较多的是以下两种,…

18063 圈中的游戏

### 思路 这个问题是经典的约瑟夫环问题。我们可以使用链表来模拟这个过程。具体步骤如下: 1. 创建一个循环链表,表示所有人。 2. 从第一个人开始,依次报数。 3. 每报到3的人退出圈子,直到只剩下一个人。 ### 伪代码 function j…

TuyaOS开发学习笔记(4)——BLE开发搭建环境、编译烧写(NRF52832)

一、搭建环境 1.1 官方资料 TuyaOS 1.2 安装Visual Studio Code 官网下载:https://code.visualstudio.com 百度网盘:https://pan.baidu.com/s/1R62HT0PVmVzMwOXtCmIQwA 提取码:g9fb 1.3 安装Tuya Wind IDE 启动 Visual Studio Code 后&am…

肽合同制造(CDMO):北美和欧洲是全球最大肽合同制造(CDMO)消费地区

据 HengCe 最新调研,2023年中国肽合同制造(CDMO)市场销售收入达到了 万元,预计2030年可以达到 万元,2024-2030期间年复合增长率(CAGR)为 %。本研究项目旨在梳理肽合同制造(CDMO)领域产品系列&am…

前端布局与响应式设计综合指南(末)

​🌈个人主页:前端青山 🔥系列专栏:Css篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Css篇专栏内容:前端布局与响应式设计综合指南(末) 目录 61、为什么要初始化CSS样式 62、CSS3 有哪些新特性 63、…

microsoft edge浏览器卡死问题

win11经常遇到microsoft edge浏览器卡死的情况,有时候是一会没用浏览器就全部卡死,有时候是锁屏或者电脑休眠浏览器就不能用,找了很多的办法都没好使,用以下方法好使了: edge浏览器中打开 edge://settings/system 把 …

【从零开始的LeetCode-算法】2135. 统计追加字母可以获得的单词数

给你两个下标从 0 开始的字符串数组 startWords 和 targetWords 。每个字符串都仅由 小写英文字母 组成。 对于 targetWords 中的每个字符串,检查是否能够从 startWords 中选出一个字符串,执行一次 转换操作 ,得到的结果与当前 targetWords …

nemo-guardrails简单应用

环境:openEuler、python 3.11.6、nemoguardrails 0.10.1、Azure openAi 背景:工作需要,进行调研期间,发现问题太多,且国内网站好多没说明具体问题 时间:20241014 说明:搭建过程中主要是下载h…

apache.poi读取.xls文件时The content of an excel record cannot exceed 8224 bytes

目录 问题描述版本定位:打印size最大的Record定位:RefSubRecord解决代码 问题描述 使用apache.poi读取.xls文件时有The content of an excel record cannot exceed 8224 bytes的报错。待读取的文件的内容也是通过apache.poi写入的,我的文件修…

深入剖析递归算法:原理、特点、应用与优化策略

在上一篇文章👉【剖析十大经典二叉树题目】中,运用到了大量的递归算法,故本文将解析递归算法。 目录 💯引言 💯递归算法的定义与原理 ⭐定义 ⭐原理 💯递归算法的特点 ⭐简洁性 ⭐可读性 ⭐通用性 …

【拼多多】拼多多批发 | 拼多多手机端 | anti_content |

所有的anti_content都可以用官网的anti_content的生成

MySQL 的数据类型

1.整数类型 1.1 tinyint tinyint 为小整数类型,存储空间为1个字节(8位),有符号范围-128 ~ 127,无符号范围 0 ~ 255,此类型通常在数据库中表示类型的字段,如某一字段 type 表示学科,其中 “type1” 表示语文…

Light灯光组件+组件的相关操作+游戏资源的加载

Light灯光组件 Type: Directional:平行光,模仿的是太阳光 Spot:聚光灯 Area:区域光 Color: 颜色值 Mode: RealTime:实时 Mix:混合 Baked:烘焙 Intersity: 光照强度 Indirect Multiplier:光照强度乘数 Shadow Type:影子设置:…

【python学习】1-2 配置python系统环境变量

1.点击“我的电脑”右键,点击属性,点击“高级系统设置”,再点击环境变量。 2.选择“系统变量”中的Path后,点击编辑。 3.点击新建,添加如图两个路径,即是python安装的路径位置后,点击确定。

C# 实现调用函数,打印日志(通过反射代理、非IOC)

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C# 🤝希望本文对您有所裨益,如有不足之处&#xff…

大数据ETL数据提取转换和加载处理

什么是 ETL? 提取转换加载(英语:Extract, transform, load,简称ETL),用来描述将资料从来源端经过抽取、转置、加载至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。 ETL&…

某知名国企面试题

引言 金九银十,求职热潮再度来袭。最近,有位同学去一家知名国企应聘,回来后带回了一套面试题。这套面试题非常典型,其中包含了许多供应链金融方面的典型问题。这些问题很有分享的价值,大家也可以先自己独立思考一下&a…

PFC和LLC的本质和为什么要用PFC和LLC电路原因

我们可以用电感和电容的特性,以及电压和电流之间的不同步原理来解释PFC(功率因数校正)和LLC(谐振变换器)。 电感和电容的基本概念 电感(Inductor): 电感是一种储存电能的组件。它的电流变化比较慢,电流在电感中延迟,而电压变化得比较快。可以把电感想象成一个“滞后…

接口自动化测试介入项目管理流程

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 下图为接口自动化测试介入梧桐项目管理流程图 前景和目标: 现在公司的项目流程都是全部开发完成后提交到测试环境进行测试,导致测试人员在…

基于FPGA的以太网设计(三)

通过前文介绍了RGMII接口时序我们可以知道,RGMII接口是在时钟信号的上升沿和下降沿均进行数据的传输,而FPGA则在时钟的单沿传输数据,因此我们需要编写代码将RGMII接口转换为GMII接口。 由于前面的介绍我们知道RTL8211默认工作在延时状态&…