[发明专利]一种结合同义词词典和词嵌入向量的问句相似度计算方法有效
| 申请号: | 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);
将句子级别的相似度融合方法和词语级别的相似度融合方法进行结合计算,步骤如下,步骤S1,使用切词工具对要进行相似度计算的问句S1、S2进行分词,得到S1对应的词语集合S2对应的词语集合
步骤S2,计算问句S1、S2中每个词语之间词典相似度生成词典相似性矩阵Mdict;
相似度的计算步骤如下所示:
步骤S21,获取词语对应的词语八位类别编号词语对应的词语八位类别编号然后,计算两个编码之间的差异信息H,H计算公式如下:其中,分别表示取编号的前n位;
步骤S22,计算词林距离N,定义为:N=5-H,即词林的最大层次减去深度H,此时,词语对的词林相似度计算公式定义为:
针对词汇缺失的情况,采用句子级别的融合方法,则将定义为0;采用词语级别的融合方法,则将定义为-1;
步骤S23,按照上述计算结果,将相似度按行、列排列,形成m行n列的相似性矩阵Mdict,形式如下:
步骤S24,取Mdict每一行的最大值Mdict_max(i)和每一列的最大值Mdict_max(j),累加取平均得到问句S1、S2的相似度,计算公式为:
采用词语级别的融合方法,忽略步骤S24,直接转步骤S3;
步骤S3,计算问句S1、S2中每个词语之间词向量相似度生成词向量相似性矩阵Mvec,或者直接生成问句之间的词向量相似度
步骤S31,利用python语言编写网络爬虫,爬取百度百科、wiki百科中文版、新浪、搜狐相关网站的相关文字信息,形成训练语料;
步骤S32,利用词嵌入计算工具计算训练语料中出现词汇的词向量;
步骤S33,采用句子级别的融合方法,则问句S1、S2的词向量相似度可按如下公式计算:其中分别为词语所对应的词向量;计算完成后转步骤S4;采用词语级别的融合,忽略步骤S33,直接转入步骤S34;
步骤S34,计算问句S1、S2中每个词语之间的余弦距离,得到词向量相似度按照上述计算结果,将词向量相似度按行、列排列,形成m行n列的相似性矩阵Mvec,形式如下:
步骤S4,采用句子级别的融合方法,利用公式Sim(S1,S2)=ω1Simdict(S1,S2)+ω2Simvec(S1,S2)计算得到问句S1、S2的融合相似度Sim(S1,S2),算法结束;采用词语级别的融合方法,转步骤S5;
步骤S5,计算词汇级别的问句相似度;
步骤S51,根据上述步骤获得的词典相似性矩阵Mdict和词向量相似性矩阵Mvec,利用公式得到融合后的词语相似性矩阵Mf;
步骤S52,取Mf每一行的最大值Mf_max(i)和每一列的最大值Mf_max(j),累加取平均得到问句S1、S2的相似度;计算公式为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮金融信息技术有限公司,未经浪潮金融信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811428781.9/1.html,转载请声明来源钻瓜专利网。





