论文读书笔记-Alternate Equivalent Substitutes:Recognition of Synonyms Using Word Vectors

来源:互联网 发布:php如何抓取网页数据 编辑:程序博客网 时间:2024/06/04 00:33

转载于:http://blog.csdn.net/jj12345jj198999/article/details/26257903

作者:Tri Dao, Sam Keller, Alborz Beinood

这篇论文主要介绍了如何基于词向量来寻找同义词,流程包括使用word2vec进行训练得到词向量,然后用k-means方法查找同义词。同时,文中提出了一种查找同义词准确率的方法用于实验对比之中。

 

本文要点如下:

1、  数据收集

文中主要使用下面四个方面的数据:文本语料(用于训练词向量)、词列表(限定查找同义词的范围)、对应同义词列表(用于实验中的标准数据)、文本表示框架。

 

2、  模型选择

本文对比了两种模型,Bag of Words model和Skip-gram model。

Bag of Words model:更确切的说应该是CBOW(ContinuousBag of Words Model),这才是word2vec里面所采用的两种模型之一。该模型把一个句子表示成一个词对应其频率的映射表。由于没有考虑到词先后的位置关系,该模型不会考虑词的上下文语义关系。结构如下图:

 

 

Skip-gram model:该模型其实是n-gram模型的扩展,考虑一个窗口内的上下文词语,结构如下:


 

作者提出这里之所以要用两种模型是为了便于比较,其中CBOW模型得到的结果被认为是下限,一般来说Skip-gram模型的结果要比CBOW模型好。

 

3、  同义词识别算法


这里同义词识别方法其实等同于k-means方法,只不过最后加上了两个衡量依据,包括同一个类别中同义词的比例,以及该比例与期望比例的比值。为了得到后者,需要计算和某个词的同义词与其属于同一个类别的概率,然后再统计出全体词的平均概率。

 

4、  实验对比

这里使用CBOW和Skig-gram两种模型进行词向量的训练,在不同的窗口值大小,不同词向量维度下词向量训练的准确率如图:


从上图可以看到在窗口值越大,词向量维度越多的情况下训练准确率越高。同时,一个词的同义词属于相同类别的概率与随机词属于相同类别的概率比值也可以得到,值越大证明同义词识别率越高:





从这两表中能够发现虽然词向量的维度加大能够提高训练的准确率,但是同义词识别率却下降了,最佳的词向量维度应该是10-20之间。原因是维度越高虽然对词的表征性越好,但这些维度特征中并不是所有的维度都是在表征这个词,有时候是包括了在上下文中如何使用该词,反而产生了一些噪声数据,在计算某个词与其同义词之间的距离时,这些无关紧要的数值会让距离变大。只有把维度限定在一定范围内,让大部分向量都表征一个词的概念上的相关意义时,一个词与其同义词之间的距离才会较小。

下面是在不同向量维度下词聚类的结果:


上图是维度为200时的聚类结果,红黑色各为同义词,可以看到并不理想。


上图为向量维度为20的情况,可以看到这里聚类结果较好。

最后是在不同窗口,不同向量维度下词与其同义词的距离:


依然还是维度越高,距离越大。

 

 

在最后作者指出虽然通过词向量再聚类的方法能够得到有意义的结果,但在寻找同义词上只具有辅助作用,并不能算是一个好方法。由于每个类别中含有成千上百个词,无法找到一对确定的同义词。不过,可以把该方法与句法语法分析结合起来使用。



0 0