语言模型(四)—— Word Embedding之Word2vec

在之前的几次笔记中,我们已经学习过几种语言模型了,今天要看的Word Embedding在传统的神经网络语言模型中也提及过,今天我们再系统地看一下Word Embedding中一个重要方法Word2vec,以及Word2vec包含的两个模型的基本原理及训练过程。

文本表征

在NLP中,文本的表征是一项必不可少的工作,因为文本是一种非结构化的数据信息,是不可以直接被计算的。文本表征就是用一堆结构化的数据(比如数组、向量)来表征某个词语或者某段文本,这样原本非结构化的信息就可以被转化为结构化的信息,计算机也就能计算处理了。文本表征的方法有很多,下面简单回顾一下常用的几种,以便我们理解Word-Embedding的作用。

One-hot编码

这个我们之前在语言模型(二)—— 神经网络语言模型(NNLM)中已经介绍过了,这里再简单介绍一下。

假设我们有一个词表:

[苹果,茄子,香蕉,蘑菇,菠菜]

苹果香蕉的one-hot编码就可以表示为:

苹果:[1,0,0,0,0]

香蕉:[0,0,1,0,0]

可以看得出来,这是一种离散的表示方法,就是在词表中找位置,即该词语在词表中的位置映射到特征向量中的位置的值为1,其他位置都为0。one-hot编码有两大主要缺点:

  1. 数据稀疏问题,大词表计算时计算量大,计算和存储效率都很低。
  2. 词表征向量之间相互正交,cosine余弦相似度为0,无法表达词语之间的相似度关系。

Bag of Words

词袋模型,也称为计数向量表示。基本过程就是通过语料构建词袋,再将语料通过词计数的方式表达出来。举个例子:

句子A:Jane wants to go to Shenzhen

句子B:Bob wants to go to Shanghai

构建词表:[Jane, wants, to, go, Shenzhen, Bob, Shanghai]

句子A表示:[1,1,2,1,1,0,0]

句子B表示:[0,1,2,1,0,1,1]

词袋模型的不足在于:

  1. 语句中词语的顺序在最后的表征向量中已经丢失。
  2. 词语的重要性关系未得到体现。

TF-IDF与N-gram

TF-IDF与N-gram也算是文本表征的方式,之前的笔记TF-IDF的原理及代码实现语言模型(一)—— 统计语言模型n-gram语言模型已经有过详细说明,这里不再复述。

Word-Embedding

词嵌入模型基于的基本假设是出现在相似的上下文中的词含义相似,以此为依据将词从高维稀疏的独热向量映射到低维稠密的连续向量,从而实现对词的语义建模。比如,在一个大的语料库中,词语“博客”的One-hot编码是[0,0,0,0,0,0,0,1,0,……,0,0,0,0,0,0,0],维度是词表的大小(假设为20000),用一个五维的词向量来表达可能是[0.286,0.791,-0.177,0.10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值