word2vector

中文分词、向量化,这两篇写的很好!!!
https://www.cnblogs.com/Newsteinwell/p/6034747.html

https://blog.csdn.net/sinat_29694963/article/details/79177832

 

最初,人们想用一串数字表示一段文字,用的是one-hot置换法。就是将一篇文章中所有不重复的词的个数,作为词汇表的大小,词汇表有多大,这个向量就有多长。那么对于词汇表中每一个词的向量,就在相应的位置置1. 比如说一篇文章中有:

语料:“I am Shirley Zhang”, "I am an engineer", "I am a lovely girl"

那么由语料中出现的所有不重复的单词构成的词汇表就是[Shirley, Zhang, I, am, an, engineer, a, lovely, girl]

那么根据以上词汇表,得出Shirley这个词的词向量就是[1, 0, 0, 0, 0, 0, 0, 0, 0]

那么对于文本“I am Shirley Zhang”, 通过one-hot这种词向量转化就变为

[0, 0, 1, 0, 0, 0, 0, 0, 0]

[0, 0, 0, 1, 0, 0, 0, 0, 0]

[1, 0, 0, 0, 0, 0, 0, 0, 0]

[0, 1, 0, 0, 0, 0, 0, 0, 0]

one-hot编码的好处就是简单,缺点也是显而易见的,词向量的维度会随着词汇表的增大而急剧增大,词向量里面大多数的元素都是0,十分浪费存储空间,表达效率低下。也没有考虑到上下文等语义信息。

针对以上缺点,改进的分布式编码算法产生了。

分布式编码

分布式的思想就是通过训练出来的模型,把每个词都计算并且映射到一个比较短的词向量上来。这个词向量上每一个元素的值不再只是单纯的用0,1表示,而是某种含义的离散值。词向量的维度也不再是词汇表的长度,而是可以根据需求自己设置的。那么它长什么样子呢?

比如说engineer映射成四维空间的一个词向量 [0.56,0.12,0.67,0.92]

分布式编码的一个典型就是word2vector。

word2vector采用的语言模型

word2vector一般采用的模型有两种,CBOW模型和Skip-gram模型,本文以CBOW模型为例。(后面关于这两个模型的介绍太负责了,略。。。。。)
 

.什么是word2vector?

我们先来看一个问题,假如有一个句子 " the dog bark at the mailman"。
假如用向量来表示每个单词,我们最先想到的是用one hot 编码的方式来表达每个单词,具体来说。
the 可以表示为 [1,0,0,0,0]
dog 可以表示为 [0,1,0,0,0]
bark 可以表示为 [0,0,1,0,0]
at 可以表示为[0,0,0,1,0]
mailman可以表示为[0,0,0,0,1]


我们可以看到每个单词其实就用一个向量来表示。我们发现几个问题:
第一,每个向量之间相互正交的(内积为0)。也就是说词与词之间是没有任何关系的。
第二,每个词的向量维度和不同词的个数有关。比方说,在上面的这个句子里,有5个不同的词,所以向量的维度是5。然而往往现实中,一篇文章的中不同的词的个数是很多的。这样,向量的维度会非常的高。
这种对词的向量表示方法存在着以上的问题,忽略了词与词之间的关系(比如说,dog和cat都是动物,并非完全无关系)。维度太高的向量作为模型输入会导致模型变的复杂(模型复杂需要更多的训练样本才能够收敛)

那么是否存在一种更加合理的对词的用向量的表达方式呢?有的,其实就是word embedding。
word embedding说的简单一点其实就是将高维稀疏的向量降维成稠密的低维向量。(一种高维到低维的映射)

那么如和实现word embedding?
w2v其实就是一种高效实现word embedding的工具。
所以,如果用一句话来描述word2vector的话你会怎么描述?简单的说,我觉得可以这么说w2v其实是一种将单词转化向量的工具。这一种向量的其实是对单词更有效的表达。

中文分词、向量化,这两篇写的很好!!!
https://www.cnblogs.com/Newsteinwell/p/6034747.html

https://blog.csdn.net/sinat_29694963/article/details/79177832

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小金子的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值