N语法相似度计算词语对或短语对Y与阈值h比较基于规则的相似度计算基于同义词词林的相似度计算Y规则中?词林中?登陆词?Y改进的基于《知网》的相似度计算算法基于语料库的相似度计算算法提供参数因子1提供参数因子2调整参数Y综合计算保存相似度值
图 3-9 HCSC算法流程图
3.3.6 算法中参数权重的确定
1)确定权重的方法
在公式3-19中有?1,?2,?1,?2,?1,?2六个权重参数,确定它们的值是一个关键问题。权重是一个相对的概念,是针对某一指标而言,是表示在评价过程中,是被评价对象的不同侧面的重要程度的定量分配。某一指标的权重是指该指标在整体评价中的相对重要程度。确定权重的方法总体来说主要有以下几类: (1)
专家评估法:通过访问有经验的专家、学者,以他们在实践中的经验分析
哪项指标项重要、哪项指标项不太重要,从而确定这些指标项的权重系数的大小; (2)
数据统计法:事先设计好一些问卷问题,将各项指标项列出来,以最重要、
重要、次重要的等级让调查对象考擦,根据收回的权重分配结果进行统计计算,以计算出来的排序指数的大小来确定权重系数的大小; (3)
模糊协调决策法:一种求权重分配的近似方法,它将一个事物的评价看成
由多种因素组成的模糊集合,再设定这些因素所能选取的评审等级,分别求出各单一因素对各个评审等级的归属程度,然后通过模糊矩阵合成,得出各指标的定量值。 上述方法通常是根据经验所得,在一定程度上能反映实际情况,评判结果较符合
人的认知。但是凭经验给出权重往往带有主观性,有时会出现何时进相偏差,即评判结果可能“失真”。权重的确定本质上是一种优化过程,也就是找到一组权重(权重参数的具体值)使得我们计算得到的决策贴近度尽可能高。落实到HCSC算法上是寻找一组适当的参数值使公式3-19的计算结果精确性更好,更贴合人们的认知。 2)
遗传算法与参数权重的确定
遗传算法(Genetic Algorithms,GA)是一种概率性搜索算法,也是一种自适应的迭代寻优过程。该算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它从某一随机产生的或是特定的初始群体出发,按照一定的操作规则,如选择、交叉、变异等,不断地选代计算,并根据每一个个体的适应度值,保留优良品种,淘汰次品,引导搜索过程向最优逼近[38]。 遗传算法与传统的优化算法相比,有以下特点: (1)
遗传算法以决策变量的编码作为运算对象:传统的优化算法往往直接使用
决策变量的实际值本身来进行优化计算,但遗传算法以决策变量的某种形式的编码为运算对象。模拟生物界中生物的遗传和进化机理,方便地应用遗传操作算子; (2)
遗传算法直接以目标函数数值作为搜索信息:传统的优化算法不仅需要利
用目标函数值,而且需要目标函数的导数值,而遗传算法仅使用由目标函数值变换来的适应度函数值,确定进一步的搜索方向和搜索范围。直接利用目标函数值或个体适应度,可以提高搜索效率; (3) (4)
遗传算法从问题解的编码组开始而非从单个解开始搜索,具有并行性; 遗传算法利用选择、交叉、变异等算子不是用确定性规则进行随机操作。
基于上述优点,本文选择了遗传算法来求解权重,遗传算法确定权重的过程如下: (1)
编码与初始权重群体的生成
各类信息的权重的取值范围是
?0,1?中的小数,并且所有的数值之和为1。因此选择
?0,999?。在计算适应度时要用
?0,1?区间中,且要保证和为1,对个体Ui中权重作Wij自然数编码,每个权重的编码用3位数来表示,取值范围为到权重,所以需要将这些整数映射到如下变换:
Wij' Wij? (3-20)
nWiji?1?其中i=1,2,…,n;Wij为个体Ui中第j个权重的编码。 (2)
适度函数的定义
一种权重分配的好坏取决于由这组权重计算出来的综合决策与已知的综合决策的 贴近度。贴近度越大说明这组权重越好,我们的目标就是要找到一种最佳的权重分配。 对应到我们的具体的使用场景是计算的结果和认知的贴近程度,越符合越合理。设一个体
ai,它所对应的权重分配是ui1,ui2,… uin,由ai得出的综合决策为b',b代表已知的
综合决策,而ai的适应度定义为:
f(ai)?i?1mi?1?(b'(k)?b(k)) (3-21)
m?(b'(k)?b(k))'' ?、?分别为取小、取大操作,b(k)代表b的第k个分量,b(k)代表b的第k个分量。
(3)
遗传算子的选择
选择算子,交叉算子和变异算子的选择,作用在适度函数上,能快速的计算出遗
传算法的运行参数。遗传算法确定参数权重的过程分为两个阶段:从当前权重向量群体出发,通过选择生成中间权重向量群体;第二阶段是在中间权重向量群体上进行重组与变异,从而形成下一代新的权重向量群体。遗传算法的详细描述如下,流程图如3-10所示: Procedure SGA begin initialize P(0); t=0;
while(t<=T) do for i=1 to M do
Evaluate fintness of P(t); Select operation to P(t);
Mutation operation to P(t); end for
for i=1 to M/2 do
Crossover operation to P(t); end for for i=1 to M do P(t+1)=P(t); end for t= t +1; end while end
随机初始化权重向量令g=0计算权重向量的适应度值是否满足选中标准NY产生结果i=0g=g+1Yi=NN概率选取遗传操作根据适应度值选取一个权重向量繁殖根据适应度值选取两个权重向量交叉:i=i+1根据适应度值选取一个权重向量变异把新子节点加入群体中把两个新子节点加入群体中把变异后的个体加入群体中i=i+1
图 3-10 利用GA调整权重向量的算法流程图这个图有点小
利用遗传算法得出公式3-19中个权重参数的值为:?1=0.81,?2=0.19,?1=0.8,?2=0.2,
?1=0.89,?2=0.11。
3.4 本章小结
本章针对扩展主题图融合过程中的主题融合判决,详细描述了词汇的语义相似性度量技术。首先对已有的词语相似性计算方法进行研究,归类并分析出其优缺点。然后综合各种计算算法的优点,提出基于本体和语料库的综合词语相似度算法—HCSC算法,该算法以语义词典和语料库为基础,并辅以规则和同义词词林计算。HCSC算法分为:语法相似度计算(预处理)、基于规则的计算、基于同义词词林的计算、改进的基于《知网》的计算和基于语料库的相似性计算五大部分,各个部分相互联系,依次递进,按逐层深入的思想设计实现。预处理能在一定程度上减少算法的计算量;基于规则相似性度量为了处理特定的中英文对照的词语对,同义词词林能判决存在着统一关系的词语组,二则都能减少算法的运算量;基于本体和语料库的相似度计算,充分利用了《知网》中的语义信息和语料库中词语间的语用、语境信息,有效的解决了基于词典算法中的未登录词问题。将词语对放入真实,实时的语料中考察其信息依赖关系,利用统计学知识计算其信息墒,同时算法的加权参数自适应调节。HCSC算法提高了相似度计算结果的精度和准确性,计算结果更符合人的认知。
4 基于全信息理论的句子相似度算法
课题中扩展主题图的知识元来源于句子,在融合过程中,知识元间的融合判决需考虑其各自对应的句子资源。综合度量知识元的基名和资源出处能提高融合的质量,保证融合后全局主题图的一致性。本章首先研究分析已有的句子相似度计算方法,总结其各自的优缺点。然后研究句子计算模型,和全信息理论,并将二者结合起来,提出基于全信息理论的句子相似度计算算法,并加以详细论述。 4.1 句子相似度概念
句子相似度同词语语义相似度概念一样是一个主观性较强的概念,脱离具体的应用背景谈论句子相似度,很难得到一个标准的形式化定义。在实际应用中常常根据应用领域的具体特点,对句子相似度的概念重新解释。句子相似度计算是自然语言处理领域中非常重要的基本问题,在自然语言处理领域的很多方面都有着广泛的应用:例如,在自动问答系统中,对于相似问句的检索以及问句与答案的匹配;在机器翻译中利用句子相似原理进行源语言检索、相互翻译;在信息过滤技术中利用句子模糊匹配来过滤、屏蔽敏感信息;在多文档文摘系统中,利用相似度可以反映局部主题信息的拟合程度等等。句子相似度很难有一个统一的形式化定义,Dekang Lin[26]信息论的角度给出了句子相似度的一个统一的、与应用领域无关的非形
从
式化定义。他认为,句子A与句子B之间的相似度一方面与它们的共性相关,共性越多,相似度越高;另一方面相似度也与它们的区别相关,区别越大,相似度越低;当A和B完全不同时相似度为0,当A和B完全相同时相似度达到最大值,即数值为1。这种定义形式符合人们的认知,同时充分利用了信息论原理,较有借鉴价值。
中文句子相似度计算有着其独特的难点和特点[39]:1)汉语是大字符集的语言,共有44908个汉字;2)缺少形态变化、属于表意型语言;3)基本语法单位的确定困难,汉语可以分为六级语法单位:语素、词语、组块、短语、句子和句群。在一个句子里,语素、词、组块和短语都是语法单位;4)句子的相似与否不仅与其结构有关,更与语义、语境密切联系;5)词法分析、尤其是句法分析的准确率较低,词法分析、句法分析是自然语言处理的一项基础工作,它的准确与否直接影响着句子相似度的计算。正是由于上面的特点,决定了度量中文句子相似性的复杂性和难点。
本文讨论的句子相似度主要指句子的语义层面的相似性,句子的语义是受句子结构等语法信息影响的。在本文研究知识元对应资源句子的度量中,句子相似度指句子在语义上的匹配符合程度,我们在定量计算中选定句子相似度的取值区间为[0,1],数值越大代表句子越相似,1代表两个句子完全相同,0代表两个句子完全不同。假设Sim表示相似性计算,S1表示句子1,S2表示句子2,则句子相似度的公式如下:
Sim(S1,S2)?? ??[0,1] (4-1)