词向量就是用来将语言中的词进行数学化的一种方式,顾名思义,词向量就是把一个
词表示成一个向量。
主要有两种表示方式,下面分别介绍,主要参考了&皮果提在知乎上的问答,也就是
参考文献【】。
2.1.1 One-Hot Representation
一种最简单的词向量方式是 ',就是用一个很长的向量来表示一
个词,向量的长度为词典的大小,向量的分量只有一个 ,其他全为 , 的位置对应该
词在词典中的位置。举个例子,
“话筒”表示为 ( )
“麦克”表示为 ( )
每个词都是茫茫 海中的一个 。
这种 *'+如果采用稀疏方式存储,会是非常的简洁:也就是给每个
词分配一个数字 ,-。比如刚才的例子中,话筒记为 ,麦克记为 .(假设从 开始记)。
如果要编程实现的话,用 /表给每个词分配一个编号就可以了。这么简洁的表示方法配
合上最大熵、012、3+4等等算法已经很好地完成了 #$%领域的各种主流任务。
但这种词表示有两个缺点:()容易受维数灾难的困扰,尤其是将其用于 -
$的一些算法时;()不能很好地刻画词与词之间的相似性(术语好像叫做“词汇
鸿沟”):任意两个词之间都是孤立的。光从这两个向量中看不出两个词是否有关系,哪怕
是话筒和麦克这样的同义词也不能幸免于难。
所以会寻求发展,用另外的方式表示,就是下面这种。
2.1.2 Distributed Representation
另一种就是 -5+这种表示,它最早是 /于 .年提出的,
可以克服 '的缺点。其基本想法是直接用一个普通的向量表示一个词,
这种向量一般长成这个样子:( 678 6678 67 78 7),也就是普通的向量
表示形式。维度以 维和 维比较常见。
当然一个词 怎么表示成这么样的一个向量是要经过一番训练的,训练方法较多 ,
!" 是其中一种,在后面会提到,这里先说它的意义。还要注意的是每个词在不同的
语料库和不同的训练方法下,得到的词向量可能是不一样的。
词向量一般维数不高,很少有人闲着没事训练的时候定义一个 维以上的维数,
所以用起来维数灾难的机会现对于 ' 表示就大大减少了。
由于是用向量表示,而且用较好的训练算法得到的词向量的向量一般是有空间上的意
义的,也就是说,将所有这些向量放在一起形成一个词向量空间,而每一向量则为该空间
中的一个点,在这个空间上的词向量之间的距离度量也可以表示对应的两个词之间的“距
离”。所谓两个词之间的“距离”,就是这两个词之间的语法,语义之间的相似性。
一个比较爽的应用方法是,得到词向量后,假如对于某个词 9,想找出这个词最相似
的词,这个场景对人来说都不轻松,毕竟比较主观,但是对于建立好词向量后的情况,对
评论30
最新资源