[发明专利]一种结合同义词词典和词嵌入向量的问句相似度计算方法有效
| 申请号: | 201811428781.9 | 申请日: | 2018-11-27 |
| 公开(公告)号: | CN109597992B | 公开(公告)日: | 2023-06-27 |
| 发明(设计)人: | 张家重;赵亚欧;王玉奎;付宪瑞;张金清 | 申请(专利权)人: | 浪潮金融信息技术有限公司 |
| 主分类号: | G06F40/247 | 分类号: | G06F40/247;G06F40/30 |
| 代理公司: | 苏州思睿晶华知识产权代理事务所(普通合伙) 32403 | 代理人: | 吴碧骏 |
| 地址: | 215100 江苏省苏州*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了一种结合同义词词典和词嵌入向量的问句相似度计算方法,包括句子级别的相似度融合方法和词语级别的相似度融合方法;将句子级别的相似度融合方法和词语级别的相似度融合方法进行结合计算,本发明具有以下优点:相对于单纯使用词向量的方法,该方法充分利用了人工编写的同义词词典,保证了词语相似度计算的准确性;对于词典缺失的流行词和专业词汇,该方法使用词向量方法计算相似度,有效的避免了单一使用词典方法,在词汇缺失的情况下相似度无法计算的问题;该方法融合了同义词词典和词向量两种相似度计算方法,考虑的因素更多,结果更加准确。 | ||
| 搜索关键词: | 一种 结合 同义词 词典 嵌入 向量 问句 相似 计算方法 | ||
【主权项】:
1.一种结合同义词词典和词嵌入向量的问句相似度计算方法,其特征在于:包括句子级别的相似度融合方法和词语级别的相似度融合方法;(一)句子级别的相似度融合方法:待计算相似度的两个问句分别为S1、S2,对其进行分词处理,可得
其中,m、n分别是问句S1、S2所包含词语的数目,
表示第p个问句中的第q个词语;第一步,计算问句之间的词典相似度Simdict(S1,S2),对于问句S1、S2中的任意词语对
查询同义词词典,计算得出
的词典相似度
然后将计算结果排列成大小为m*n的词典相似度矩阵Mdict,取Mdict矩阵每一行的最大值和每一列的最大值,相加取平均得出问句S1、S2的词典相似度Simdict(S1,S2);第二步,计算问句之间的词向量相似度,首先使用词向量计算工具计算语料库中所含词语的词向量,对得出的词向量进行归一化处理,然后对问句S1、S2中的每一个词语对
计算余弦相似度
最后将所有的相似度相加取平均,得到问句S1、S2的词向量相似度Simvec(S1,S2);第三步,融合上述两个相似度,将上述计算结果进行加权平均,计算公式如下:Sim(S1,S2)=ω1Simdict(S1,S2)+ω2Simvec(S1,S2),其中ω1、ω2为权重系数;(二)词语级别的相似度融合方法:其计算步骤如下:第一步,计算问句S1、S2中每个词语
的词典相似度
生成大小为m*n的词典相似度矩阵Mdict,当
或者
存在缺失,则
值置为-1;第二步,计算问句S1、S2中每个词语
的词向量相似度
同样生成大小为m*n的相似度矩阵Mvec;第三步,针对Mdict和Mvec的每一个元素,生成融合后的相似性矩阵Mf,计算公式为:
其中,Mf(i,j)、Mdict(i,j)和Mvec(i,j)分别为融合相似性矩阵、词典相似性矩阵和词向量相似性矩阵对应的第i行、第j列元素,ω1、ω2为融合权重系数。第四步,取Mf每一行的最大值和每一列的最大值相加,然后取平均,得到问句S1、S2的相似度Sim(S1,S2);将句子级别的相似度融合方法和词语级别的相似度融合方法进行结合计算,步骤如下,步骤1,使用切词工具对要进行相似度计算的问句S1、S2进行分词,得到S1对应的词语集合
S2对应的词语集合
步骤2,计算问句S1、S2中每个词语之间词典相似度
生成词典相似性矩阵Mdict。在相似度的计算步骤如下所示:第一步,获取词语
对应的词语八位类别编号
词语
对应的词语八位类别编号
然后,计算两个编码之间的差异信息H,H计算公式如下:
其中,
分别表示取
编号的前n位;第二步,计算词林距离N,定义为:N=5-H,即词林的最大层次减去深度H,此时,词语对
的词林相似度计算公式定义为:
针对词汇缺失的情况,采用句子级别的融合方法,则将
定义为0;采用词语级别的融合方法,则将
定义为-1;第三步,按照上述计算结果,将相似度按行、列排列,形成m行n列的相似性矩阵Mdict,形式如下:
第四步,取Mdict每一行的最大值Mdict_max(i)和每一列的最大值Mdict_max(j),累加取平均得到问句S1、S2的相似度,计算公式为:
采用词语级别的融合方法,忽略第四步,直接转步骤S3;步骤S3,计算问句S1、S2中每个词语之间词向量相似度
生成词向量相似性矩阵Mvec,或者直接生成问句之间的词向量相似度
第一步,利用python语言编写网络爬虫,爬取百度百科、wiki百科中文版、新浪、搜狐相关网站的相关文字信息,形成训练语料;第二步,利用词嵌入计算工具计算训练语料中出现词汇的词向量;第三步,采用句子级别的融合方法,则问句S1、S2的词向量相似度可按如下公式计算:
其中![]()
分别为词语
所对应的词向量;计算完成后转步骤S4;采用词语级别的融合,忽略第三步,直接转入第四步。第四步,计算问句S1、S2中每个词语
之间的余弦距离,得到词向量相似度
按照上述计算结果,将词向量相似度按行、列排列,形成m行n列的相似性矩阵Mvec,形式如下:
步骤S4,采用句子级别的融合方法,利用公式Sim(S1,S2)=ω1Simdict(S1,S2)+ω2Simvec(S1,S2)计算得到问句S1、S2的融合相似度Sim(S1,S2),算法结束;采用词语级别的融合方法,转步骤S5。步骤S5,计算词汇级别的问句相似度。第一步,根据上述步骤获得的词典相似性矩阵Mdict和词向量相似性矩阵Mvec,利用公式
得到融合后的词语相似性矩阵Mf。第二步,取Mf每一行的最大值Mf_max(i)和每一列的最大值Mf_max(j),累加取平均得到问句S1、S2的相似度。计算公式为:![]()
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮金融信息技术有限公司,未经浪潮金融信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811428781.9/,转载请声明来源钻瓜专利网。





