物换星移几度秋相似的句子

| 公卫执业医师 |

【www.guakaob.com--公卫执业医师】

物换星移几度秋相似的句子篇一
《中文主观题自动批改中相似句子检索算法》

物换星移几度秋相似的句子篇二
《大规模句子相似度计算方法》

物换星移几度秋相似的句子篇三
《句子相似度计算新方法及在问答系统中的应用》

ComputerEngineeringandApplications计算机工程与应用2008,44(1)165

句子相似度计算新方法及在问答系统中的应用

周法国,杨炳儒

ZHOUFa-guo,YANGBing-ru

北京科技大学信息工程学院,北京100083

SchoolofInformationEngineering,UniversityofScienceandTechnologyBeijing,Beijing100083,China

ZHOUFa-guo,YANGBing-ru.Newmethodforsentencesimilaritycomputinganditsapplicationinquestionanswering

(1):165-167.system.ComputerEngineeringandApplications,2008,44

Abstract:Sentencesimilaritycomputingplaysanimportantroleinmachinequestion-answeringsystems,machine-translationsys-tems,textcategorizationsystems,etc.Aimingatasentencesimilaritymodelbasedonkeywords,animprovedmethodisputfor-

ward,includingtheextractionofkeywords,andtheinductionofsynonymsinsentencesimilaritydefinition.Andonthisbasis,a

(FrequentlyAskedQuestion)isimplemented.ThissysteminvolvesautomaticallysearchingquestionanswersystembasedonFAQ

forcandidatequestionset,computingsentencesimilarityandreturningtheanswertotheuser.ThissystemcanalsoautomaticallyupdateandmaintainFAQ.Experiments’resultshowsthatthenewmethodhasmoreaccuracythantheothersinmatchingques-tionsofquestionansweringsystem.

Keywords:naturallanguageprocessing;sentencesimilarity;FrequentlyAskedQuestion;questionanswer

要:计算句子的相似度在机器问答、机器翻译、文本分类等系统中有着非常重要的作用。该文对基于相同关键词的句子相似模

并以此为基础,实现了一个基型作了进一步的改进,包括关键词抽取,以及在句子相似度的定义中引入同义词以及近义词的情形。

于常问问题集的中文自动问答系统,对用户以自然语言输入的问题,该系统能够自动地在FAQ(Frequently-AskedQuestion)库中该系统还能够自动地更新和维护FAQ库。实验结果表明,这种寻找候选问题集,通过计算句子相似度,将匹配的答案返回给用户。新方法在问答系统中匹配问句时比其他方法具有较高的准确率。关键词:自然语言处理;句子相似度;常问问题集;问答系统文章编号:1002-8331(2008)01-0165-03

文献标识码:A

中图分类号:TP391

相应的语句相似度衡量机制只能利用句子的表层信息,即组成句子的词的词频、词性等信息[4]。由于不加任何结构分析,该方法在计算语句之间的相似度时不能考虑句子整体结构的相似性。(2)基于语义的方法,对语句进行完全的句法与语义分析,这是一种深层结构分析法,对被比较的两个句子进行深层的句法分析,找出语义依存关系,并在依存分析结果的基础上进行相似度计算[5]。本文是在基于词的方法的基础上充分考虑了同义词与近义词。

1引言

在自然语言处理领域,尤其是在中文信息处理中,句子相

似度计算是一项基础而核心的研究课题,长期以来一直是人们研究的一个热点和难点。句子相似度计算在现实中有着广泛的应用,它的研究状况直接决定着其他一些相关领域的研究进展,句子相似度的计算在自然语言处理的各个领域都有着非常重要的作用,如在基于实例的机器翻译系统[1]中、在文档自动文在基于常见问题集摘系统[2]中、(FAQ)的机器问答系统[3]中以及信息检索、信息过滤等方面,句子相似度的计算都是其中关键的技术之一。本文给出了一种计算句子相似度的新方法,并给出了该方法在问答系统中的应用,设计并实现了一种简单的基于常问问题集的中文问答系统。

2.2关键词抽取

由语言学知识可知,任何句子都是由关键成分谓、宾(主、

等)和修饰成分状、补等)构成的。关键成分对句子起主要(定、作用,修饰成分对句子起次要作用。进行句子相似度计算时,只要考虑句中的关键成分。基于词的方法不考虑句法结构分析,因此,不能确定句子的内部成分,包括关键成分和修饰成分。在通常情况下,一个句子中作主语和宾语的多为名词或代词,作谓语的多为动词或形容词。因此,可以将一个句子中的所有名词、代词、动词和形容词作为关键词,并在计算句子相似度时只考虑这些关键词。例如,句子“我当然愿意了解她们的

2句子相似度计算的新方法2.1常见句子相似度计算方法

在相似度计算中,按照对语句的分析深度来看,主要存在两种方法:(1)基于向量空间模型的方法,即基于词的方法。该方法把句子看成词的线性序列,不对语句进行语法结构分析,

基金项目:国家自然科学基金(theNationalNaturalScienceFoundationofChinaunderGrantNo.60675030)。

作者简介:周法国(1976-),男,博士研究生,主要研究方向为自然语言处理,知识发现与智能系统;杨炳儒(1943-),男,教授,博士生导师,主要研

究方向为知识发现与智能系统,柔性建模与集成技术。

1662008,44(1)ComputerEngineeringandApplications计算机工程与应用

作用,并且名词比动词承载着更多的信息量。一个句子的中心信息基本上都是围绕着动词和名词来展开的,所以在进行计算的时候也特意加大了名词和动词的重要程度,将句子的重心落在名词和动词上面。这样,在此处计算相同关键词的个数时,若两个词相同并且都是名词,相同个数以5计,若两个词相同并且都是动词,相同个数以3计,在计算Si中的关键词个数时,名词的个数也按5计,动词个数以3计,即一个名词实际出现编程时,一次计算为5次,一个动词实际出现一次计算为3次。对每个句子分词后,然后要进行词性标记从而区分是否为名词和动词。同时为了更进准确的计算句子的相似度,我们引入了和句子同义词词典。如:句子“怎么杀计算机病毒?”“怎么杀电脑病毒?”是基本一样的。其中和是同义词。“计算机”“电脑”

定义2句长相似度LenSim(S1,S2)

从句子长度上来标注句子的相似性,在一定程度上也反映句子形态上的相似性。其计算方法如下:

(S1,S2)=1-绝对值LenSim

要求。”的关键词序列为“我愿意了解她们要求。”。对于特定句中的某个名词、代词、动词或形容词,不一定就是该句中的主语、宾语或谓语成分,但相对于句中所有的词构成的词序列而言,关键词序列却具有一定的句法结构信息表达能力,至少可以了解句子中的哪些词在组成句子框架结构方面是比较重要的。在此基础上进行相似度计算,比一般基于词的方法更准确一些。

2.3有关定义和计算

汉语句子就是一个字符串,是由一组不同含义的单词组

成,它不同于数值型变量,可以用一个特定的数值来确定它的大小或位置,所以用何种方式来描述两个字符串之间的距离,成为了一个值得探讨的问题。

通常情况下,用于分析的数据类型有如下几种:区间标度遍历、二元变量、标称型变量、序数型变量、比例标度型变量、混合类型变量等。

综合这些变量类型,本文认为字符串变量更适合于归类于二元变量,我们可以利用分词技术将字符串分成若干个单词,每个独立的单词作为二元变量的一个属性。把所有单词设定为一个二元变量属性集合R,字符串1和字符串2的单词包含于这个集合R。设q是字符串1和字符串2中都存在的单词的总数,s是字符串1中存在,字符串2中不存在的单词总数,r是字符串2中存在,字符串1中不存在的单词总数,t是字符串1和字符串2中都不存在的单词总数。称q,r,s,t为字符串比较中的4个状态分量。如图1所示。

LenS-LenS

"LenS+LenS

())1

))2

其中Len(Si)表示Si中(关键)词的个数,i=1,2。

定义3词序相似性OrdSim(S1,S2)

从关键词的顺序上来标注句子的相似性,反映两个句子中所含相同词或同义词在位置关系上的相似程度,以两个句子中所含相同词或同义词的相邻顺序逆向的个数来衡量。其计算方法如下:

(S1,S2)=1-OrdSim

(S1,S2)Rev

(1,2)其中,MaxRev(S1,S2):表示S1与S2相同关键词的个数的自然数序列的最大逆序数,例:若S1与S2相同关键词的个数为4,则自然数序列为{4,3,2,1},它的逆序数为6。Rev(S1,S2):表示

S1中关键词在S2中的位置构成的自然数序列的逆序数。

反映两个句子中所含相同词或同义词在位置关系上的相似程度,以两个句子中所含相同词或同义词的相邻顺序逆向的个数来衡量。设S1、(S1,S2)为S1、S2为两个句子,OnceWordS2中

由于两个字符串都不存在的单词对两个字符串的比较没有任何作用,所以忽略t,于是采用非恒定的相似度评价系数(Jaccard系数)来描述两个字符串间的相异度表示公式为:相异度=(r+s)(/q+r+s),不难推断,他们的相似度公式为:相似度=(q+r+s)。q/

由此,可以得到句子的词形相似度。句子的相似度除了与句子中关键词的顺序、关键词之关键词有关外,还与句子长度、

间的距离有关,下面给出具体的定义与计算方法。

定义1词形相似度WordSim(S1,S2)

从句子形态以及词形上来标注句子的相似性,反映句子形态上的相似性。WordSim(S1,S2)表示S1与S2中相同关键词的个数。则词形相似度可以根据Jaccard系数来计算。其计算方法如下:

(S1,S2)SameWord

(S1)+Word(S2)-SameWord(S1,S2)Word

其中,SameWord(S1,S2)表示S1与S2相同关键词的个数,如果

(S1,S2)=WordSim

同一关键词出现多次则只算一次,其中的关键词不包含句子中的疑问词及停用词表中的词,如:为什么、怎么样、如何、的、地、得等。Word(Si)表示Si中的关键词个数,i=1,2。

在实践过程中发现名词和动词在句子中起着非常重要的

所含相同词或同义词的集合,重复出现的词仅计一次,Pfirst(S1,(S1,S2)中的词在S1中出现关键词的先后顺序S2)为OnceWord

所构成的向量(为一自然数顺序序列,重复出现的关键词计第一次出现),Psecond(S1,S2)为Pfirst(S1,S2)中的分量按对应词在S2中的次序排序生成的向量,RevOrd(S1,S2)为序列Psecond(S1,S2)的逆序数。

定义4距离相似性DisSim(S1,S2)

从相同关键词的距离上来标注句子的相似性。其计算方法如下:

(S1,S2)=1-绝对值DisSim

SameDisS-SameDisS

"DisS+DisS

())1

其中SameDis(Si)表示S1,S2中相同的关键词在Si中的距离,i=

1,2。若关键词重复出现多次,以产生最大距离为准。

(Si):表示Si中非重复关键词中最左及最右关键词之间Dis

的距离,i=1,2。若关键词出现多次,以产生最小距离值为准。

定义5句子相似度

反映两个句子之间的相似程度。通常为一个0~1之间的数值,0表示不相似,1表示完全相似,数值越大表示两句越相似。

记两个要比较的句子为S1和S2,S1与S2的相似度记为(S1,S2),则

:SenSim

周法国,杨炳儒:

句子相似度计算新方法及在问答系统中的应用

(S1,S2)=!1WordSim(S1,S2)+!2LenSim(S1,S2)+!3Ord-SenSim

(S1,S2)+!4DisSim(S1,S2)Sim

其中:!1+!2+!3+!4=1且!1≥0.5≥!2≥!3≥!4>0。

2008,44(1)167

3.3FAQ库的更新

利用2.3中介绍的方法计算出用户所输入的目标问句和候选问题集中每个问句的相似度,如果所有这些计算出来的相似度的最大值大于或等于一定的阀值m(m=0.65),那么就认为最大的相似度所对应的问句和用户的目标问句问的是同一个问题。可以直接将这个问句对应的答案输出给用户。

2.4算法描述

算法一种改进的计算句子相似度计算算法输入:要计算相似度的两个句子S1和S2输出:S1和S2的相似度

步骤1对输入的两个句子S1和S2进行分词,得到字符串

和S2′;S1′

步骤2从S1′和S2′中得到两个句子相同或相近的关键词;步骤3计算词形相似度、句长相似度、词序相似度和距离相似度;

步骤4求取句子S1和S2的相似度。

与其他算法相比,该算法中的关键词抽取部分涉及分词与词性标注(其他算法大部分仅涉及分词),在计算词形相似度时还需要借助一部同义词词典。该算法具有以下特点:

(1)简单,所利用的信息仍为句子的表层信息。

(2)保留了其他已有算法的优点,可以保证句子中的分句或短语整体移动后仍与原来的句子相似。

(3)比原算法更准确,所抽取的关键词可以近似地表达部分句法结构信息。

3基于常问问题集的中文问答系统

中文问答系统的研究开始于20世纪末,最近10年是中文

如果最大相似度的值小于阀值m(m=0.65),就可以认为(如FAQ库中没有用户所问的问题,那么必须利用其他的方法信息检索,答案抽取等)来找出答案。如果能够找到答案,就可以将用户所问的这个问题和对应的答案加入FAQ库。

问答系统的高速发展期,众多学者在中文问答系统方面做了大量的研究,取得了大量有益的研究成果,主要有基于本体的中文问答系统,基于语义相似度的中文问答系统,知识驱动的

[6]

[7]

中文问答系统[8],基于数据挖掘的中文问答系统[9],基于检索的中文问答系统[10]以及聊天机器人、基于检索的问答系统,各种形式的网络答疑系统,客户服务系统等等。其中基于知识库的问答系统是其中最主要的一种,基于知识库的问答系统中基于

4实验结果

算法在基于FAQ的机器问答系统中应用,在有1千多个

问题的问题集中进行测试,取!1=0.6,!2=0.2,!3=0.1,!4=0.1,匹配问句时选择相似度(阈值)大于等于0.65的问题中相似度最大的问句,将其答案返回。对相似度小于0.65的问句,则认为问题集中没有该问题的答案。测试平均准确率在85%以上,比文献[4]中基于词形和词序的计算方法匹配问句要高出10个以上左右的百分点。

在基于FAQ的中文问答系统中,选择了3个人进行独立测试,每个人随机地选择100个问题进行测试,测试结果如表

FAQ的问答系统是最常见的一种。

3.1基于FAQ的中文问答系统的流程

在目标问句进入基于FAQ的问答系统之前,需要将中文

句子分成词语的集合。分词部分包括对库中问题的分词,也包括对目标问句的分词。然后通过建立知识库的全文检索,选择与目标问句比较相似的一小部分集合,在这个小集合中进行相似度计算,即计算各个句子与目标问句的相似度。选择相似度的最大值,与设定的阈值进行比较。如果大于设定的闭值,则返回该答案,如果小于设定的阈值,则不返回答案,通过信息检索、答案抽取等技术来更新问题库。大致流程如图2所示。

1所示。

表1

测试人

实验测试结果

问题平均长度

准确率/%

测试问题数

3.2候选问题集的建立

这一步骤的目的是要从常问问题库(FAQ)中找出若干个

123

100100100

12.39.810.9

818985

候选的问题组成候选问题集,以缩小查找的范围,使后续的相似度计算等较复杂的处理过程都在候选问题集这个相对较小的范围内进行。在系统中,问题集存储在SqlServer2000数据库中,在建立候选问题集时,我们采用了SqlServer2000数据库管理系统自带的全文检索系统。首先,对用户输入的目标问句进行分词、关键词抽取,过滤掉停用词后,对关键词在问题域字段上进行全文检索,把和目标问句相关的记录中的问句作为候选问题集。

5结束语

在计算句子相似度时,通过关键词抽取、以及扩充同义词

词典和加大名词和动词在句子中的重要性可以明显地提高计算的准确性,自动分词和词性标注的质量也直接影响本方法的准确率。本文在一定程度上提高了计算句子相似度的正确率,但并没有对句子的语法、句法、语义等方面进行详细的分析,如

(下转178页)

1782008,44(1)ComputerEngineeringandApplications计算机工程与应用

abilityof304stainlesssteel[J].JournalofMaterialProcessingTech-(118):442-447.nology,2001

机、解释器及人机界面通过ODBC以CRecordSet类的方式访问、操作与维护数据库。

[2]VitanovVI,HarrisonDK,MincoffNH,etal.Anexpertsystem

shellfortheselectionofmetal-cuttingparameters[J].JournalofMaterialsProcessingTechnology,1995,55:111-116.

[3]刘晓义,王培东,周洪玉.基于知识处理重型切削数据库的设计与实

现[J].哈尔滨理工大学学报,2004,9(1):11-13.

[4]Tolouei-RadM,BidhendiE.Applicationofexpertsystemsforde-

terminationofmachiningparametersinmillingoperations[J].SPIE,1995,2620:582-587.

[5]RazfarR,RidgwayK.Ex-catsmill:anexpertsystemforselection

cuttingtoolsandconditionsformilling[J].AdvvancedFactoryAu-tomation,1994,398:203-207.

[6]RaoSS,ChenLi.Determinationofoptimalmachiningconditions:a

coupleduncertaintymodel[J].TransactionsoftheASME,2000,122:206-214.

[7]MachiningDataHandbook[M].3rded.Ohio:MachinabilityDataCen-

ter,1980.

[8]AssadiHMAAAl,WongSV,HamoudaAMS,etal.Develop-

mentofmachinelearningstrategyforacquiringon-linemachiningskillsduringturningprocess[J].JournalofMaterialsProcessingTech-nology,2004:36-41.

[9]邹云.铣削加工切削参数智能选择系统的研究与开发[D].四川大学,

2004.

[10]BaoWY,ChenP,TanselIN,etal.Selectionofoptimalcutting

conditionsbyusingthegeneticallyoptimizedneuralnetwork(GONNS)[C]//LectureNotesinComputerScience,2002,system

6结论

由于铣削加工参数匹配是一个复杂过程,本文探讨参数匹

配关系,对参数匹配过程中的知识进行了分类,针对产生式规则难以全面、高效构建知识库的问题,提出结合神经网络方法开发参数匹配知识库系统,经过对手册上提供最复杂的样本进行验证和知识库系统开发实现,表明提出的方法是可行的,在问较大程度上,克服了基于规则专家系统知识获取的“瓶颈”题。与其他机械加工过程相比,铣削加工的参数匹配关系更为钻削的加工复杂,因此研究成果还可推广应用于其它如车削、

过程中。但本文所构建的知识库系统,欲实现商业化应用,还要解决好如下几个问题:(1)加工参数数据库和学习样本库虽已建立,但完善它们还是一项非常繁重的工作;(2)知识库系统虽已从手册中获取大量的加工经验和知识,但还不全面,还需进一步从有经验的工程师处获取;(3)与CAPP系统的接口还需要进一步研究开发。(收稿日期:2007年8月)

2714:1026-1032.

[11]周家林,段正澄,邓建春,等.基于粒子群算法的神经网络优化及其

在镗孔加工中的应用[J].中国机械工程,2004,15(11):1927-1929.

[12]焦李成.神经网络系统理论[M].西安:西安电子科技大学出版社,

1990.

[13]孟少农.机械加工工艺手册:第1卷[M].北京:机械工业出版社,

1991.

参考文献:

[1]ChienWen-Tung,ChouChung-Yi.Thepredictivemodelformachin-

(上接167页)

果考虑到这些,在上述计算的基础上加上句法相似性的话,准确性还有可能进一步提高,这将是我们下一步研究的内容。

在机器问答系统中,本文在句子相似度计算的基础上实现了一种最简单的基于常问问题集的问答系统,而随着问答系统的发展,这种问题-答案模式的问答系统越来越显示出其局限性,模式单一,缺乏人机交互是其主要的缺陷。智能化、交互式的问答系统将是问答系统的一个主要发展方向,我们也将就此问题继续进行下一步的工作。(收稿日期:2007年8月)

设计与实现[J].小型微型计算机系统,2006,27(4):720-723.

[4]杨思君.一种改进的句子相似度计算模型[J].电子科技大学学报,

(6):956-959.2006,35

[5]李彬,刘挺,秦兵,等.基于语义依存的汉语句子相似度计算[J].计算

机应用研究,2003,20(12):15-17.

[6]骆正华,樊孝忠,刘林.本体论在自动问答系统中的应用[J].计算机

工程与应用,2005,41(32):229-232.

[7]刘小宇.基于语义理解的中文常问问答系统的研究[D].大连理工大

学,2006.

[8]李良富,樊孝忠,李宏乔,等.知识是如何驱动Q/A系统的[J].计算机

参考文献:

[1]胡国全,陈家俊,戴新宇,等.一种基于实例的汉英机器翻译策略[J].

计算机工程与设计,2005,26(4):900-903.

工程与应用,2004,40(20):70-74.

[9]QUShou-ning,WANGQin,ZOUYan,etal.Intelligentquestionan-

sweringsystembasedonDataMining[J].JournalofZhengzhouU-(2):50-54.niversity:NaturalScienceEdition,2007,39

[2]张奇,黄萱菁,吴立德.一种新的句子相似度度量及其在文本自动摘

要中的应用[J].中文信息学报,2005,19(2):93-99.

[10]蔡刚山,叶俊,周曼丽.基于多级检索的自动问答系统研究[J].科学

技术与工程,2007,7(4):501-506.

[3]张亮,冯冲,陈肇雄,等.基于语句相似度计算的FAQ自动回复系统

物换星移几度秋相似的句子篇四
《大规模句子相似度计算方法》

大规模句子相似度计算方法*

黄河燕1 陈肇雄1 张孝飞1 张克亮12 ,

(1中国科学院计算机语言信息工程研究中心 北京 100083

2 南京理工大学 南京 210094)

Email:

摘要:如何根据源语言文本从大规模语料库中找出其最相近的翻译实例,即句子相似度计算,是基于实例翻译方法的关键问题之一。本文提出一种多层次句子相似度计算方法:首先基于句子的词表层特征和信息熵从大规模语料库中选择出少量候选实例,然后针对这些候选实例进行泛化匹配,从而计算出相似句子。在多策略机器翻译系统IHSMTS中的实验表明,当语料规模为20万英汉句对时,系统提取相似句子的召回率达96%,准确率达90%,充分说明了本文算法的有效性。

关键词:句子相似度;基于实例的机器翻译; 多策略机器翻译;泛化匹配

中图法分类号:TP391

Approach of Large-Scale Sentence Similarity Computation

HUANG He-yan CHEN Zhao-xiong ZHANG Xiao-fei

(Research Center of Computer & Language Information Engineering, CAS Beijing 100083)

Email:

Abstract: The retrieval of the similar translation examples corresponding to the SL sentence from the large-scale corpora, or the computation of sentence similarity, is one of the key problems of EBMT. A new multi-layer sentence similarity computation approach is proposed in this paper. First, a few candidate translation examples are selected form a large-scale corpus on the basis of the surface features and entropies of the given words. Second, the degree of generalization match between the input sentence and each of those candidate translation examples is computed respectively. Finally, the sentence similarity is computed according to the outcomes of the previous two steps. Experimental results from tests on IHSMTS show that this approach has a recall rate of 96% and a precision rate of 90% when applied to a corpus of 200,000 English-Chinese sentence pairs.

Key words: sentence similarity; example-based machine translation; hybrid-strategy machine translation; generalization matching

1 引言

基于实例的机器翻译EBMT(Example-based machine translation)的基本思路是:预先* 基金项目:国家自然科学基金资助项目(60502048,60272088);国家863计划基金资助项目(2002AA117010-02)。

作者简介:黄河燕(1963-),女,研究员,博士生导师,主要研究方向为自然语言处理与机器翻译、大型智能应用系统;陈肇雄(1961-),男,研究员,博士生导师,主要研究方向为自然语言处理、大型智能应用系统;张孝飞(1970-),男,副研究员,博士,主要研究方向为自然语言处理、机器翻译、信息检索。张克亮(1964-),男,副教授,博士后,主要研究方向为计算语言学、机器翻译。

构造由双语对照的翻译单元对组成的语料库,然后翻译过程选择一个搜索和匹配算法,在语料库中寻找最优匹配单元对,最后根据例句的译文构造出当前所翻译单元的译文[1]。如何根据源语言文本找出其最相近的翻译实例,是基于实例翻译方法的关键问题之一。尤其是实用的EBMT系统所需要的翻译实例库都非常大,一般在百万级乃至千万级双语句对以上[2]。因此,如何从这么大的一个语料库库中高效地计算出相似的翻译实例,提供给后面的双语词对齐、类比翻译处理等模块,是影响EBMT系统翻译能否成功的关键因素之一。因为得不到有效的相似实例,其结果只有一个:导致EBMT翻译失败(或生成的译文质量很差)。

目前计算句子相似度的方法主要有:基于N元模型的方法[3, 4]和基于编辑距离的方法[5]等,并且在这些方面的研究也取得了许多进展。但是,这些方法主要是针对机器翻译系统的评测,一是评测时要求处理的语料都比较小,而进行EBMT翻译时需要处理大规模语料,这些方法难以胜任。二是这些方法几乎没有使用任何语法、语义知识,不能有效地融合翻译系统其他模块相关的处理结果和处理方法,最终效果难以提升。本文针对这些问题,提出一种多层次句子相似度计算的新方法:首先基于句子的词表层特征和信息熵从大规模语料库中选择出少量候选实例,然后针对这些候选实例进行泛化匹配,从而计算出相似句子。

论文其余部分安排如下:第二部分将详细讨论本文提出的多层次句子相似度计算方法;第三部分给出本文算法在多策略机器翻译系统[6]IHSMTS上的实验结果及数据分析;第四部分是对本文算法的一个简短总结和下一步研究的设想。

2 多层次句子相似度计算

2.1 基于词表层特征和信息熵的候选实例检索

候选实例检索要解决的问题是,如何高效快速地从大规模语料库中选出少量句子以进行精确地句子相似度计算。因此,候选实例的检索需要考虑以下一些方面:

1、候选实例检索算法的设计,首先也是最重要的应该是能把最相似的、最有利于类比翻译的实例检索出来。因为如果检索不到相似实例或检索出来的实例相似性过低,都会导致类比翻译的失败。

2、检索出来的候选实例数量要适当。候选实例太少很容易遗漏最相似的翻译实例,导致翻译失败或译文质量不高;候选实例太多,则会占用过多的计算资源,导致系统性能严重下降。根据我们的经验,理想的候选实例应该在5个左右。

3、到目前为止,研究人员还没有找到一种简单通用的方法来计算句子之间的相似度。因此,候选实例的检索策略还需要与具体系统的后续处理方法和处理过程通盘考虑,以取得整个系统的最优化。

在处理过程中,我们把句子表示成单词的集合。

定义1:句子的词集合表示为

(S)={W1, W2, …Wn} …………………………………………… (1)

其中S表示句子,Wi为句子中的单词。对于英语,词Wi需要事先进行形态还原;对于中文,句子S需要事先进行词切分处理。

定义2:句子S1和 句子S2的表层相似度:

Sims(S1, S2)= 2*((S1)  (S2)) /(Len(S1)+Len(S2))………………. (2)

其中表示集合的求交运算。Len表示句子的长度,运算符表示求集合中的元素个数,

即句子中含有的单词数。

两个句子的表层相似度越大,则输入的待翻译句子与翻译实例相同的单词就越多,后续类比译文构造过程对翻译实例所要做的修改量也就越少。这说明表层相似度的计算方法从总体上是符合EBMT系统的要求,即有利于最终生成高质量的译文。

定义3:词信息熵

H(w)lgM/m ………………………………………. (3)

其中w表示词,M表示语料库中的句子总数,m表示出现了词w的句子数。词的信息熵值越大,说明该词在语料库中的出现频度越低,对区分句子的作用也就越大。 定义4:句子S1和 句子S2的信息熵相似度:

SimHH(w) ………………………………………. (4) i

其中wi{(S1)(S2)},运算符和的含义参见前面定义1和定义2。 两个句子的信息熵相似度越大,则从概率上来讲,输入的待翻译句子与翻译实例在语义上更相似。同时通过信息熵的计算方法,对一些特别常用的词比如{the、a、and、of}等起到了抑制作用。

进行候选实例检索时,首先根据(2)式的表层相似度计算方法,从大规模语料库中选出一定数量的句子,比如m个句子,然后根据(4)式的信息熵相似度计算方法,再从这m个句子中选出n个句子。实验中我们设定m=20,n=5。要说明的是,我们没有在整个语料库中直接利用(4)式信息熵的大小来筛选候选实例,这是因为如果在整个语料库中直接利用信息熵的大小来筛选候选模式,则会给一些非常用词以过大的比重,比如在我们的统计中仅出现一次的词(比如单词borax)其信息熵是最常用词{the}的16.8倍,结果会导致选出来的翻译实例在句子结构上与输入的待翻译句子相差很大,不利于后续的类比译文构造。

2.2 基于泛化的匹配度计算

基于泛化的匹配度计算,指的是在泛化的基础上计算候选实例与输入的待翻译句子间的模糊匹配度。

2.2.1 泛化

我们看下面这个例子:

翻译实例:I'll look in my diary to see if I'm free next Wednesday.

输入句子:I'll look in my diary to see if I'm free next Friday.

输入句子中是“Friday”,而翻译实例中是“Wednesday”,如果基于实例模式精确匹配,则输入句子没法翻译。但如果把翻译实例经词法分析泛化成下例模式:

I<NP> will<AUX> look<VP> in<PROP> my<T> diary<NP> to<PROP> see<VP> if<WH> I<NP> am<BE> free<AP> next<AP> X<TIM>.

其中X表示短语变量,X<TIM>表示一个类别属性为TIM的短语变量,它可以跟任何一个类别属性为TIM的短语匹配。为了方便说明泛化的意义,这里属性只使用了词类这一个参量。在实际系统中除了词类属性外,还应该使用词形、词汇等价类、词的同义、反义、上下位、蕴含以及语境语用(上下文)等信息。

对输入句子“I'll look in my diary to see if I'm free next Friday.”做同样的词法分析处理,结果如下:

I<NP> will<AUX> look<VP> in<PROP> my<T> diary<NP> to<PROP> see<VP> if<WH> I<NP> am<BE> free<AP> next<AP> Friday<TIM>.

比较泛化实例和输入句子的词法分析结果,Friday<TIM>与X<TIM>能匹配上,从而可以根据该翻译实例类比推理构造出输入句子的译文,即在本例中,将Wednesday<Tran:星期三>换成Friday<Tran:星期五>即可。

由此可见,首先根据待翻译的输入句子对翻译实例的相关语法单位进行泛化,即形成具

有一定复杂特征的变量;再根据泛化实例类比推理构造出输入句子的译文。在这里,类比推理实际上就是一个变量属性约束匹配的过程;而译文构造主要就是通过对泛化实例进行替换、复制、删除和插入等操作来完成。

2.2.2泛化匹配度

进行泛化匹配时,我们综合考虑了词形、词类、词汇等价类、词的同义、反义、上下位、蕴含以及语境语用(上下文)等信息。

定义5:词汇泛化匹配度LGD(Lexical Generalization Matching Degree):表示输入句子中的某个词汇与翻译实例中的某个词汇可以相互替换的可能性。它实际上跟词汇相似度、词汇在句子中的词性以及词汇的上下文信息有关。LGMD由下式计算:

LGMD(w1,w2)f(SimLex,SimPos,SimCon)

SimLexSimPosSimCon,SimLexSimCon,SimPosSimCon,0,ifSimLex0&SimPos0ifSimLex0&SimPos0 …… (5) ifSimLex0&SimPos0

ifSimLex0&SimPos0

上式中,,是三个系数,表示各种情况的可信度权值。实验中我们设1,0.9,0.8。Simlex表示词汇相似度,SimPos表示词性相似度,SimCon表示语境相似度。其中Simlex的计算式如下:

1,ifw1w2或w1,w2同一词汇等价类……… (6) SimLex(w1,w2),ifw1w2dis_sem(w,w)12

上式中dis_sem(w1,w2)表示词汇w1,w2的语义距离,是权值系数,实验中我们设0.8。语义距离的计算我们采用了基于HowNet的方法。HowNet提供的义原分类树把各个义原以及它们之间的关系以树的形式组织在一起,树中父节点和子节点的义原具有上下位关系。因此,可以利用义原分类树来计算两个词汇之间的语义距离。计算时,我们把语义距离定义为两个词对应的义原在义原分类树中与最近邻共同祖先节点间距离的平均值。

SimPos的计算式如下:

1,ifPos(w1)Pos(w2) ……………… (7) SimPos(w1,w2)0,ifPos(w1)Pos(w2)

上式中Pos(w)表示词汇w在句子中的词类标注属性。

SimCon的计算式如下:

1,ifdis_con(w1,w2)0 ……………… (8) SimCon(w1,w2)dis_con(w1,w2)

上式中也是一个权值系数,实验中我们取值0.8。dis_con(w1,w2)表示词汇w1,w2的上下文偏移距离,它的值主要是在同语词对齐的基础上通过观察当前词左右N/2个词(即宽度为N的词汇窗口)来决定。

定义6:句子泛化匹配度SGMD(Sentence Generalization Matching Degree):表示该翻译实例作为范例对输入句子进行类比翻译的可信度。SGMD由下式计算:

2

SGMD(s1,s2)iLen(s1)i0argmaxLGMD(wi,wj)0jLen(s2) ……………… (9) Len(s1)Len(s2)

上式分母中Len(s1),Len(s2)分别表示输入句子和翻译实例的句子长度。

2.3 句子相似度计算

最后的句子相似度由下式计算:

Similarity(S1, S2)= SGMD(s1,s2)Sims(S1, S2) SimH……. (10)

其中,,是三个权值系数,分别表示泛化匹配度、表层相似度和信息熵相似度的权值,并且1。实际设置时,由于泛化匹配度能比较全面的从词汇、语法、语义和上下文等多方面考察句子的相似性,所以设置的相对大一些,又因为信息熵相似度是在表层相似度基础之上计算出来的,所以设置的相对小一些。

3.实验设计与结果分析

EBMT系统的句子相似度计算,目的就是为了能从大规模语料库中选择出最相似的翻译实例,供后续模块进行类比译文构造。为了比较全面地评估本文算法,我们使用了准确率、召回率和F值等三个指标,它们的计算式分别定义如下:

准确率

召回率能正确找出相似句子的总数测试句子的总数能正确找出相似句子的总数100%..............................(11)100%..............................(12) 存在标准相似句的总数

2(准确率召回率)F_score.....................................................(13)准确率回率

开始测试前,我们首先向系统中导入20万英汉句对,中文和英文大约各有200多万词,其中英文平均句长为12.5个词左右,中文平均句长为11个词左右。然后从这20万英汉句对随机挑选出100个中文句子,再对这100个中文句子分别进行人工修改,最终形成400个不同的句子,作为测试集。

测试时,我们逐句地把测试集中的句子输入系统,系统返回相似度大于0.75 的所有翻译实例,并且返回的每个翻译实例都附有机器自动计算出来的相似度。然后对返回的每个翻译实例进行人工判别,人工判别的依据是:○1能否把相似句子提取出来,这一项主要反映在召回率上;○2机器自动计算出来的相似度与人工主观判断的拟合性,这一项主要反映在准确率上。试验结果如表1所示。

从表1中的试验结果可以看出,准确率达90%说明机器自动计算出来的相似度与人工的主观判断是很接近的;召回率达96%说明算法能够从大规模语料库中比较有效地检索出相似实例。

物换星移几度秋相似的句子篇五
《汉语句子相似度计算方法比对之研究》

2007年第10期福建电脑

51

汉语句子相似度计算方法比对之研究

赵巾帼12,徐德智1,罗庆云2

(1.中南大学信息学院湖南长沙410000

2.湖南工学院计算机科学系湖南衡阳421008)

摘要】【:相似句子检索,在自然语言处理领域具有非常广泛的应用背景,如信息过滤技术中的句子模糊匹配,基于实例的机器翻译的原语言检索,自动问答系统中常问题集的检索以及问题与答案的匹配,基于双语语料库的英文辅助写作等。本文在介绍了汉语句子相似度计算的有关概念之后,对几种典型的汉语句子相似度的计算方法进行了介绍,并分析了各方法的优缺点。

关键字】【:句子相似度信息处理在中文信息处理中,句子相似度计算是一项基础而核心的

研究课题,长期以来一直是人们研究的一个热点和难点。句子相似度计算在实际中有着广泛的应用,它的研究状况直接决定着其他一些相关领域的研究进展,例如,在基于实例的机器翻译、信息检索、信息过滤、自动问答等方面,相似度计算都是一个非常关键的问题。随着这些领域的迅速发展,句子相似度计算也诞生了许多方法。

计算方法的分类及衡量标准1.句子相似度的定义、

定义:句子相似度指两个句子在语义上的匹配符合程度,值为[0,1]之间的实数,值越大表明两个句子越相似。当取值为1时,表明两个句子在语义上完全相同;值越小则表明两个句子相似度越低,当取值为0时,表明两个句子在语义上完全不同。

计算方法:在句子相似度的算法中,从具体的表现形式来说有多种多样,不同的算法适应的应用领域也不同。但归结起来可概括为三类方法:基于词特征的句子相似度计算,基于词义特征的句子相似度计算以及基于句法分析特征的句子相似度计算。不同方法很大程度上依赖于汉语句子的不同表示形式,具体的算法有:基于向量空间的方法,使用语义词典的方法,使用语义依存的方法,基于关键词语义的方法等等。

衡量标准:从不同领域出发,看待句子相似度角度也不同,导致度量的标准不同。目前的存在的问题是,没有找到同一的度量标准;也可能不存在这样的标准,具体的度量准则与具体的应用有关。在某些情况下,两个句子语法结构相似,可能就可以认为是相似的句子(比如:英汉双语例句检索系统);某些情况下需

总之,度要两个句子意思基本相同(比如基于FAQ的自动问答)。

量标准带有很大的主观性。因此一直没有一个公认的评测集,不容易纵、横向比较。

2.汉语句子相似度的计算方法

计算句子的相似度,等价于计算句子之间关键词的相似度,比较两个词之间的相似度,往往可归结为比较与词相关联的概念之间的相似度。

2.1基于向量空间模型VSM的句子相似度计算

由于在表达句子主题时起主要作用的是实词,所以在这个环节中,主要对句子中的名词、动词、形容词等实词进行分析。从句子中去掉叹词、拟声词、语气词等对句子主题贡献不大的虚

利用这两个向量夹角的余弦值词,其余的实词以向量形式表示。

作为句子相似度。任给两个句子a和q,提取句子A中的名词

人名(nr)、地名(ns)、机构团体(nt)、其他专名(nz)、代词(n)、

形容词(a)和动词(v)等实词表示为向量a=(a1,a2,…,(r)、

an),这里n是从句子中提取的主题词的数量,aj是第j个词在句子中出现的次数,同样Q表示为向量q=(q1,q2,…,qn),则两个句子的相似度计算可用(公式1)表示。

关键词的顺序,关键词的距离以及句子的长度等信息。因此具有一定的局限性。

2.2基于语义距离的句子相似度计算

基于词义距离的句子相似度计算,需要一定的词义知识资源作为基础。计算句子之间的词义相似度,要确定句子中的词在这个句子中所表达的词义。本文中把词义距离定义为两个词对应的义元在义元树中的最短距离。因此首先采用了词义消歧,然后进行词义距离的计算。具体方法如下:

设2个句子A和B,A包含的词为A1、…、A2、Am,B包含的词为B1、…、B2、Bm,则词Ai(1!i!m)和Bi(1!j!n)之间的相似度可用s(Ai,Bj)来表示,这样就得到两个句子中任意2个词的相似度,A,B句子之间的语义相似度s(A,B)用(公式2)表示。

s(A,B)=(

式中:

ai

m

m

+

n

i

b

n

)/2

(公式2)

ai=max(s(Ai,B1),s(Ai,B2),...,s(Ai,Bn))

bi=max(s(Bi,A1),s(Bi,A2),...,s(Bi,An))

在相似度计算时,该种方法充分考虑了句子中每个词的深

层信息,使表面不同,深层意义相同的词被挖掘出来。但由于词典的不全面和一些未登录词的词义代码的缺失,也给计算带来了一定的误差。

2.3基于语义依存的句子相似度计算

依存句法是由法国语言学家L.Tesniere在其著作《结构句法基础》(1959年)中提出,对语言学的发展产生了深远的影响,特别是在计算语言学界备受推崇。依存语法通过分析语言单位内成分之间的依存关系揭示其句法结构,主张句子中动词是支配其他成分的中心成分,而它本身却不受其他任何成分的支配,所有受支配成分都以某种依存关系从属于支配者。

依存句法分析可以反映出句子中各成分之间的语义修饰关系,它可以获得长距离的搭配,并跟句子成分的物理位置无关。利用依存结构计算句子间的相似度,关键的一步是如何获得句子各成分间的依存关系信息。目前国内,哈尔滨工业大学计算机科学与技术学院智能内容管理实验室开发了依存句法分析器,该分析器的准确率能达到86%以上。可以通过该依存句法分析器的分析,获得句子各成分之间的依存关系。

在利用依存结构进行相似度计算时,只考虑那些有效搭配对之间的相似程度。所谓有效搭配对是指全句核心词和直接依

名词以存于它的有效词组成的搭配对,这里有效词定义为动词、

及形容词,它是由分词后的词性标注决定的。

相似度计算公式如下(公式3):

SIM(Sen1,Sen2)=

a·q

=cosine(a,q)=

|a|´|q|

å

n

ni=12

ai´qi

åW

i=1

n

i

2

a´i=1i

å

qi=1i

n

2

(公式1)

åWi为句子1和句子2有效搭配对匹配的总权重,PairCount1

i=1

n

Max{PairCount1,PairCount

}

(公式3)

向量空间模型没有充分利用句子中的其他有用信息。例如,为句子1的有效搭配对数,PairCount2为句子2的(下转第68页)

68

福建电脑2007年第10期

巨大浪费,不符合法律的经济效益,也给信息网络安全的法律、法规、规章的具体操作带来了难度。其二,我国针对信息网络安全的规制往往过于笼统难以实际操作。例如,《中华人民共和国计算机信息系统安全保护条例》第7条规定:任何单位或者个人,不得利用计算机信息系统从事危害国家利益,集体利益和公民合法利益的活动。不得危害计算机信息系统的安全。这种笼统的规定无实际操作性,难以适应信息网络技术的发展和面临的越来越多的问题。

4.完善我国信息网络安全问题的几点建议

目前,我国信息网络安全法律体系的建立首先应当考虑以下几个方面;

(一)完善信息网络安全法律体系。从世界范围看,美国已经颁布了《联邦电信法》(1996年)、金融秘密权利法》伪造存取手段及计算机诈骗与《(1970年)、《滥用法》联邦计算机安全处罚条例》(1986年)、《(1987年);瑞典

数据法》版权(计算在1973年颁布了《,贵国在1985年颁布了《

机机软件)修改法》匈牙利、菲律宾、新加。另据资料,澳大利亚、

坡、韩国等30多个国家也都制定了有关计算机安全监管的法律、法规。1997年6月13日,德国联邦下议院通过了世界上第一部规范计算机网络服务和使用的单行法律《为信息与电信服务确立基本规范的联邦法》。

但在我国,目前,对涉及计算机网络安全的法律,如上所述,缺乏立法上的统一性,需要进行专门立法,以适应计算机网络飞速发展的需要。

(二)对信息网络安全进行行政管理

从我国目前的实际情况来看,行政机关对我国网络安全进行管理是必要的,它有利于网络的巡查和健康发展。一方面,行政管理有利于防止低级下流的信息通过网络广泛传播。另一方面,也可防止网络犯罪。

行政机关可通过对网络信息进行适当的限制。例如,对危害国家安全、色情信息、恐怖主义、种族歧视等有害的信息进行必

要的限制,以防止危害的进步扩大。

政机关可同时,行政机关也可网络服务商进行必要的管理。

对服务商进行适当的检查,对国内外具有不良内容的站点进行监管或隔离,并通知和报告主管机关。对相关犯罪事实事"网络成瘾"用户进行协作。则下,享有隐私权。侵犯他人隐私权将依法受到惩处。

另外,行政机关也可对网络使用者进行必要的管制,对限制行为能力人和无行为能力人的入网、上网进行必要的管制。对涉及犯罪的用户进行必要的监控,并配合侦查机磁的侦查活动。

(三)进行必要的法制宣传和教育,提高全民族的网络安全意识

我国已成为网络普及最广泛的国家之一,在全国进行网络安全教育,普及网络安全知识具有一定的现实意义,对广大用户免受计算机病毒侵害、远离黑客入侵、防止数据丢失,都有重要的预防作用。对于降低网络犯罪也会产生直接的影响。参考文献:

1.张兴虎.黑客攻防技术内幕.北京.清华大学出版社,2002

2.刘化君.计算机网络原理与技术.北京.电子工业出版社,

2005

3.(美)DonnB.Parker.Wiley,John&Sons,Inc.原书名FinghtingComputerCrime,刘希良,吴艺霞等译.反计算机犯罪.北京.电子工业出版社,1999

4.段海新,刘武,赵乐南等译.计算机取证.北京.人民邮电出版社,2003

5.夏锦尧.计算机犯罪问题的调查分析与防范.北京.人民公安版社,2002

6.王军.网络传播法律问题研究.北京.群众出版社,20047.杨正鸣.网络犯罪研究.上海.上海交通大学出版社,2004

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

(上接第51页)

有效搭配对数。

这种方法从句法深度进行考虑,考虑到了词与词之间的依存关系,对句子的理解更加充分,从而更准确的得到句子相似度的值。但是,现有的句法分析技术还不够成熟,还无法将所有的句法信息特征全部考虑进来,所以就产生了一定的误差。2.4基于关键词语义的句子相似度计算

(1)词与词之间语义相似度计算

对于两个句子之间的语义相似度可以通过提取的关键词间的语义相似度获得。而词语间的语义相似度又可以通过语义树中词语间的距离和语义树的高度获得。

假设有两个词语:xi,yj,在语义树中,连接这两个词语结点间的边数为距离,用dist(xi,yj)表示,其计算方法为:通过xi,yj在语义树中的位置信息分别求出其与最近共同祖先的距离,然后相加。遍历关键词xi的所有出现位置,分别计算其与关键词yj的距离,取其最小值即为词语xi和词语yj间的距离。

则两个词语间的最长距离为2(H-1)。假设语义树的高为H。

将两个词语间的语义相似度记为Sim(xi,yj),其计算公式为

Sim(xi,yj)=[a-dist(xi,yj)]/a(公式4)α是可变参数,此处令α=2(H-1)。通常,xi,yj间距离为0时,其相似度为1,为无穷大时,其相似度为0。可见两个词语间的距离越大,其相似度越小。

通常句子由词语组成。但是每个词语在句子中的重要性是不同的,可用权重W来表示。权重的取值范围是0到1。

权重的确定可由相关领域中经验丰富的专家来完成,但专家确定的初始权重未必是完全准确的。

(2)句子之间语义相似度计算

有了词与词之间的语义相似度,我们就可以来计算句子间的语义相似度。设两个句子A和B,设A包含的关键词为x1、x2、

词xi(1"i"m)和yi(1"j"…、…、xm,句子B包含的词为y1、y2、ym。

m)之间的相似度用来表示,这样我们得到一个的矩阵:

és(x1,y1),ês(x,y),

21

X=ê

êMê

ës(xm,y1),s(x1,y2),s(x2,y2),

Ms(xn,y2),

KLLL,,,,

s(x1,yn)ùs(x2,yn)ú

úMú

ú

s(xm,yn)û

(公式5)

其中,S(xi,yj)表示词语xi和词语yj间的语义相似度,可通过公式(4)计算获得。

假设词语x1,x2,…,xn的权重为W1,W2,…,Wn分别表示,可得到了句子A中所有词语与句子B之间的语义相似度用(公式6)表示。n

Similarity(A,B)=

åW

i=1

*(max(S(xi,y1),S(xi,y2),...,S(xi,yn)))

åW

i=1

(公式6)

i

在这种语义相似度计算中不仅考虑了词语的语义和权重,还考虑了词语之间的语义关系,如同义词、近义词、相关词等。尽管句子的表述方式可能不同,但关键词语(权重高的词语)总是会出现的,因此,计算得到的加权语义相似度更具有合理性。

句子相似度的三类方法也反映出了句子的三个重要特征:词特征、词义特征、以及句法特征。但是,这三类方法也都存在着自身的缺点,给计算带来了一定的误差;因此在不同的应用领域,应根据需要选择不同的计算方法,这样就可以更加全面、准确地衡量句子之间的相似度。

参考文献:

基于语义依存的汉语句子相似似度计算》1.李彬.刘挺.秦兵《.计算机应

用研究.2003年12月

基于常问问题集的中文问答系统研究》2.秦兵,刘挺等.《.哈尔滨工业大

学学报.2003年10月第10期

基于自然语言的主观题自动阅卷技术》西北大学学报(自然3.张小艳.《

科学网络版).2005年9月第3卷第8期

4.http://spark.vcmblog.com/archives/2006/93605.html

物换星移几度秋相似的句子篇六
《信息检索中的句子相似度计算》

计 算 机 工 程 第 37 卷 第12期

ol.37 No.12 V Computer Engineering 文章编号:文章编号:1000—3428(2011)12—0038—03 ·软件技术与数据库·软件技术与数据库· 2011年6月 June 2011 文献标识码:文献标识码:A 中图分类号:中图分类号:TP391.1

信息检索中的句子相似度信息检索中的句子相似度计算

王 品,黄广君

(河南科技大学电子信息工程学院,河南 洛阳 471003)

摘 要:为同时提高信息检索的查全率和查准率,提出一种基于语义依存度的句子相似度改进算法。在计算关键词相似度的基础上,研究基于语义依存相似度算法,在判定句子有效搭配对权重时加入语义角色标注信息,对算法进行加权,并用实例证明其可行性。在提高系统查全率的基础上,用改进算法对查询结果进行重排序,从而提高前K个返回结果的查准率。实验数据显示,重排序后的前20篇返回文档的查准率比系统排序前提高了3.6%。结果表明,该算法能有效提高系统查准率。

关键词关键词:信息查询;相似度;关键词;语义依存;依存树;重排序

Sentence Similarity Computation in Information Retrieval

WANG Pin, HUANG Guang-jun

(Electronic Information Engineering College, Henan University of Science and Technology, Luoyang 471003, China)

【Abstract】It is a difficulty problem that how to improve the recall and the accuracy ratio simultaneously on information searching. In view of this question, this paper proposes one kind of improved sentence similarity algorithm which based on the semantic interdependence degree. IT analyses the characteristics of algorithm based on semantic interdependence similarity, adds the semantic role labeling information through determining weights of the sentences effective collocation, and then weights the algorithm of keyword similarity calculation, then proves this algorithm feasibility with the example, makes re-sorting with the improved algorithm for inquiry results, which founded on enhancing the inquiry system recall. Thus enhance the accuracy ratio of the first K returns results. Experiment proves that this algorithm improves accuracy ratio of system, the first 20 of re-sorting compared with the before of system sorting, to enhance 3.6%.

【Key words】information inquiry; similarity; key words; semantic interdependence; interdependence tree; re-sorting

DOI: 10.3969/j.issn.1000-3428.2011.12.013

1 概述

信息检索是指从大量文档资源集合中自动地找到与用户

查询请求相关的各种信息[1],即使用户的查询句子或词语与

文档集信息匹配的一个过程,其实质就是对自然语言进行相

关的处理,从而使匹配的效果达到令人相对满意的程度。在

机器翻译、信息检索、自动问答等方面,句子相似度的计算

都是其中的关键技术[2]。文献[3]通过最大边缘相关方法进行

相似度计算;文献[4]则采用隐含语义索引方法。国内学者从

不同方面(如向量空间模型、语义距离、语义依存、关键词语

义、概念图等)来计算句子的相似度[5-8]。依据对语句的分析

层次,相似度计算主要有以下2种方法:(1)基于向量空间模

型的方法。该方法只是把句子看成词的线性序列,不对语句

进行相应的语法结构分析,而对语句相似度的衡量只利用句

子的表层信息,即组成句子的词的词频、词性等信息。由于

不加任何结构分析,该方法在计算语句之间的相似度时不能

考虑到句子整体结构的相似性。(2)对句子进行完全的句法与

语义分析。通过对被比较的两句进行词性标注、语义排歧、

句法分析语义分析等深层次的分析,找出句子的依存关系,

并在依存分析结果的基础上进行相似度计算。

文献[6]通过比较两句相同词的个数及其位置关系,得到

两句的词形相似度和词序相似度,再通过词形相似度和词序

相似度计算句子的相似度。但该方法未考虑任何句法结构信

息,对句子的整体语义分析不够;文献[7]对语句进行语义分

析,通过构建语义依存树树,比较有效搭配对来实现相似度

计算。但该方法未考虑不直接依存于全句核心词的有效词的相似度。本文融合上述2种方法的优点对相似度算法进行改进,用语义依存树的相似度来改进句子语序相似度,使其更能体现句子的语义信息,融合词形相似度的计算方法,从而弥补文献[7]中关键词在句子中有效但没有直接依存核心词的缺点。在基于统计方法的查询模型的基础上,将改进算法用于对查询结果的二次排序,在确保查询模型的查全率的基础上用二次排序提高查准率。 2 句子相似度计算 2.1 计算句子相似度的准备工作 在计算句子之间的语义相似度时,首先要确定句子中的词在这个句子中所表达的语义。如“这个菜很吃油”中的“吃”是“吸收”的意思,而“吃透思想”中的“吃”是“领会”的意思。然后利用依存结构计算句子间的相似度。本文采用哈尔滨工业大学信息检索研究中心开发的在线语言技术平台(Language Technology Platform, LTP)获得句子各成分间的依存关系信息。该平台用于对汉语进行句法分析,将句子由一个线性序列转化为一棵结构化的依存分析树,通过依存弧反映句子中词汇之间的依存关系,它可以同时对一个句子做词性标注、词义消歧、命名实体、句法分析和语义分析,通过该平台的分析,句子各成分之间的依存关系如图1所示。 基金项目:基金项目:河南省科技攻关计划基金资助项目(102102210159) 作者简介:王 品(1982-),女,硕士研究生,主研方向:语义Web;作者简介:黄广君,副教授、博士 收稿日期:收稿日期:2010-11-20 E-mail:yougushui2002@163.com

第37卷 第12期 王 品,黄广君:信息检索中的句子相似度计算 39

本文将该结果以依存树结构表示。例如:“今年他的毕业

论文被河南科技大学学报刊登。”可表示成树状结构,如图2

所示。

40 计 算 机 工 程 2011年6月20日 结果的前K个标题句进行句子相似度计算,并按相似度的大

小进行二次排序,从而提高前K个返回结果的查准率。现以

查询语句I以及查询结果的第M个标题为例,具体方法如下:

(1)对I句和M句分别用LTP系统进行句子分析。

(2)首先分别对I句和M句进行关键词抽取。若假设S为

一个句子;w为S中系统分析切词后的任意词;S′为S中关

键词序列。如果w为名词、代词、动词或形容词,则抽取w

输入S′中;然后利用式(1)对分析过的I和M句计算相似度。

(3)按上文方法对I和M句构建语义树,以语法树的树根

为中心,如果其叶子节点是动词、名词、形容词,则为有效

搭配对,作为有效结果输出,然后利用式(2)对分析结果进行

相似度计算。

(4)利用式(3)计算I句和M句的句子相似度。

4 实验及结果分析

对于句子相似度算法的实验,本文采用了50对句子作为

测试集,这些句子根据他们所表达的内在意义大致可以分为

4种类型:(1)A类句子表达的语义完全相同,只是表达方式

不同,其中主要的关键词是相同词或同义词;(2) B类句子的

大部分关键词是相同词或同义词,但是句子所表达的语义不

完全相同,有一定差距;(3)C类句子所表达的语义不同,只

是在句中出现了相同的关键字;(4)D类句子的关键词没有相

同词或同义词,但从语义上来看,两者还是表达了同一种事

物或事件。

通过实验得本算法中λ1=λ2=0.5。由式(3)中的条件0<

λ1≤λ2<1、λ1+λ2=1可得,λ2=1-λ1,0<λ1<0.5,然后联合通过

式(1)和式(2)得出的实验结果分别代入式(3)中就得到一组关

于λ1的形如Y=AX+B的直线集,在这里λ1代表的是词形在

句子相似度中的权重。由于一方面这些直线是离散的,不利

于求得λ1值,另一方面训练集的设计是有针对性的,所以利

用各类结果的平均值求解λ1的值。实验结果如图3所示。

图3 λ1取值对句子相似度的影响情况

设C类和D类直线的交点为O,O点所对应的λ1的值为

a。根据训练集的设计,C类句子的相似度应大于D类句子

的相似度,那么由图3可以看出,λ1>a。联合已知条件可以

得到,a<λ1≤0.5。当a<λ1≤0.5时,对于A类和D类这2类

句子来说,λ1的取值情况对整个相似度的影响波动很小,所

以,可以将图3中的这2条线忽略。从设计训练集的相似度

考虑一方面B类得相似度一定要大于C类,另一方面要让B

类和C类的句子相似度达到最大值,所以满足以上条件要求

的λ1取0.5。

确定λ1和λ2的值后4类句子的相似度结果见表1,可以

看出,改进算法的实验结果明显高于原方法。C类中改进算

法相似度不如文献[6]的高,原因是因为文献[6]的方法只注重关键字相似或相同,而没有注重句子的语义,而这些用来做实验句子只是关键词相似而表达的语义不同,所以改进后的方法比它的相似度稍低,但是为了提高查询结果的查准率,本文更加注重句子的语义,所以这样符合本文要计算相似度的宗旨,即在进行二次排序时愿意采用改进后的相似度来达到二次排序的目的。在A类句子中,文献[7]的语义优势表现明显,但是它对其他类型的句子相似度计算效果没有改进算法的效果好。 表1 相似度对比相似度对比 算法 相似度 A类 B类 C类 D类 文献[6]算法 0.874 0.575 0.550 0.275 文献[7]算法 1.000 0.500 0.125 0.333 改进算法 0.929 0.595 0.333 0.487 用改进的相似度算法通过查询模型对查询结果进行二次排序后,在确保查全率的基础上,查准率比排序前有所提高。具体情况见表2。 表2 评测指标对比评测指标对比 查询扩展算法 MAP prec@20 未扩展(初始检索性能) 0.191 2 0.452 经典算法(LCA) 0.267 3 0.551 本查询模型的扩展方法 0.289 1 0.720 重排序后 0.289 1 0.746 5 结束语 本文提出一种汉语句子相似度计算的改进算法,并对查询结果进行二次排序,在确保查全率的基础上提高查准率。该算法在计算关键词相似度的基础上,引入依存度来分析语句的内部环境,表达句子的深层次意义,从而更加贴切的理解用户的查询意图。实验证明查询结果的查准率有所提高。但由于本文算法很大程度上受依存分析的影响。此外,在二次排序时只比较了原查询语句与第一次查询结果标题的句子相似度,而没有考虑摘要与原查询语句的句子相似度。因此,下一步研究方向是进一步提高依存分析的准确率,并考虑摘要信息。 参考文献 [1] 李 立. 中文信息检索系统研究[D]. 武汉: 华中师范大学, 2008. [2] 金春霞. 多层次结构句子相似计算的应用研究[J]. 计算机应用与软件, 2009, 26(10): 180-202. [3] Carbonell J G., Goldstein J. The Use of MMR, Dirversity-based Reranking for Recording Documents and Producing Summaries[C]// Proc. of ACM SIGIR’98. Melbourne, Australia: ACM Press, 1998. [4] Ding C H Q. A Similarity-based Probability Model for Latent Semantic Indexing[C]//Proc. of ACM SIGIR’99. Berkeley, California, USA: ACM Press, 1999. [5] 赵巾帼, 徐德志, 罗庆云. 汉语句子相似度计算方法比对之研究[J]. 福建电脑, 2007, (10): 51-68. [6] 吕学强, 任飞亮, 黄志丹, 等. 句子相似模型和最相似句子查找算法[J]. 东北大学学报: 自然科学版, 2003, 24(6): 531-534. [7] 丁 豪, 杨国纬. 基于自然语言处理的文本自动校对系统[D].成都: 电子科技大学, 2006. [8] 卜文娟, 张 蕾. 基于概念图的中文FAQ问答系统[J]. 计算机工程, 2010, 36(14): 29-31. 编辑 金胡考

物换星移几度秋相似的句子篇七
《句子相似度计算在FAQ中的应用》

句子相似度计算在FAQ中的应用

王洋 秦兵 郑实福

(哈尔滨工业大学321信箱,哈尔滨 150001)

E-mail: {wy,qinb,zsf}@ir.hit.edu.cn

摘要:本文设计并实现了一个基于常问问题库的中文问答系统。对用户以自然语言输入的问题,该系统能够自动地在FAQ(Frequently-Asked Question)库中寻找候选问题集,通过计算句子相似度,将匹配的答案返回给用户。该系统还能够自动地更新和维护FAQ库。文中着重介绍了用于查找候选问题集的数据结构以及句子相似度的计算方法。

关键词:自动问答;常问问题库;候选问题集;句子相似度

引言

自动问答系统是目前自然语言处理领域一个非常热的问题,它即能够让用户用自然语言句子提问,又能够为用户返回一个简洁、准确的答案,而不是一些相关的网页。因此,自动问答系统和传统的依靠关键字匹配的搜索引擎相比,能够更好地满足用户的检索需求,更准确地找出用户所需的答案,具有方便、快捷、高效等特点。在国际上每年一度的文本信息检索(TREC)会议上,自动问答(Question Answering Track)是最受关注的主题之一。

常问问题库 (FAQ)是很多自动问答系统中的一个组成部分。它把用户常问的问题和相关答案保存起来。这样,对于用户输入的问题,可以首先在常问问题库中查找答案。如果能够找到相应的问题,就可以直接将问题所对应的答案返回给用户,而不需要经过问题理解、信息检索、答案抽取等许多复杂的处理过程。本文将对自动问答系统中FAQ的设计和实现方法做一全面介绍,并着重介绍了其中的句子相似度计算。本文所介绍的句子相似度的计算方法不仅能够用于FAQ的检索,还能够用于自动问答的其它阶段,本文简要地介绍了其在答案查找中的应用。

1 系统概述

系统主要包含三个部分:候选问题集的查找,句子相似度计算,FAQ库的更新。 2 候选问题集的查找

这一步骤的目的是要从常问问题库(FAQ)中找出若干个候选的问题组成候选问题集,以缩小查找的范围,使后续的相似度计算等较复杂的处理过程都在候选问题集这个相对较小的范围内进行。在本系统中,我们选出FAQ中50%的问句作为候选问题集。设用户输入的问句(简称为目标问句)中共有n个词:W1、W2、„、Wn。FAQ库中共有m个问句,第i(1 i m)个问句含有ni个词:Q1、Q2、„、Qni。第i个问句和目标问句之间重叠的词个数记为

Numi,即NumiW1,W2,...,WnQ1,Q2,...,Qn。我们将Numi值最大的前50%的FAQ问句选出来,组成候选问题集。

计算Numi时,如果将FAQ库中的问句一一读出来和目标问句进行比较,效率是比较低的。对于目标问句中的某个词,为了能够快速地统计FAQ库中究竟有多少问句含有这个词,我们设计了如图1所示的数据结构:

FAQ库

图1 用于查找候选问题集的数据结构

图1中的FAQ库记录了所有原始的问题、答案对,Pos表记录了FAQ库中每个问句在库文件中的位置。Index表中的Word1、Word2„„是FAQ库中的问句所包含的词经过排序后所形成的链表。而每个Wordi指向一个S链表,这个S链表中的每个节点记录FAQ库中含有Wordi的一个问句的句子号。

在实际的检索过程中,对于目标句子中的一个词W,我们首先寻找它在Word链表中的位置。由于Word链表是有序的,我们可以很容易地利用折半查找等方法在O(logn)的时间复杂度内找到目标。不妨设找到的节点为Wordk,沿着Wordk所指向的S链表,我们就可以统计出有哪些FAQ库中的问句包含Wordk。对目标问句中的每一个词都进行这样的处理之后,我们就可以进一步计算出上面提到的Numi的值。

接下来,我们找出Num值最大的50%个问句的句子号,通过Pos表,可以在很容易地将FAQ库的文件指针移到相应的问句处,并把问句读出。

3 句子相似度计算

候选问题集确定后,下一步是要从这个集合中找出和用户输入的问句(这里称为目标问句)最相似的问句。我们所用的方法是计算候选问题集中每个问句和目标问句之间的相似度,对应的相似度最大的问句就是我们要找的句子。

计算相似度的方法有很多,这里我们综合运用了两种方法来计算句子的相似度,一种是基于向量空间模型的TFIDF方法,另一种是基于语义的方法。下面具体介绍这两种方法。

3.1 基于向量空间模型的TFIDF方法

在信息检索领域中,基于向量空间模型的TFIDF方法被广泛地用来计算文本之间的相似度。若FAQ中所有问句包含的所有的词为w1、w2、„、wn,则FAQ中的每一个问句都可以用一个n维的向量TT1,T2,...,Tn来表示。其中,Ti1in的计算方法为:设n为wi在这个问句中出现的个数,m为FAQ 中含有wi的问句的个数,M为FAQ中问句的总数,那么Tinlog(M/m)。从这个式子中可以看出,出现次数多的词将被赋予较高的n值,但这样的词并不一定具有较高的log(M/m)值。例如,在汉语中“的”出现的频率非常高,即tf值(n值)很大,但由于“的”在很多文档中都出现,它对于我们分辨各个文档并没有太大的帮助,它的idf值log(M/m)将是一个很小的数。因此,这种方法综合地考虑了一个词的出现频率和这个词对不同文档的分辨能力。

用同样的方法,我们可以计算目标问句的n维向量TT1,T2,...,Tn。得到T和T后,它们所对应的两个句子之间的相似度就可以利用T和T这两个向量之间夹角的余弦值来表示。 

Similarity(T,T)TTii

i1n

TT2

ii

i1i1nn (1) 2

TFIDF方法综合考虑了不同的词在问句中的出现频率(tf值)和这个词在整个FAQ库中对不同句子的分辨能力(idf值)。这种方法不需要任何对文本内容的深层理解,它能够在我们的FAQ中应用,很重要的一个原因是我们的FAQ 库是非受限域的自然语言文本,而且FAQ库通常都很大。

3.2 基于语义的相似度计算方法

TFIDF是信息检索领域常用的方法,并且一般来说能够产生较好的效果。但在我们的这个系统中,单靠TFIDF的方法还不能达到我们所预期的结果。原因有两个:第一,TFIDF方法只有当句子所包含的词比较多时效果才好。因为TFIDF是一种统计的方法,只有当句子包含的词数越多,相关的词才会重复出现,这种统计方法的效果才能体现出来。而在我们的FAQ中,我们所面对的是单个的问句,问句中包含的词的个数往往不足以体现这种方法的效果;第二,TFIDF方法只考虑了词在上下文中的统计特性,而没有考虑词本身的语义信息。例如,“西红柿是什么颜色?”和“番茄是什么颜色?”所表达的应该是完全相同的意思,因为“西红柿”和“番茄”在语义上是等价的。由于TFIDF没有考虑到这种语义信息,因此具有一定的局限性。这将在本文3.3.4的实验结果中体现出来。

基于上述两点,我们又引入了基于语义的相似度计算方法。

3.2.1 语义知识资源

计算语义相似度,需要一定的语义知识资源作为基础。在英语中,人们通常用WordNet。这里我们用董振东和董强先生创建的知网(HowNet)作为系统的语义知识资源。知网是一个以汉语和英语所代表的概念为描述对象,以揭示概念与概念之间以及概念所具有的属性之间的关系为基本内容的常识知识库。它是一个网状的有机的知识系统。

语义词典是知网的基础文件,在这个文件中每一个词语的概念及其描述形成一个记录。每一个记录都包含词语、词语例子、词语词性、概念定义等四项。我们这里主要用到的是概念定义(即DEF)这一项。

计算句子之间的语义相似度,首先要确定句子中的词在这个句子中所表达的语义。例如,“打毛衣”中的“打”作为“编织”的意思,而“打酱油”中的“打”作为“买”的意思,而我们需要确定“打”这个词在不同的句子中的不同含义。再比如,“西红柿”和“番茄”是两个不同的词,但在语义的层面上,这两个词是相同的。这一步的工作称为语义消歧。我们用的是哈尔滨工业大学计算机学院信息检索实验室所做语义消歧系统。该系统能够对经过分词和词性标注的句子进行语义消歧,并在每个词后面标注上相应的语义号。例如:

对于句子:

哈尔滨/nd 在/p 什么/r 地方/ng ?/wj

经过语义消歧后变为:

哈尔滨/17 在/1269 什么/468 地方/17 ?/-1

每个语义号都对应知网中的一个义原。例如,17对应的义原为“place| 地方”,1269对应的义原为“{location}”,468对应的义原为“aValue|属性值,kind|类型”,-1表示在知网中找不到这个词(例如“公转”)或者这个词没有有价值的语义信息(例如标点符号)。 对于上面所说的“打酱油”中的“打”,语义号为348(buy|买),“打毛衣”中的“打”语义号为525(weave|辫编)。由此可以看出,语义消岐能够挖掘出一个词在上下文中确切的含义,而不是仅仅停留在词的表面。这位后面的工作奠定了基础。

除了语义词典,知网中还提供了义原分类树,义原分类树把各个义原及它们之间的联系以树的形式组织在一起,树中父节点和子节点的义原具有上下位的关系。我们可以利用义原分类树计算两个词之间的语义距离。知网中存在Entity、Event、Attribute等11棵义原树。但有些义原树,例如Converse、Antonym等,里面的义原没有父子关系,并不体现上述的词与词之间的上下位特征,因此无法使用。我们在11棵义原树中总共选取了以下6棵义原树用来计算词的语义距离:Entity、Event、Attribute、Attribute Value、Quantity、Quantity Value。

3.2.2 词与词之间语义相似度的计算

首先需要计算两个词之间的语义距离。这里,我们把语义距离定义为两个词对应的义原在义原树中的最短距离。如果两个词中有一个词的义原无法在3.2.1中提到的六棵义原树中找到,或者两个词的义原分别处于两个不同的义原树,我们认为这两个词之间的语义距离为∞。 设两个词U、V之间的语义距离为p,那么U、V之间的相似度可以用公式(2)来计算:

(p)H(p(HL)/D) (2) s(U,V)(p)0

这里的H和L是两个词之间相似度可能取得的最大和最小值。在本系统中,令H=1,L=0。D是U、V所在的义原树的中两个义原的语义距离可能的最大取值。即如果某个义原树中深度最大的两个义原的深度分别为D1、D2,那么这棵语义树的D=D1+D2。注意,根据上面所说,当p≠∞时,U、V的义原必定是在同一棵义原树中,因此,关于D的定义是合理的。

3.3.3 句子之间语义相似度的计算

有了词与词之间的语义相似度,我们就可以来计算句子间的语义相似度。设两个句子A和B,设A包含的词为A1、A2、„、Am,B包含的词为B1、B2、„、Bn。词Ai1im和Bj1jn之间的相似度用sAi,Bj来表示,这样我们得到一个mn的矩阵:

s(A1,B1),s(A1,B2),...,s(A1,Bn) M(A,B)......s(Am,B1),s(Am,B2),...,s(Am,Bn)

利用这个矩阵,我们可以用公式(3)得到A,B 两个句子之间的语义相似度s(A,B): s(A,B)m

i1max(s(Ai,B1),s(Ai,B2),...,s(Ai,Bn))

m (3)

最后,我们利用TFIDF算出的相似度和用语义算出的相似度的加权平均,就可以计算出两个句子最终的相似度。设利用TFIDF算出的句子相似度值为t,利用语义算出的句子相似度值为s,两个句子最终的相似度m可以表示为公式(4):

mtTsS (4) TS

T和S是分别赋予t、s的权重。

3.3.4 试验结果

语义相似度的效果可以用下面的实验来说明。

FAQ库中有两个句子:

S1=楼房如何建造?

S2=高尔夫球怎么打?

我们分别来看这三个句子和用户输入的一个句子“房子怎么盖?”(简称为S)的相似度。

我们可以看出,由于S1和S中没有任何相同的词,所以利用TFIDF计算出的相似度为0。但是S1和S表达的是同一个意思,这就不符合我们的要求了。而且利用TFIDF算出的值,S2和S的相似度大于S1和S的相似度,这显然是荒谬的。而利用语义得到S1和S的相似度为1,说明S1和S两个句子在语义上相同,而且S1和S的相似度远远大于S2和S的相似度,这完全符合实际的情况。从这个实验中,我们可以看出语义相似度在处理两个句子中相同的词很少,但两个句子中词的语义是相同的这种情况时,比TFIDF方法优越。

上述计算相似度的方法还用于问答系统中的其它阶段。例如,在答案查找过程中,我们可以通过计算问句和备选答案之间的相似度。例如,问题是“西红柿是什么颜色?”,如果有一个句子为“番茄是红色的。”,这两个句子通过上述的相似度计算方法就可以匹配上。而如果单纯地依靠关键词,“西红柿”和“番茄”是不可能匹配上的。

4 FAQ库的更新

利用3中介绍的方法计算出用户所输入的目标问句和候选问题集中每个问句的相似度,如果所有这些计算出来的相似度的最大值大于一定的阀值M,那么我们就认为最大的相似度所对应的问句和用户的目标问句问的是同一个问题。我们可以直接将这个问句对应的答案输出给用户。

如果最大相似度的值小于阀值M,我们就认为FAQ库中没有用户所问的问题,那么我们必须利用其他的方法(如信息检索,答案抽取等)来找出答案。如果能够找到答案,就可以将用户所问的这个问题和对应的答案加入FAQ库。

本文来源:http://www.guakaob.com/yiyaoleikaoshi/246583.html

    上一篇:心很痛语录

    下一篇:爸妈对孩子的寄语

    【物换星移几度秋相似的句子】相关推荐