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

news2024/10/11 16:17:32

文章目录

  • 一、词嵌入介绍
    • 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.coloradmin.cn/o/2205198.html

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

相关文章

ITSS-IT服务项目经理的价值体现

(1)技能提升:对于获得ITSS认证的服务项目经理而言,熟练掌握各种运维工具的使用能更精准地量化工作成果,更有效地管理信息技术服务流程。 这不仅提升了服务质量,还能在工作中展现出更高的效率和准确性&…

金蝶云星空个别字段无法录入异常处理

用户反馈,在录入单据时,第一条数据能录入数量,新增第二条时就无法录入。 用户反馈截图如下: 我登录自己的账号查看,并未发现相同的问题,同时用户也说已经退出重新登录过,问题依旧。 到现场看用…

硬货!Zabbix监控AIX系统服务案例

本文将介绍如何使用Zabbix自定义键值脚本方式监控AIX 系统IBM CICS中间件进程服务以及日志文件等信息。 Customer Information Control System (CICS) Transaction Server 是 IBM 针对 z/OS 的多用途事务处理软件。这是一个功能强大的应用程序服务器,用于大型和小型…

input 标签拥有了一种新的类型 :datetime-local 可以同时输入时间和日期

目前用于输入时间的控件有三种&#xff1a; typedate : 输入日期 typetime: 输入时间 typedatetime-local : 输入日期和时间 <input type"datetime-local" /><input type"date" /><input type"time" />

通义灵码 AI 程序员来了!丨阿里云云原生 9 月产品月报

云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》&#xff0c;从趋势热点、产品新功能、服务客户、开源与开发者动态等方面&#xff0c;为企业提供数字化的路径与指南。 趋势热点 &#x1f947; 通义灵码 AI 程序员开启邀测&#xff0c;全流程开…

MarkText常用设置及快捷命令

1、设置自动保存 2、设置打开的默认目录 3、设置本地图片保存位置 4、常用快捷命令 1、 新建文档CtrlT 2、 打开侧边栏CtrlJ 3、 显示源代码CtrlE(再次按可切回正常界面)

Linux相关概念和易错知识点(14)(进程终止、进程退出、退出信息)

1.进程终止 &#xff08;1&#xff09;错误码 对于程序常见错误信息&#xff0c;C/C提供了信息解释&#xff0c;保存在<string.h>&#xff0c;使用strerror(错误码)就可以查询 错误信息成立的前提是错误码要和错误信息匹配&#xff0c;我们需要结合C/C给我们的错误码来…

股市入门常见术语介绍

鉴于最近行情讨论火热&#xff0c;我也想借此平台&#xff0c;结合我大学时期身边同学老师的投资经历&#xff0c;写一篇交易入门术语简介。内容不多但是足以达到科普之用。​ 希望大家能谨慎对待投资&#xff0c;始终保持谦虚学习的态度。不要迷失在瞬息万变的金融市场&#x…

第十九节 图像的缩放与插值

图像插值 最常见的四种插值算法 INTER_NEARRST0 INTER_LINEAR1 INTER_CUBIC2 INTER_LANCZOS44 相关应用场景 几何变换&#xff0c;透视变换&#xff0c;插值计算新像素resize&#xff0c; 如果size有值&#xff0c;使用size做缩放插值&#xff0c;否则根据fx与fy卷积。…

HUAWEI_HCIA_实验指南_Lib2.2_理解ARP及Proxy ARP

1、原理概述 ARP(Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议。ARP表项可以分为动态和静态两种类型。动态ARP是利用ARP广播报文&#xff0c;动态执行并自动进行IP地址到以太网MAC地址的解析&#xff0c;无需网络管理员手工处理。静态ARP是建立I…

基于JAVA+SpringBoot+Vue的实习管理系统

基于JAVASpringBootVue的实习管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈喽兄…

<Project-6 pdf2tx> Python Flask 应用:图片PDF图书的中文翻译解决方案

重要更新&#xff01; Modified on 8oct24. P6已经被 P8 替代&#xff0c;后着支持多任务&#xff0c;多翻译机。在速度与资源占用上&#xff0c;都好于这个P6。 新的 P8 文章链接&#xff1a; &#xff1c;Project-8 pdf2tx-MM&#xff1e; Python Flask应用&#xff1a;在…

59 mysql 存储引擎之 PERFORMANCE_SCHEMA

前言 我们这里来看一下 performance_schema 存储引擎, 我们常见的那些 general_log, slow_log什么的, 都是基于 performance_schema 它主要是 使用 ha_perfschema 下面 api 来操作 performance_schema 中的信息 我们这里基于 performance_schema.variables_by_thread 这张基…

RGB转HDMI方案、MS7210驱动——FPGA学习笔记20

一、简介 见HDMI彩条显示——FPGA学习笔记12-CSDN博客 二、TMDS编码原理 HDMI 采用 TMDS (Time Minimized Differential Signal) 最小化传输差分信号传输技术&#xff0c; 是美国 Silicon Image 公司开发的一项高速数据传输技术&#xff0c; 将视频、 音频、 控制信号进行编码…

电脑上下载配置Flutter Sdk及如何配置Flutter国内镜像

电脑上面下载配置 Flutter Sdk &#xff08;所有版本方法一 样&#xff09;&#xff1a; 1 、下载 Flutter SDK https://flutter.dev/docs/development/tools/sdk/releases#windows 2 、把下载好的 Flutter SDK 随便减压到你想安装 Sdk 的目录 如减压到 &#xff08; F:\flu…

Flink job的提交流程

在Flink中&#xff0c;作业&#xff08;Job&#xff09;的提交流程是一个复杂的过程&#xff0c;涉及多个组件和模块&#xff0c;包括作业的编译、优化、序列化、任务分发、任务调度、资源分配等。Flink通过分布式架构来管理作业的生命周期&#xff0c;确保作业在不同节点上以高…

【Java】多线程代码案例

多线程代码案例 单例模式初步了解饿汉模式懒汉模式线程安全问题分析存在的问题 生产者消费者模型初识生产者消费者模型初识阻塞队列生产者消费者模型的意义BlockingQueue阻塞队列模拟实现 定时器初识计时器初识Timer类初识 schedule() 方法简易定时器的实现思路讲解代码书写 线…

面试字节跳动精选20道产品经理面试题分析回答

分享20道字节跳动产品经理的面试题&#xff0c;产品经理的面试很多会跟项目强关联&#xff0c;比如面试电商产品经理&#xff0c;就要多聊电商的业务&#xff0c;所以我们选了一些比较通用的&#xff0c;面试题及我们的分析回答。 01 20道面试题&#xff08;前10道&#xff0…

react中的重定向Redirect

1, 首先引入 import {BrowserRouter,Route,Switch,Redirect} from react-router-dom 2,使用 一般写在所有路由注册的最下方&#xff0c;当所有路由都无法匹配时&#xff0c;跳转到Redirect指定的路由 <Switch><Route path"/about" component{About}/>…

探索SLMi823x系列 40V, 1A/4A 具有不同配置 双通道死区可编程 隔离驱动器

SLMi823x系列选型型号&#xff1a; SLMi8230BDCG-DG SLMi8230DDCG-DG SLMi8231BDCG-DG SLMi8231DDCG-DG SLMi8232BDCG-DG SLMi8232DDCG-DG SLMi8233BDCG-DG SLMi8233DDCG-DG SLMi8234BDCG-DG SLMi8234DDCG-DG …