第四章(1):词向量定义与意义

news2024/11/18 9:45:42

第四章(1):词向量定义与意义

p9CeG80.png

目录

  • 第四章(1):词向量定义与意义
  • 前言
  • 1. 词的表示
    • 1.1 离散表示
      • 1.1.1 One-Hot独热编码
      • 1.1.2 ngram特征表示
    • 1.2 分布式表示
  • 2. 意义


前言

在自然语言处理的领域中,每个单词都可以被表示为一个向量,这些向量叫做“词向量”。换句话说,每个单词都可以被用数字表示,而这些数字可以被用于机器学习模型的训练之中。这样就可以大幅缩小所需要的存储空间,同时也可以提高机器学习模型的速度和表现。

p9idmsU.png

1. 词的表示

在自然语言处理任务中,首先需要考虑词如何在计算机中表示。通常,有两种表示方式:one-hot representation和distribution representation。

1.1 离散表示

离散表示的实现方法主要有两种,分别是One-Hot独热编码和ngram特征表示。

1.1.1 One-Hot独热编码

One-Hot独热编码是一种最简单的离散表示方法,也是最为常见的一种方法。它采用词表中每个词的索引作为二进制编码的位置,只有该位置上取值为1,其他位置的取值都为0。对于包含n个不同词语的词表,每个词语的离散表示的向量维数就是n。

例如,对于如下的词表:

苹果,橘子,芒果,葡萄

我们可以将其转化为如下的离散表示向量:

苹果:[1,0,0,0]
橘子:[0,1,0,0]
芒果:[0,0,1,0]
葡萄:[0,0,0,1]

通过One-Hot独热编码,我们可以得到每个词语的固定长度的离散向量,同时也可以最大限度的避免同一个词语出现多次的问题。但是这种方法也存在着一些问题,比如向量维度较高,导致存储空间的占用较大,同时也无法解决语义相似的词语之间的距离问题。

如下是一个动漫表示,生动形象~

p9iYPOJ.png

1.1.2 ngram特征表示

ngram特征表示是一种基于n元语法的离散表示方法,它主要是基于一个句子中不同的词语之间的关系来进行的。具体来说,它是将一个句子中所有的不同词语按顺序排列,然后选取不同长度的组合作为不同的特征。

假设我们有一个包含以下四个句子的文本:

  1. 我们明天一起去看电影吧。
  2. 今天的天气真好,适合出去玩。
  3. 这家餐厅的菜很好吃,服务也很棒。
  4. 最近公司的业绩不太理想,需要加强市场营销。

我们可以使用基于词语的ngram特征表示方法,将每个句子表示成一个向量。假设我们使用二元词语级别的ngram特征表示,那么对于上述四个句子,可以得到如下的特征向量:

我们 明天明天 一起一起 去去 看看 电影今天 天气天气 真好真好 适合适合 出去出去 玩这家 餐厅餐厅 的的 菜菜 很很 好吃好吃 服务服务 也也 很很 棒最近 公司公司 的的 业绩业绩 不太不太 理想理想 需要需要 加强加强 市场市场 营销
句子11111100000001100000000000000
句子20000011111000000000000000000
句子30000000000111111111110000000
句子40000000000010000111011111111

在这个特征向量中,每一行代表一个句子,每一列代表一个二元词语。如果在某个句子中,存在某个二元词语,则对应的位置的值为1,否则为0。

通过基于词语的ngram特征表示,我们可以得到文本中不同词语之间的语义信息,同时也可以减少语法结构对文本表示的影响,从而更好地表达文本的重要信息。

1.2 分布式表示

词向量的分布式表示(Distributed Representation)是一种将单词表示为实数向量的方法。相对于传统的局部表示方法(如独热编码),分布式表示将单词的语义信息分散地存储在向量的各个维度中,从而实现了高效的语义处理。这种方法最早由Yoshua Bengio等人提出,后来通过神经网络模型的发展得到广泛应用。

具体地,分布式表示是将每个单词表示为一个实数向量,其中向量中每个维度都代表单词的一个特定语义。例如,在使用神经网络进行词向量训练时,我们可以选定一个窗口大小,根据输入单词周围的上下文预测该单词的向量表示。这样,语义相近的单词就会在向量空间中聚集在一起。通过这种方式,我们可以在向量空间中计算单词之间的距离和相似度,进而实现一些自然语言处理任务。

分布式表示方法已经被广泛应用于自然语言处理领域,尤其是在词向量表示和语言模型方面。目前,一些预训练的词向量模型(如word2vec、GloVe和Bert等)已经成为自然语言处理领域的重要工具。

后文将具体描述。

2. 意义

词向量是将文本中的每个单词表示为一个实数向量,它可以将自然语言处理中的文本信息转化为可以进行数学运算的形式,为自然语言处理任务提供了新的思路和方法。词向量的意义主要体现在以下几个方面:

  1. 表示语义信息:词向量能够将单词嵌入到低维空间中,使得具有相似语义的单词在向量空间中距离较近,从而为自然语言处理任务提供了更加有效的表示方式。例如,可以使用词向量进行词汇替换、同义词判定、情感分析等任务。

  2. 降低维度灾难:传统的文本表示方法往往需要采用高维稀疏的独热编码或者词袋模型,这种方法会导致维度灾难的问题,即当词表很大时,特征向量的维度会非常高,导致稀疏性问题和计算开销问题。而词向量方法则可以将单词嵌入到低维空间中,降低了特征向量的维度,解决了维度灾难的问题。

  3. 支持计算语义相似度:词向量支持通过向量空间距离计算语义相似度,可以进行词汇替换、短语组合等操作,从而拓展了自然语言处理的应用范围。

  4. 帮助解决稀疏性问题:在文本分类、聚类等任务中,传统的方法往往需要处理高维稀疏的特征向量,这会导致数据稀疏、模型容易过拟合等问题,而使用词向量则可以将文本表示为密集向量,解决稀疏性问题,提高模型性能。

综上所述,词向量作为自然语言处理领域中的一项重要技术,具有表示语义信息、降低维度灾难、支持计算语义相似度和帮助解决稀疏性问题等意义


参考

什么是词向量?(NPL入门) - 腾讯云开发者社区-腾讯云 (tencent.com)

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

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

相关文章

电容-基础知识

1、电容两端电压 不能激变,所以可以起到稳定电压作用 2、电容的种类:瓷片电容、插件电解电容、贴片电解电容、钽电容、CBB电容、插件瓷片电容、(X电容、Y电容,属于安规电容,对功能没有影响,对性能没有影响…

权限控制_SpringSecurity

认证-授权 认证:系统提供的用于识别用户身份的功能,通常提供用户名和密码进行登录其实就是在进行认证,认证的目的是让系统知道你是谁。 授权:用户认证成功后,需要为用户授权,其实就是指定当前用户可以操作…

【Qt】随记1:#if 1/0 #else #endif的用法

欢迎阅读本博文,本文主要记录Qt学习、工作中的一些注意点及相关笔记📃 希望记录的内容有帮助到你,也欢迎把你知道的分享给大家,一起进步!🎉 喜欢的话,请帮忙点赞👍、评论&#x1f4…

【排序】快速排序(递归和非递归)

快速排序 前言图解大致思路对于hoare版本对于挖坑法对于前后指针法 实现方法递归非递归 快排的优化(基于递归的优化)三数取中法小区间优化 时间复杂度和空间复杂度 前言 快速排序,听名字就比较霸道,效率根名字一样,非…

winForm登录页面知识点

先看界面 引用知识 控件:label,Textbox,button还有各自的属性和事件Trim()方法的使用,IsNullOrEmpty()方法的使用,Show()方法的使用 Label 属性 NameText:设置或获取文本信息image:显示图像ImageList:图像集控件SizeTag:与控件相关的自定…

Gorm的关联模型

Belongs To 将一个模型与另一个模型建立一对一的关系 例如:一张银行卡只能分配给一个用户,在User结构体里面创建一个CreditCardId外键关系,然后在User结构体里面嵌套一个CreditCard结构体 // Belongs To // 用户 type User struct {gorm.M…

十个超级好用的Javascript技巧

概览:在实际的开发工作过程中,积累了一些常见又超级好用的Javascript技巧和代码片段,包括整理的其他大神的JS使用技巧,今天筛选了10个,以供大家参考。 动态加载JS文件 在一些特殊的场景下,特别是一些库和…

自己动手做chatgpt:解析gpt底层模型transformer的输入处理

前面我们完成了一些基本概念,如果你对深度学习的基本原理还不了解,你可以通过这里获得更多信息,由于深度学习的教程汗牛充栋,因此我在这里不会重复,而是集中精力到chatgpt模型原理的分析,实现和实践上。Cha…

初识C语言————3

博主这篇文章浅谈一下自己对函数和数组的理解。之后会详细说明。 文章目录 一、函数 二、数组 1、数组定义 2、数组的下标 3、数组的使用 一、函数 函数可以理解为一个模块的代码&#xff0c;完成一个独立的功能。 #include <stdio.h> int main() {int num1 0;int num…

ASEMI代理ADM3051CRZ-REEL7原装ADI车规级ADM3051CRZ-REEL7

编辑&#xff1a;ll ASEMI代理ADM3051CRZ-REEL7原装ADI车规级ADM3051CRZ-REEL7 型号&#xff1a;ADM3051CRZ-REEL7 品牌&#xff1a;ADI/亚德诺 封装&#xff1a;SOIC-8 批号&#xff1a;2023 引脚数量&#xff1a;8 安装类型&#xff1a;表面贴装型 ADM3051CRZ-REEL7汽…

【Python】读取rdata类型数据转为csv excel格式文件, 无需安装r语言基于pyreadr+pandas实现数据分析(保姆级注释)

目录 环境配置取得数据名 datas.keys()取得pandas的DataFrame类型数据一些数据分析例程供入门同学学习转化为csv excel格式所有数据 转化为csv取前面100行数据 快速测试能否转化csv取前面100行数据 快速测试能否转化xlsx 完整例程总结 欢迎关注 『Python』 系列&#xff0c;持续…

简述AutoGPT原理(提示词)

启动时需要设置三个项目&#xff1a;机器人名字、设定给机器人的角色、要完成的目标。 根据你的设定利用ChatGPT进行下一步的抉择&#xff0c;具体的&#xff0c;实际上归功于提示词&#xff1a; 下面这段提示词在干什么呢&#xff1f; 将设定的名字、角色、目标告诉ChatGPT&…

【U8+】用友U8+对账不平案例及方法总结

【问题需求】 在使用用友U8软件过程中&#xff0c;由于软件涉及到多方面的对账。 所以经常会遇到期初或结账时对账不平。 【经验分享】 在众多对账中&#xff0c; 只有当【总账上下级】&#xff08;即&#xff1a;总账与明细账对账&#xff09;不平的时候&#xff0c; 软件才…

春秋云境:CVE-2022-26965(后台RCE)

目录 一、题目 二、 利用cms主题构造木马 一、题目 介绍&#xff1a; Pluck-CMS-Pluck-4.7.16 后台RCE 进入题目&#xff1a; cms页面 点击admin进行登录&#xff1a; 弱口令admin登录&#xff1a; 成功登录进去&#xff1a; 国产化一下&#xff1a; 选项---选择主题 点击…

漏洞分析丨cve20144113

一、漏洞简述 Microsoft Windows下的 win32k.sys是Windows子系统的内核部分&#xff0c;是一个内核模式设备驱动程序&#xff0c;它包含有窗口管理器、后者控制窗口显示和管理屏幕输出等。如果Windows内核模式驱动程序不正确地处理内存中的对象&#xff0c;则存在一个特权提升…

js对象案例练习

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大一在校生&#xff0c;web前端开发专业 &#x1f921; 个人主页&#xff1a;python学不会123 &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习…

SQL Server的日志传送

日志传送和复制 一、前言二、相关术语和定义三、日志传送和复制3.1、在主数据库丢失时从辅助数据库进行复制的要求和过程3.2、使用事务复制进行日志传送3.3、使用合并复制进行日志传送 一、前言 日志传送允许您自动将事务日志备份从主服务器实例上的主数据库发送到单独辅助服务…

思维导图手撕MyBatis源码

文章目录 前置准备通过类加载器读取配置文件流创建sqlSessionFactory建造者模式的使用 打开SqlSession获取Mapper接口对象执行Mapper接口方法 前置准备 既然要读MyBatis的源码&#xff0c;那么我们就要先弄清楚MyBatis的入口在哪。这里我们直接写一个标准的MyBatis使用程序&am…

Node 【Buffer 与 Stream】

文章目录 &#x1f31f;前言&#x1f31f;Buffer&#x1f31f; Buffer结构&#x1f31f; 什么时候用Buffer&#x1f31f; Buffer的转换&#x1f31f; Buffer使用&#x1f31f; 创建Buffer&#x1f31f; 字符串转Buffer&#x1f31f; Buffer转字符串&#x1f31f; 拼接Buffer&am…

微信小程序登录注册页面

// login.js // 获取应用实例 var app getApp() var api require("../../utils/api.js")Page({data: {motto: zhenbei V1.0.0,userInfo: {},hasUserInfo: false,disabled: true,btnstate: default,username: ,password: ,canIUse: wx.canIUse(button.open-type.get…