一种基于Word2Vector与编辑距离的句子相似度计算方法
2017-04-08陆尹浩
陆尹浩
摘要:随着各种问答系统的流行与聊天机器人的火热,对句子相似性的比较和处理越来越成为各类类似系统的核心部分。因此,研究并设计出一种好的句子相似性比较方法变得越来越关键。该文基于一种深度学习模型Word2Vector并且结合编辑距离算法提出了一种句子相似度计算方法,给出了具体的设计思路,并且通过实验验证了该方法的有效性,最后总结了该方法的优缺点。
关键词:句子相似度计算;Word2Vector;编辑距离;Edit Distance
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2017)05-0146-02
1 背景
句子的相似度计算在自然语言处理中有着十分广泛的运用。例如,机器翻译中相似性文档的判断和提取,在问答系统中相似性问题的匹配或者问题与答案之间的匹配判断等。对于这个相似度的刻画,主要分为几个不同的等级,具体为语法层面的相似度,语义层面的相似度,与语用层面的相似度。其计算难度也是层层递进。在具体的应用中,只要能达到语义层面的判断基本上就可以达到基本的需求了。目前对句子的语义层面的相似度计算方法主要有基于相同词汇的方法,使用语义词典的方法、使用编辑距离的方法,以及基于统计的方法等。其中,基于相同词汇的方法比较简单,但是其缺点也十分的明显,就是对于句子中同义词的判断存在不足。相对于基于相同词汇的方法,使用语义词典可以很好的处理句子中同义词的情形,但是语义词典也存在着需要不断地更新和维护词典库的缺点,而且如果只是单一的使用语义词典会缺乏对句子本身结构的分析,对最后的计算结果也有较大的影响。编辑距离一般使用在对句子的快速模糊匹配上,由于其规定的编辑操作有限,而且对于同义词的替换也缺乏判断,因此最后的准确率也不是很理想。本文基于编辑距离的方法,利用深度学习模型Word2Vector来增强其编辑操作的灵活程度,从而克服了单纯使用编辑距离对句子的语义理解不足的缺点。本文的第一部分主要介绍了相关的算法和基础知识。第二部分主要描述了基于Word2Vector与编辑距离的句子相似度计算方法,第三部分给出了测试结果以及对该方法的优缺点讨论,最后第四部分是结语。
2 基础知识
2.1 编辑距离
编辑距离方法是指两个句子间,由一个句子转换到另一个句子所需的最少的编辑操作次数。这里的编辑操作共有“插入”、“删除”和“替换”三种。例如:
我是中国人 -> 你是中国人 (把“我”替换为“你”)
我是中国人 -> 我爱中国人 (把“是”替换为“爱”)
我是中国人 -> 是中国人(把”我”删除)
利用这种方法对两个句子进行相似度比较就像引言中分析的,其优点是简单,速度快。但是缺点也十分明显,由于编辑操作缺乏一定的灵活性,使得其无法进一步的判断语义层面的含义,比如同义词,同类、异类词等,因此,该方法适合于句子间的模糊匹配。
2.2 Word2Vector
Word2Vector是一种将词汇表示转化为空间向量的技术,主要利用了深度学习的思想对语料进行训练,通过将句子进行分词,然后将每个词汇映射成N维的向量,这样可以将两个词汇的相似度比较转化为对两个向量的相似度比较,可以利用cosine 相似度、欧氏距离等数学工具对词汇进行语义分析,其采用了一个具有三层的神经网络,并且根据词频用Huffman编码技术将相似词频词汇的隐藏层激活的内容出于大致相同的位置,如果哪个词汇出现的频率很高,那么它激活的隐藏层的数目就很少,通过这样处理可以使得计算的复杂度大幅度的降低。最后,通过Kmeans聚类方法,将相似的词向量聚在一起,最后形成了Word2Vector的词聚类模型。
Word2Vector的输出结果可以利用在NLP的很多地方,比如聚类,查找一个词的同义词,或者进行词性的分析等。
3 基于Word2Vector与编辑距离的句子相似度计算方法
3.1 问题描述
3.2 定義编辑操作
3.3 按照Word2Vector的词向量距离来定义编辑操作的系数
由Word2Vector训练好的模型会将各个词汇生成一个与其相对应的词向量,计算两个词汇对应的词向量便可以知道这两个词汇的相似度。如果值为1,说明这两个词汇完全一致,如果为0,则表示完全没有关系。
这里考虑一种情形,当利用替换操作进行两个词汇的替换时,如果两个词汇意思是相近的,那么它的替换代价会相应的低一点,反之,则会相应的高。举个例子:
我爱故宫
我爱天安门
我爱苹果
这三个句子我们可以知道1,2两句更加的接近,因为它代表的都是景点。因此待匹配的句子1应该会匹配上句子2。为了将词语的相似度考虑进去,这里引入Word2Vector的词向量来改进替换操作的系数。
假设两个词汇的向量距离为k,k∈[0,1]。考虑到k的值的大小与编辑距离的大小是相反的,这里将更新后的替换操作的系数设定为1/(1+k)。这样更新后的替换操作会根据不同词汇之间的距离发生变化,变化范围在[0.5,1]之间。而且这个值的范围不会打破编辑操作里面的平衡,即替换=插入+删除。更新后的编辑距离公式L=a+1/(1+k)*b + c。
4 实验及结果分析
为了验证改进的编辑距离算法的有效性,本文自行构造了实验所需的句子集合,本文所用的测试句子一共有400句。其中380句为来自各个不同领域类型的句子。比如,体育,娱乐,军事,文化,科技,教育等。另外20句为没有意义的干扰句。这里从380个句子中挑选100句作为参考句子,通过人工评价,比较测试结果。这里评价按照结果的质量分为3类:1、准确,2、相关,3、不相关。其中查准率P的定义如下所示:
通过实验可以发现,经过改进的编辑距离句子相似度匹配算法在准确度上有了一定的提高和改进,其中原因便是调整后的编辑距离算法将同义词近义词等通过词向量给计算出来。但是在实验中也发现了一个现象,就是相对来说判断准确的句子都是一些短小句,即长度不是很长的句子,而判断不相关的句子明显长度要更长一些。事实也是如此,当句子的长度较长时,通过分词将一个句子分为一个个短的词汇来利用词向量来理解会破坏句子的整体含义。
5 结束语
本文通过利用Word2Vector模型将词向量计算引入到编辑距离算法的编辑操作中,从而使得改进后的编辑算法对句子具有一定的语义理解能力。通过实验也比较好的验证了此方法的有效性,尤其是对近义词与同义词的理解上有了很大的提升,而算法本身的时间复杂度相较于编辑距离算法则没有改变多少。
另外,通过实验也发现,此方法对短句子的效果非常的明显,而对于一些长句则还是具有较大的误差。从对句子本身的分析角度上看,还需要通过对句子进行建模才可以达到比较好的理解匹配。
参考文献:
[1] 李彬, 刘挺, 秦兵, 等. 基于语义依存的汉语句子相似度计算[J]. 计算机应用研究, 2003, 20(12): 15-17.
[2] 孔胜, 王宇. 基于句子相似度的文本主题句提取算法研究[J]. 情报学报, 2011, 30(6): 605-609.
[3] 贾明静, 董日壮, 段良涛. 问句相似度计算综述[J]. 电脑知识与技术: 学术交流, 2014 (11): 7434-7437.
[4] 贾熹滨, 李宁, 靳亚. 用于文本情感极性分析的动态卷积神经网络超限学习算法[J]. 北京工业大学学报, 2017, 43(1): 28-35.
[5] Xu G, Cao Y, Zhang Y, et al. TRM: Computing Reputation Score by Mining Reviews[J]. 2015.
[6] 車万翔, 刘挺, 秦兵, 等. 基于改进编辑距离的中文相似句子检索[J]. 高技术通讯, 2004, 14(7): 15-19.
[7] 汪卫明, 梁东莺. 基于语义依存关系匹配的汉语句子相似度计算[J]. 深圳信息职业技术学院学报, 2014 (1): 56-61.
[8] 裴婧, 包宏. 汉语句子相似度计算在 FAQ 中的应用[J]. 计算机工程, 2009, 35(17): 46-48.
[9] 刘宝艳, 林鸿飞, 赵晶. 基于改进编辑距离和依存文法的汉语句子相似度计算[J]. 计算机应用与软件, 2008, 25(7): 33-34.
[10] 刘群, 李素建. 基于《 知网》 的词汇语义相似度计算[J]. 中文计算语言学, 2002, 7(2): 59-76.