![8e3673500f2ba21ae3f1741db50b117b.png](https://img-blog.csdnimg.cn/img_convert/8e3673500f2ba21ae3f1741db50b117b.png)
词向量
文本数据与结构化统计数据存在较多差异,最为明显的一点是:许多模型不直接接受文本数据输入,需要通过一定的手段先将文本数据转化为数值向量。
最直观的转化方法是独热码(one-hot),即找来一本拥有V个词的词典,给词典内每个词编上从1开始逐次递增的号码,所有词都可以表示为一个长度为V的单位向量,该向量除特定位置上的元素为1外,其余元素均为零。独热码非常直观,缺点也很明显,那就是形成的词向量维度较高,需要消耗大量的计算机资源来储存和处理它,还会遭遇维度诅咒,影响算法效果。那么,我们有没有办法对词向量进行降维?
所谓降维就是将原来长度为V的向量用另一个长度为n<<V的向量表示,这是有可能实现的,因为独热码给出的词向量很稀疏,只有一个元素拥有非零值,绝不是一种高效的信息储存方式。此外,对词向量降维也非常容易,可引入一个维度为
现在问题来了,矩阵
词的相似性
我们想要的低维词向量应该拥有这样一个性质:相似的词拥有相似的词向量。
什么是相似的词向量?两个向量比较相似可以认为是距离比较接近,比如说算一下两个词向量的欧氏距离,距离较小则认为相似度较高。当然,在这里使用的是余弦相似度,即考察两个向量之间的夹角,给出余弦相似度的计算公式如下:
什么是相似的词?大佬对相似词做出的定义是这样的:
words are similar if they appear in similar contexts. --Harris, 1954
意思是说开心一般都是出现在我很开心这样的搭配中,我很在开心这个词的附近,是开心的上下文(contexts)。高兴一般也出现在我很高兴这样的搭配中,我很也是高兴的上下文,这两个词的上下文非常相似,两者就是相似词。
一些用的比较多的搭配也是相似词,比如说我很和开心这两个词也经常出现在相似的上下文中,如:今天又洞房花烛夜了,我很开心、今天又喝旺仔牛奶了,我很开心、今天又享受福报了,我很开心,在这些句子中今天又xxx了同时