APP下载

基于句子的多属性融合相似度计算方法①

2022-05-10袁绍正周艳平

计算机系统应用 2022年4期
关键词:词频余弦计算方法

袁绍正,周艳平

(青岛科技大学 信息科学技术学院,青岛 266061)

计算句子相似度是自然语言处理领域研究的一个基础且重要的工作,有着广泛的应用方向,多用于智能问答、信息检索、语义分析和文本分类等场景.

目前对于句子相似度的研究停留在语义理解范围,依托越来越庞大的数据库做大量的仿真,做到让机器理解人类的语言,但现有的句子相似度计算方法主要分为两大类:基于统计的方法和基于深度学习的方法[1].典型的方法有莱文斯坦距离、BM25、TF-IDF、Word2Vec余弦相似度、Jaccard 系数相似性计算等.

国内外各个学者对句子相似度的研究做了广泛的探索.Tian 等[2]提出一种基于同义词表的改进Word2Vec句子相似度算法,通过构建同义词表和融合词向量来提高句子相似度计算的准确性;Wilson 等[3]提出一种使用组合语义方法来测量文档相似性的有效方法,该方法结合了多个语义计算;文献[2,3]的研究由于语义工具和应用逻辑的效率决定了应用程序的准确度和整体性能,待进一步提升;Goz 等[4]研究基于关键字的社交网络相似性的适用性;Ruan 等[5]计算句子相似度是将Word2Vec 方法和词嵌入相似度方法结合,二者对于关键词词性信息稍欠考虑;翟社平等[6]提出多特征的句子词形、词序及句长特征融合的相似度计算方法,由于句子关键词存在一词多义,只考虑了句子的字面特征,将导致相似度匹配不准确.

句子由多个词组成也包含多种属性,句长度、词出现的频率和词在句中的词性以及其在句中的顺序对句子语义的影响度不同,需综合考虑到句子深层和表层所有因素[7].因此本文以句子的语序结构、词性信息和形态结构等特点为核心要素,构建研究领域本体库,通过给各属性分配权重,提出一种基于句子的多属性融合相似度计算方法,以提升句子相似度计算的合理性.

1 相似度概念

1.1 句子相似度

文本相似度一般指文本在语义上的相似程度[8],句子相似度指的是句子在语义上的相似程度,用来评估句子之间符合程度.如果两个句子之间符合程度高,那两者一定有相似或相同的属性,令SIM(S1,S2)作为两个句子S1和S2的相似度,则其具有以下几个特点:

(1)SIM(S1,S2)∈[0,1]∩SIM(S1,S2)∈R,表示两个句子相似度的取值;

(2)SIM(S1,S2)=0,表示句子之间没有任何相同的属性,两个句子不相似;

(3)SIM(S1,S2)=1,表示两个句子在形态结构、语序结构、语义信息等方面具有完全相同的属性;

(4)SIM(S1,S2)=SIM(S2,S1),表示两个句子相似且具有对称性.

1.2 余弦相似度

两个句子的相似度可以用向量余弦值的值来衡量,称为余弦相似度[9].首先,将两个句子数字化变成向量,其次,计算其夹角余弦cos(θ),衡量两个向量之间差异的大小.余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近0,夹角趋于90 度,表明越不相似.如图1所示,向量a和向量b的余弦夹角小于向量a和向量c的余弦夹角,表示a和b具有更高的相似度.

图1 向量的余弦相似度

将句子S1和S2以向量表示:

则句子的余弦相似度计算公式为:

2 基于句子的多属性融合相似度计算方法

一个句子除包含的关键词外,也不能忽略自身的一些属性,比如词频、词序、词性和句长,本文将4 个属性进行加权融合得到句子相似度.句子之间在词语形态上的相似度,即出现共有关键词的频率为词频相似度;句子之间共有关键词的相对位置关系的相似度为词序相似度;句子之间共有关键词的词性的相似度为词性相似度;两个句子的长度的关系为句长相似度.

传统方法对句子进行分词、去停等操作提取关键词进行表面特征的相似度比较,这是不全面的,中文自然语言不同于英文自然语言,中文有着丰富且灵动的表达形式.如词性方面,“退役士兵有什么需要?”与“退役士兵需要有什么?”,此处的两个“需要”字面特征一致,本质却不同,名词和动词的词性不同导致句子所表达的意思有差别.词性序列如表1所示.

表1 句子关键词词性

本文将使用哈尔滨工业大学开发的在线语言技术平台(language technology platform,LTP)[10]进行分词并得到所需的句子属性信息.LTP 处理后的结果如图2.

图2 分词和词性标注的结果

2.1 词频相似度计算方法

改进基于向量空间模型TF-IDF(term frequencyinverted document frequency)的词频计算方法[11].TFIDF 简单结构没有考虑词语的语义信息,无法处理一词多义与一义多词的情况.

采用词语逆频率方式计算加权算法TF-IWF(term frequency-inverse word frequency),将句子S1和S2各自的词频向量映射到向量空间中,其中为关键词wi的词频-逆词频率,为关键字wi在文本中出现的频率,即TF 值,表示关键词wi出现的次数与所有词汇量的比值,iwfwi为逆词频率,即IWF 值,表示为所有词语的频数之和与关键词wi出现的频数和的比值.结合向量余弦相似度方法[12]:

2.2 词序相似度计算方法

句子中共有关键词需考虑其相对位置关系,词序相似度是共有关键词在两个句子中的位置相似度,词位置顺序不同导致句子意思不同.句子S1=“青岛籍退役士兵在北京服役政策”,句子S2=“北京籍退役士兵在青岛服役政策”.经词性和词频相似度计算,S1和S2相似度是100%,但实际意义差别较大,采用逆序数与向量距离相似度度量方法[13,14]融合计算词序相似度.

举例说明,S1的中心词={‘青岛’,‘退役士兵’,‘北京’,‘服役’,‘政策’};S2的中心词={‘北京’,‘退役士兵’,‘青岛’,‘服役’,‘政策’}.

以句子S1的序列为标准序列(1,2,3,4,5).

首先以两个句子所含相同关键词的逆序数作为衡量因素,S2的序列为(3,2,1,4,5),Ron(S1,S2,s)代表句子S2中词汇的逆序数,S为相同关键词个数,则采用逆序数衡量词序相似度公式为:

得出句子S1和S2的逆序数词序相似度为:

然后以两个句子所含相同关键词的向量距离[14]作为衡量因素,distance(S1,S2)代表句子S1到S2的向量距离,maxDistance(S1,S2)为distance(S1,S2)的最大值,其计算公式为:

得出句子S1和S2的向量距离词序相似度为:

逆序数Rev(S1,S2)与向量距方法Vec(S1,S2)融合计算词序相似度为:

2.3 词性相似度计算方法

词性相似度(nature similarity)指两个句子中共有关键词的词性相似度,此相似度计算方法用来完善一词多义的情况[15],定义为具有相同词性的共有关键词数与两个句子总关键词数和之比.计算公式为:

使用LTP 分词后并将得到的关键词词性进行比较,式子中Ncs(S1,S2)是句子S1和S2相同词性的共有关键词数,Com(S1)和Com(S2)即句子S1和S2的总关键词数.显而易见的,如果得到的两个句子词性相同的关键词数越多,那么两个句子词性相似度越高.

2.4 句长相似度计算方法

以词频、词序、词性为核心要素计算相似度时,而要完整、准确的反映句子的信息也要考虑句长的存在.

两个句子长度的差的绝对值,可以反映一定程度上的句子相似度,其与绝对值的大小成反比,值越小,说明此种程度上的相似度越大.假设句子S1长度表示为Len(S1),S2长度表示为Len(S2),句长相似度表示为LenSim(S1,S2),则其计算公式如下:

式中,abs()为绝对值函数.

2.5 句子的多属性融合相似度计算方法

综合词频、词序、词性、句长4 种属性,融合4 种相似度,其计算流程如图3所示.

图3 方法计算流程

首先输入句子S1,S2,经过分词处理、去停留词、词性标注等预处理操作,最终得出句子相似度公式为:

式中,α 、 β、 γ、 δ分别是词频、词序、词性和句长相似度的权重值,其中0≤ α≤1,0≤ β≤1,0≤ γ≤1,0≤δ≤1,且满足|α+β+γ+δ|=1.

本文采用层次分析法(AHP)[16]通常被用到处理复杂的决策问题,准备采取决策的问题分成3 个层次,基于该方法计算出的各相似度的权重.步骤如下:

(1)将问题条理化、层次化,根据词频、词序、词性和句长相似度建立层次结构模型.

(2)根据经验赋予各相似度重要程度并构造判断矩阵,词频与词序相似度重要程度高且一致,相较而言,词性和句长相似度重要程度低且一致,并使用1~9 及其倒数作为标度来确定ai j的值,如表2所示.

显然,表2 中的元素满足:

表2 重要程度

根据层次分析法规则可得比较矩阵,如表3所示.

表3 比较矩阵

(3)层次单排序并进行一致性检验,根据表3 可得判断矩阵A.

计算该判断矩阵的最大特征值λmax= 3,其对应的特征向量为[0.6934,0.6934,0.1387,0.1387],求出一致性指标CI(consistency index):

其中,n为矩阵的维度,得出CI=0,表示完全一致.CI的值越小,表示越一致,CI的值越大,表示越不一致.

(4)使用Satty 模拟1 000 次得到的RI表计算一致性比率,RI表如表4所示.

表4 RI 表

根据|α+β+γ+δ|=1,得出基于词频和词序属性的相似度权值为0.417,基于词性和句长属性的相似度权值为0.083.

3 实验及分析

本文算法实验中,开发环境为Windows 10 X64,开发工具为VSCode1.54.1,开发语言为Python 3.6.4.采用哈尔滨工业大学开发的在线语言技术平台(LTP)进行关键词分词并得出所需的句子的属性.

为验证方法的效果,对本文提出的基于句子的多属性融合相似度计算方法和Jarcarrd、文献[14]方法,设计对比试验,以召回率(Recall)、准确率(Precision)、F-度量值(F-Measure)[17]对比不同算法的性能,F 度量值综合涵盖召回率与准确率两个指标,值越接近于100%,说明准确率和召回率越均衡,方法的效果越好,相反,如果F 度量值越接近于0,说明两个指标的均衡性越差,方法效果欠缺.

(1)召回率(Recall)衡量相似度匹配的查全率.

(2)准确率(Precision)衡量相似度匹配的查准率.

(3)F-度量值(F-Measure)是召回率与准确率的指标归一化平均值,用于反映整体的指标.

实验步骤如下:

实验所需数据为随机从国家与地方退役军人事务局等网站爬取的,经过数据处理建立的问答库,从中选取300 条问答对作为初始数据集S.随机从S中选取50 条作为初始标准集,余下250 条作为初始噪声集,w为标准集的问句,w∈S.依次使用w作为百度知道的查询条件,利用Python 正则表达式对查询返回的网页进行标签分析处理,提取出网页中前5 个标题,问句w会有1-5 个相似问句,人工处理筛选出标题和问句相似度高的句子,得到完善好的包含223 个元素的扩充标准集,将扩充标准集和初始标准集混合成为273 个元素的标准测试集,相同的将初始噪声集处理得到包含1 190 个元素的扩充噪声集,并和初始噪声集混合得到1 440 个元素的噪声测试集,最后将二者混合得到测试集.依次从标准测试集的273 个句子中抽出一个问句P,然后将其与测试集的问句的相似度计算出进行逆序排列,如果前5 个句子包括了扩充标准集中问句P所以对应的1-5 个句子,则表明句子相似度计算达到预期.实验结果如表5所示.

表5 句子相似度对比实验(%)

Jaccard 方法和文献[14]方法与本文方法的实验结果从表5 可以看出,Jaccard 方法具有较高准确率和较低召回率,但该方法以句子的字面量为特征,所以有一定限制在一词多义层面的相似度计算方面,句子中包含的关键词相似,但却忽略了关键词词性的不同.文献[14]方法解决了一义多词问题,比较而言,其召回率比Jaccard 方法高64.3%,准确率却下降了26.2%,显而易见,两种方法均没有达到均衡稳定的效果.本文方法相较于文献[14]方法准确率提高约20%,且F-度量值更接近于100%,明显优于使用Jaccard 方法和文献[14]方法.

4 结论与展望

本文提出的基于句子的多属性融合相似度计算方法,综合考虑了句子的结构和包含的属性,以词频、词序、词性和句长4 种相似度加权融合计算,对提高句子相似度计算的准确率有利,且不会大范围出现召回率的降低,其可靠性及可行性优于传统方法,召回率、准确率不仅均衡且归一化F度量值较高,达到87.12%,拥有综合优势.接下来,将该方法应用于智能问答系统的句子匹配,可适用普遍存在的句子语法情况,进一步研究时,将继续优化此方法的复杂度及问答效率.

猜你喜欢

词频余弦计算方法
槽道侧推水动力计算方法研究
基于示踪气体法的车内新风量计算方法研究
极限的计算方法研究
椭圆余弦波的位移法分析
第二重要极限的几种计算方法
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
基于CAXA的盘类凸轮CAD/CAM应用
词频,一部隐秘的历史
汉语音节累积词频对同音字听觉词汇表征的激活作用*