NLP学习笔记01-词向量

  1. 什么是词(字)向量?
    将单词(apple、吃饭)用向量的形式进行表示,比如将单词“吃饭”表示为一个三维向量x=[x1,x2,x3]。一个词语或者一个字在NLP中被称为一个token。

  2. one-hot来编码字典
    比如一个汉语字典有3个单词“(index:0)吃饭”、“(index:1)睡觉”、“(index:2)打牌”构成,则one-hot编码结果如下:

单词one-hot编码
吃饭001
睡觉010
打牌100

经过one-hot编码以后,一个单词就被编码为一个向量,该向量只有一个元素为1,其余全为0;
one-hot编码的缺点:
(1)特征稀疏。one-hot编码具有很大的稀疏性,例如一个语料库有10000个单词,则每一个单词都被编码为一个长度为10000的向量,而该向量则含有9999个0。
(2)无法表征词与词之间的相互关系。因为one-hot编码后的任意两个词语都是正交的。
所以提出了更高效的Embedding(嵌入)编码方法。

  1. 使用Embedding将单词的one-hot编码格式转换为词向量形式
    所谓的Embedding其实就是指一个线性变换矩阵,通过该变换矩阵,将one-hot编码格式,转换为词向量形式。

    这个Embedding矩阵,是需要训练的,不过前人已经训练好了很多中文、英文等语料库的Embedding矩阵,可以直接拿来使用。

Embedding编码的优势:在这里插入图片描述
当单词以词向量的形式表达出来以后,就可以计算两个单词之间的相关性,本质是计算两个词向量之间的相关性,从几何的角度来讲:两个词向量之间的相关性越高,向量之间的夹角就越小,反之亦然。
Embedding矩阵的维度:height=length(one-hot_vector),width=length(word_vector)
即如果一个词的one-hot编码长度为100,通过一个维度为100(height)*20(width)的Embedding矩阵之后,该词的词向量的长度为20维。

  1. 句向量
    如果我们需要分析两个句子之间地相似性,则需要将句子表示成句向量的形式,最简单的句向量的构造方式就是单纯地将句子中各个词向量相加,例如句子:“我 吃 了 饭”,
单词词向量
0.1,0.1,0.1,0.1
0.2,0.2,0.2,0.2
0.3,0.3,0.3,0.3
0.4,0.4,0.4,0.4

则该句子的句向量为:[1.0,1.0,1.0,1.0],有了句向量,就可以计算句子之间的相关性。

(文中所用图片来自百度飞桨Ai Studio 平台课程《基于深度学习的自然语言处理 》)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值