自然语言处理:词嵌入简介

news2025/1/4 19:29:21

动动发财的小手,点个赞吧!

Word Embeddings

机器学习模型“查看”数据的方式与我们(人类)的方式不同。例如,我们可以轻松理解“我看到一只猫”这一文本,但我们的模型却不能——它们需要特征向量。此类向量或词嵌入是可以输入模型的词的表示。

alt

工作原理:查找表(词汇)

alt

在实践中,你有一个允许单词的词汇表;你提前选择这个词汇。对于每个词汇单词,查找表包含它的嵌入。可以使用词汇表中的单词索引找到该嵌入(即,您可以使用单词索引在表中查找嵌入)。

alt

为了解释未知词(那些不在词汇表中的词),通常一个词汇表包含一个特殊的标记 UNK。或者,未知标记可以被忽略或分配一个零向量。

本讲[1]的主要问题是:我们如何得到这些词向量?

表示为离散符号:One-hot 向量

最简单的方法是将单词表示为One-hot向量:对于词汇表中的第 i 个单词,向量在第 i 个维度上为 1,在其余维度上为 0。在机器学习中,这是表示分类特征的最简单方法。

alt

您可能会猜到为什么One-hot向量不是表示单词的最佳方式。问题之一是对于大词汇表,这些向量会很长:向量维数等于词汇表大小。这在实践中是不可取的,但这不是最关键的问题。

真正重要的是,这些向量对它们所代表的词一无所知。例如,One-hot向量“认为”猫和狗的距离和桌子的距离一样近!我们可以说 「one-hot 向量不捕获意义」

但是我们怎么知道什么是意义呢?

分布语义

为了在向量中捕捉单词的含义,我们首先需要定义可以在实践中使用的含义概念。为此,让我们尝试了解我们人类如何知道哪些词具有相似的含义。

alt

一旦您看到了未知词在不同上下文中的使用方式,您就能够理解它的含义。你是怎么做到的?

假设是你的大脑搜索了可以在相同上下文中使用的其他词,找到了一些(例如,葡萄酒),并得出了 tezgüino 与其他词具有相似含义的结论。这是分布假设:

经常出现在相似上下文中的词具有相似的含义。

这是一个非常有价值的想法:它可以在实践中使用,让词向量捕捉到它们的含义。根据分布假设,“捕捉意义”和“捕捉上下文”在本质上是相同的。因此,我们需要做的就是将有关单词上下文的信息放入单词表示中。

主要思想:我们需要将有关单词上下文的信息放入单词表示中。

基于计数的方法

alt

基于计数的方法从字面上理解了这个想法:

如何:根据全球语料库统计信息手动放置此信息。

一般过程如上图所示,包括两个步骤:(1) 构建词上下文矩阵,(2) 降低其维数。降维有两个原因。首先,原始矩阵非常大。其次,由于很多单词只出现在少数几种可能的上下文中,因此该矩阵可能包含很多无信息的元素(例如,零)。

要估计词/上下文之间的相似性,通常需要评估归一化词/上下文向量的点积(即余弦相似性)。

要定义基于计数的方法,我们需要定义两件事:

alt
  1. 可能的上下文(包括一个词出现在上下文中意味着什么)
  2. 关联的概念,即计算矩阵元素的公式

Co-Occurence Counts

alt

最简单的方法是将上下文定义为 L 大小窗口中的每个单词。词-上下文对 (w, c) 的矩阵元素是 w 在上下文 c 中出现的次数。这是获取嵌入的非常基本(而且非常非常古老)的方法。

Positive Pointwise Mutual Information (PPMI)

alt

这里上下文的定义和之前一样,但是单词和上下文之间关联的度量更加巧妙:positive PMI(或简称 PPMI)。 PPMI 度量被广泛认为是前神经分布相似性模型的最新技术。

潜在语义分析 (LSA):理解文档

alt

潜在语义分析 (LSA) 分析一组文档。虽然在之前的方法中上下文仅用于获取词向量并随后被丢弃,但在这里我们也对上下文感兴趣,或者在本例中是文档向量。 LSA是最简单的主题模型之一:文档向量之间的余弦相似度可以用来衡量文档之间的相似度。

术语“LSA”有时指的是将 SVD 应用于术语文档矩阵的更通用方法,其中术语文档元素可以用不同的方式计算(例如,简单的共现、tf-idf 或其他一些权重)

Reference

[1]

Source: https://lena-voita.github.io/nlp_course/word_embeddings.html

本文由 mdnice 多平台发布

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

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

相关文章

MongoDB 聚合管道的集合关联($lookup)及合并($unionWith)

目前为止,我们已经介绍了一部分聚合管道中的管道参数: $match:文档过滤 $group:文档分组,并介绍了分组中的常用操作:$addToSet,$avg,$sum,$min,$max等。 $add…

python OCR识别验证码

1. 抓取网页验证码图像并保存 import lxml.html, urllib3# 使用urllib3抓取网页数据 http urllib3.PoolManager() html http.request(GET,site).data# 使用lxml解析网页数据 tree lxml.html.fromstring(html) # 解析HTML,补全不完整的格式 fixedhtml lxml.ht…

LeetCode:102. 二叉树的层序遍历

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 可以参考👉LeetCode:二叉树的前、中、后序遍历——如何创建一棵【二…

机器学习 特征工程

文章目录 一、数据预处理1. 缺失值处理1.1 删除1.2 统计值填充1.3 前后向值填充1.4 直接忽略1.5 模型预测 2. 异常值处理 二、特征提取1. 数值型特征提取1.1 标准化与缩放1.1.1标准化(Standardization)1.1.2 归一化(Normalization&#xff09…

STM32F4_定时器精讲(TIM)

目录 1. 什么是定时器? 2. STM32定时器简介 2.1 高级控制定时器 TIM1和TIM8 2.1.1 TIM1和TIM8简介 2.1.2 时基单元 2.1.3 计数器模式 2.1.4 重复计数器 2.1.5 时钟选择 2.1.6 捕获/比较通道 2.1.7 输入捕获模式 2.1.8 其他功能 2.2 通用定时器 TIM2到TI…

算法----删点成林

题目 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。 返回森林中的每棵树。你可以按任意顺序组…

2023年天梯赛模拟赛

//能力有限&#xff0c;只展示一百分代码。前八个题一般是原题&#xff0c;所以不展示题目。 L1-1 嫑废话上代码 #include<bits/stdc.h> using namespace std; int main(){cout<<"Talk is cheap. Show me the code.";return 0; } L1-2 九牛一毛 这是…

Leetcode每日一题——“移除元素”

各位CSDN的uu们你们好呀&#xff0c;小雅兰又来啦&#xff0c;今天&#xff0c;小雅兰的内容是移除元素&#xff0c;下面&#xff0c;让我们进入Leetcode的世界吧 说明: 为什么返回数值是整数&#xff0c;但输出的答案是数组呢? 请注意&#xff0c;输入数组是以「引用」方式…

ChatGPT | 使用new bing的简易教程

1. 教程参考&#xff1a; https://juejin.cn/post/7199557716998078522 2.在参考上述教程遇到的问题与解决 2.1 下载dev浏览器的网址打不开 egde dev下载地址&#xff08;上面网站上的&#xff09;我电脑打不开 换用下面的网址即可 https://www.microsoftedgeinsider.com/z…

在three.js中废置对象

基于three.js子如何废置对象(How to dispose of objects) 前言: 为了提高性能,并避免应用程序中的内存泄露,一个重要的方面是废置未使用的类库实体。 每当创建一个three.js中的实例时,都会分配一定数量的内存。然而,three.js会创建在渲染中所必需的特定对象, 例如几何…

4.11、socket地址

4.11、socket地址1.通用 socket 地址2.专用socket地址1.通用 socket 地址 socket 网络编程接口中表示 socket 地址的是结构体 sockaddr&#xff0c;其定义如下&#xff1a; // socket地址其实是一个结构体&#xff0c;封装端口号和IP等信息。后面的socket相关的api中需要使用…

【c语言】每日一题之汉诺塔类型

目录 前言题目说明描述 题目分析汉诺塔问题 题目代码展示 前言 大佬们&#xff0c;我又回来了&#xff0c;最近也在忙自己的学业&#xff0c;忙着生活对线&#xff0c;也参加了今年的蓝桥杯其他的组&#xff0c;发现今年太难了 &#xff0c;摆烂了。但我想到了读者你们&#x…

前端面试之JavaScript题目,简单全面(持续更新ing...)

数据类型 1.JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f; 类型&#xff1a;JavaScript共有8种数据类型&#xff0c;undefined&#xff0c;null&#xff0c;Boolean&#xff0c;string&#xff0c;number&#xff0c;bigint&#xff0c;symbol&#xff0c;obj…

K-计算面积

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 小w给你三种图形&#xff0c;可能是平行四边形&#xff0c;三角形&#xff0c;梯形&#xff0c;对于给定的TTT个图形&#xff0c;你需要依次回答每个图形的面积&#xff0c;保证答案…

《LeetCode》——LeetCode刷题日记

本期&#xff0c;将给大家带来的是关于 LeetCode 的关于二叉树的题目讲解。 目录 &#xff08;一&#xff09;606. 根据二叉树创建字符串 &#x1f4a5;题意分析 &#x1f4a5;解题思路 &#xff08;二&#xff09;102. 二叉树的层序遍历 &#x1f4a5;题意分析 &#…

docker stats 命令详解

docker stats : 显示容器资源的使用情况&#xff0c;包括&#xff1a;CPU、内存、网络 I/O 等。 docker stats [OPTIONS] [CONTAINER...]OPTIONS 说明&#xff1a; –all , -a :显示所有的容器&#xff0c;包括未运行的。 –format :指定返回值的模板文件。 –no-stream :展…

( “树” 之 BFS) 637. 二叉树的层平均值 ——【Leetcode每日一题】

637. 二叉树的层平均值 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 1 0 − 5 10^{-5} 10−5 以内的答案可以被接受。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[3.00000,14.50000,1…

060202体积弧长-定积分在几何学上的应用-定积分的应用

文章目录 2 体积2.1 旋转体的体积2.2 平行截截面面积已知的立体的体积2.3 例题 3 平面曲线的弧长2.1 直接坐标系2.2 参数方程2.3 极坐标系 结语 2 体积 2.1 旋转体的体积 情形①平面图形由 y f ( x ) , y 0 , x a , x b yf(x),y0,xa,xb yf(x),y0,xa,xb所围成&#xff0c;…

LeetCode——1041. 困于环中的机器人

一、题目 在无限的平面上&#xff0c;机器人最初位于 (0, 0) 处&#xff0c;面朝北方。注意: 北方向是y轴的正方向。 南方向是y轴的负方向。 东方向是x轴的正方向。 西方向是x轴的负方向。 机器人可以接受下列三条指令之一&#xff1a; “G”&#xff1a;直走 1 个单位 “L”…

seata1.5.2+nacos2.10配置教程

seata1.5.2配置教程本文基于nacos2.1.0mysql8.0seata1.5.21.下载安装包 官网&#xff1a;http://seata.io/zh-cn/blog/download.html seata目录结构如图&#xff1a; 2.主要需要修改的配置文件是\seata\conf\application.yml,可参考示例application.example.yml server:port:…