一种汉语词语相近性匹配装置及方法

文档序号:6427703阅读:257来源:国知局
专利名称:一种汉语词语相近性匹配装置及方法
技术领域
本发明涉及一种汉语的词语相近性匹配装置及方法,尤其涉及汉语术语。
背景技术
领域术语是指在一个学科领域中使用,表示该学科领域内概念或关系的词语。术语可以是词,也可以是短语,是在特定学科领域用来表示概念的称谓,或者说,是通过语音或文字来表达或限定科学概念的约定性语言符号。在我国,人们习惯称其为“名词”。术语的具体实例,在阅读科技文献、学习专业课程时随处可见,比如路由器就是计算机网络领域中的术语,DNA就是生命科学领域的术语等。在术语抽取领域,术语表示由两个或两个以上的字所组成的具有一定语法关系的有确切意义的语言单元,如“国家导弹防御系统”。领域术语的提取在各个领域都有很重要的应用。在领域本体构建过程中,需要对领域术语进行及时地更新,因此领域术语的提取方法在领域本体的构建和维护过程中发挥着至关重要的作用。在信息检索领域,构建索引时需要引入领域术语集,领域术语提取技术地提高能够大大提高检索的准确率和检索的覆盖率,尤其在垂直搜索方面,如果得到某个领域的术语,对于该领域的搜索可以得到更为精确的信息。在浏览推荐方面,在用户的浏览行为的推荐方面,利用web资源得到的某领域的领域术语,可以帮助我们更准确地把握用户的浏览意图,通过用户的具体浏览行为推荐相关的信息给用户。另外领域术语的提取在广告投放中也有很大的作用,通过得到领域词典,对于网页的分类有很大的帮助,可以更好帮助商业公司对于不同的用户群做更为精细和准确的广告投放。字符串的相近性函数作为衡量两个字符串之间近似程度的函数,是字符串匹配 (String matching)、文本比较(Text Comparison)、信肩、才由取(Information Extraction) 中一项基本技术,它的输入通常是两个相同或不同的字符串,返回一个确定的整数值。两个字符串相近度越高,对应的返回值就越大。这项技术在计算生物学(Computational Biology),信号处理(Signal Processing)中也有广泛的应用。针对应用场合不同,有很多经典的相近性函数可供选择。例如编辑距离(Edit
Distance 或 Levenshtein Distance),它考虑了三种编辑操作-插入(insertion),删
除(Deletion)和替换(Substitution),用将一个字符串转换成另一个字符串所需要的最少的编辑操作的数量作为这两个字符串的相近度;Smith-Waterman距离(Smith-Waterman Algorithm)是一种用于找到两个序列中相近区域的算法,经常用于计算生物学中核苷酸序列、氨基酸序列的比对。这种算法中,所涉及的操作也只有三种插入、删除和替换。除了以上精确计算两个字符串差异的这些算法,也存在其他近似的简单的基于统计的方法。例如 Dice ¢5 (Dice Coefficient) 5 Jaccard ¢5 (Jaccard Index 5 Jaccard Similarity Coefficient),这两种方法在计算时都需要先将要比较的字符串S1, &划分成q-gram,一个字符串的q-gram指的是它的所有长度为q的连续子串,例如,apple的2-gram就是ap, PP, pl,Ie0划分结束后,得到两个字符串对应的q-gram集合SQ1, SQ2,则Dice (S1, s2)= 2* ι SQ1 η SGl2I/(I SQ1H SGj21) ,Jaccard (S1, S2) = SQ1 Π SQ21 / | SQ1 U SQ2U 考虑到读音相近的字符更容易出现拼写错误,有人发明了基于读音的相近性函数,例如Soimdex,这种算法将英文中发音相近的字母编码为相同的数字,例如b,f,ρ,ν都映射为1。h,w这样不存在发音相近的字母的情况则不映射。通过上述方式,一个由英文字母组成的字符串就被转换成一个字母加数字的字符串,再通过更进一步的计算得到这两个字符串的相近度,作为原字符串的相近度。以上这些方法足以覆盖需要衡量字符串相近度的大部分领域,但是它们的局限性在于所有的这些方法都是针对英文,或者可以比较容易地推广到印欧语系的其他语种(例如法语),对于汉语这样的结合了字形与读音的语种,它们的应用将受到一定的限制。随着汉语在计算机领域使用的推广,尤其是在互联网使用的普及,提出一种适合汉语的相近性函数是十分有必要的。例如,网络中每天都存在着大量汉语文本信息,而这些或是由人工编辑、或是由机器生成的文档,存在着大量错误,在进行更深层次的操作之前, 需要先进行预处理,预处理中的许多步骤(清洗、整合)都涉及到相近性比较。而用户利用关键字查询信息时,也可能出现各种错误(例如只能记住读音,或者更加简单的拼写错误),一个设计良好的相近性函数,可以用于帮助用户直接找到他们期望的词语。

发明内容
本发明所要解决的技术问题是提供一种汉语的词语相近性匹配装置及方法,用以精确地度量汉语发音、方言、字形等汉语使用中常出现的错误,从而返回更加符合汉语使用习惯的函数值,并且,它能更进一步地挖掘用户的习惯,校准、扩展原有模型。为了解决上述问题,本发明公开了一种汉语的词语相近性匹配装置及方法,所述方法包括获取两个待比较的字符串A和B ;计算两个字符串A和B在编辑时的相近度;获取两个字符串A和B的发音相近度;获取两个字符串A和B的字形相近度;对照预先建立的汉字词频统计表Table3和汉字错误信息统计表Table4统计两个字符串A和B的词频和错误信息;根据统计结果确定两个字符串A和B编辑时的相近度、发音相近度以及字形相近度的权值,计算获取到两个待比较的汉语字符串A和B的匹配度,其中,错误频率之和与词频之和的比值越大,发音相近度所对应的权值越小。优选的,所述方法还包括建立汉字到拼音的对照表Tablel ;建立汉字到五笔的对照表Table2 ;建立汉字词频统计表Table3 ;建立汉字错误信息统计表Table4。优选的,当所获取的两个待比较的字符串A和B为汉字字符串时,所述方法还包括对照对照表Tablel将字符串转化为拼音字符串。优选的,所述计算两个字符串A和B在编辑时的相近度具体包括以下子步骤
计算两个字符串A和B的编辑距离相近度根据正确键盘指法,计算两个字符串A和B的键盘分布相近度;对两个字符串A和B的编辑距离相近度和键盘分布相近度加权求和,获取到两个字符串A和B在编辑时的相近度。优选的,所述获取两个字符串A和B的发音相近度具体包括以下子步骤计算两个字符串A和B的声母相近度;计算两个字符串A和B的韵母相近度;对两个字符串A和B的声母相近度和韵母相近度加权求和,获取到两个字符串A 和B的发音相近度。优选的,所述方法在对两个字符串A和B的声母相近度和韵母相近度加权求和后, 还包括计算两个字符串A和B的模糊音相近度;将计算的两个字符串A和B的模糊音相近度,与对两个字符串A和B的声母相近度和韵母相近度加权求和的值进行加权求和,获取到两个字符串A和B的发音相近度。本发明还公开了一种汉语相近性匹配装置,所述装置包括字符串获取模块,用来获取两个待比较的字符串A和B ;编辑时的相近度计算模块,用来计算两个字符串A和B在编辑时的相近度;发音相近度获取模块,用来获取两个字符串A和B的发音相近度;字形相近度获取模块,用来获取两个字符串A和B的字形相近度;词频和错误信息统计模块,用来对照预先建立的汉字词频统计表Table3和汉字错误信息统计表Table4统计两个字符串A和B的词频和错误频率;匹配度获取模块,根据词频和错误信息统计模块的统计结果确定两个字符串A和 B编辑时的相近度、发音相近度以及字形相近度的权值,计算获取到两个待比较的汉语字符串A和B的匹配度,其中,错误频率之和与词频之和的比值越大,发音相近度所对应的权值越小。优选的,所述装置还包括表建立模块,用于建立汉字到拼音的对照表Tablel、汉字到五笔的对照表 Table2、汉字词频统计表Table3、汉字错误信息统计表Table4。优选的,当所获取的两个待比较的字符串A和B为汉字字符串时,所述装置还包括字符串拼音转化模块,对照对照表Tablel将字符串转化为拼音字符串。优选的,所述编辑时的相近度计算模块使用以下步骤计算两个字符串A和B在编辑时的相近度计算两个字符串A和B的编辑距离相近度以及根据正确键盘指法,计算两个字符串A和B的键盘分布相近度;对两个字符串A和B的编辑距离相近度和键盘分布相近度加权求和,获取到两个字符串A和B在编辑时的相近度。优选的,所述发音相近度获取模块使用以下步骤获取两个字符串A和B的发音相近度
计算两个字符串A和B的声母相近度;计算两个字符串A和B的韵母相近度;对两个字符串A和B的声母相近度和韵母相近度加权求和,获取到两个字符串A 和B的发音相近度。优选的,所述发音相近度获取模块在对两个字符串A和B的声母相近度和韵母相近度加权求和后,不直接获取两个字符串A和B的发音相近度,而使用以下步骤获取两个字符串A和B的发音相近度计算两个字符串A和B的模糊音相近度;将计算的两个字符串A和B的模糊音相近度、与对两个字符串A和B的声母相近度和韵母相近度加权求和的值进行加权求和,获取到两个字符串A和B的发音相近度。与现有技术相比,本发明具有以下优点本发明利用编辑距离公式及键盘指法规则得到汉语对应拼音的编辑相近度,即反应二者在编辑时是否容易混淆;通过汉字声母、韵母的发音规律得到字符串的声母相近度及韵母相近度,同时结合方言或者普通发音中常见的模糊音,计算字符串之间的发音相近度;由于汉字的字形是汉语一个重要特征,所以利用字形编码——五笔字型编码计算字符串之间的字形相近度;在计算的同时收集信息,用于更新数据;综合上述相近度得到汉语词整体的相近度,充分考虑了汉语的拼写习惯、用户的输入习惯及键盘布局、普通话的发音规则、方言以及常见错误发音的影响、汉字字形等多方面因素,结合统计规律,综合评价汉语词之间的相近度。使得相近性函数的返回值越大,汉语词之间的相近度就越大。


图1是本发明实施例所述的一种汉语相近性匹配方法流程图;图2是本发明实施例所述的一种汉语相近性匹配方法的示意图;图3是本发明实施例所述的Tablel,Table2,Table3和Table4的示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。字符串相近性函数在查询、检索领域有着极其重要的意义,它为判断字符串之间的近似程度、估计用户真实查询意图提供依据。定义良好的相近性函数能够通过函数值准确反应字符串的相近度,即值越大、相近性越大,反之则越小(即值越小、字符串之间的差异越少,反之则越多)。英文中有很多广泛使用的、针对不同语境的相近性函数,但是汉语作为综合了字音与字形的语言,直接使用现有的相近性函数并不能对人们直观理解上的字符串之间的近似程度做到很好地估计。所以我们提出了一种综合了语音、字形以及编辑、发音习惯的汉语字符串相近性的度量函数。实施例参照图1,示出了本发明的一种汉语相近性匹配方法流程图,所述方法具体包括步骤S101,获取两个待比较的字符串A和B ;按照实际应用中的需求,获取当前需要比较的两个字符串A和B。
优选的,所述方法还包括建立汉字到拼音的对照表Tablel ;建立汉字到五笔的对照表Table2 ;建立汉字词频统计表Table3 ;建立汉字错误信息统计表Table4。实际应用中,通过建立映射表得到汉字拼音对照表Table1,汉字五笔对照表 Table2,词频统计表Table3,错误信息统计表Table4。其中前两个表是固定的,后两个表可以在使用过程中进行累计更新,具体的建立从汉字拼音对照表Table1,包含两列,分别为汉语字符cruchar和对应拼音字符串sp_string,用Cn_Char建立索引。同一个汉语字符可以对应两个或更多读音,例如 “会”对应 “hui” 和 “kuai”。建立汉字五笔对照表Table2,包含两列,分别为汉语字符Cn_Char和对应五笔字型编码st_string,用cn_char建立索引。例如“会”对应的五笔字型编码为“wfc”。建立词频统计表Table3,包含三列,分别为汉语字符串crustring、对应拼音字符串sp_string、对应词频信息worcLfrequency,用国家发布的常用词词频初始化,用cn_String建立索引。例如“全力”对应的词频为沈18,“会宁”是甘肃省的一个县,是两万五千里长征的终点,它不属于常用词,因此在初始化的时候,Tabk3中不包含这一项,或者说它对应的词频为0。但是随着信息的统计,可以将它加入到表中,对应拼音字符串为“huining”,第一次加入时词频为1,逐次累加。错误信息统计表Table4,包含四列,分别为汉语字符串cn_String,正确的对应拼音字符串crt_string,错误的拼音字符串err_String以及相应的错误频率err_ frequency,初始化为空,用crustring和err_string建立索引。例如“会宁”的正确发音为“huining”,如果出现错误发音“huiling”,我们将其加入到表中,这个错误第一次出现时,对应的错误频率为1,随着出现次数增多而向上累加。如果出现错误发音“huinin”,则将“会宁”和“huinin”作为新的一项加入表中。步骤S102,计算两个字符串A和B在编辑时的相近度;假设当前所获取的两个待比较的汉语字符串为string_raWl和String_raw2,如果这两个字符串已经是拼音字符串,则不做任何处理,即Spjtrir^1 = string_raWl,sp_ String2 = string_raw2o优选的,当所获取的两个待比较的字符串A和B为汉字字符串时,所述方法还包括对照对照表Tablel将字符串转化为拼音字符串。若二者原本为汉字字符串,则先将其转换为拼音字符串。具体转换方法为按字符切分 string—rawi 禾口 string—raw” 得到两个汉语字符集合 cn—se、= {cn_charn, cn_ char12, . . . , cn_charlm}禾口 cn_set2 = {cn_char21, cn_char22, . . . , cn_char2J,其中 m、η 为两个汉语字符串的长度。在Table1 中查找 Cr^Chari,」,i = 1,2,j = 1,2,· · ·,m(若 i = 1),j = 1,2,· · ·,
η (若i = 2),得到sp_stringi,」,若Cr^Chari,」有两个拼音与之对应,则利用stringjaw] 查找Table3,确定相应字符在给定上下文中的发音。通过这样的方式将Ciuseti转换为 Sp-Seti= {sp—stringi」}。再按序组合成对应的拼音字符串sp_strin&,sp_strin&。例如,如果 string_raWl = “全力”,Stringjaw2 = “会宁”,“会”有两个发音“hui” “kuai,,, 而Tabk3中只有“huining”,所以可以认为“会”在此发音为“hui”而不是“kuai”,即cn_ Set1 = { “全”,“力” Lcruset1 = { “会”,“宁” },sp—se、= {quan,li},sp_set2 = {hui, ning},sp_string1 = "quanli,,,sp_string2 = "huining,,。针对上述两种情况,得到实际用来比较的拼音字符串Sp_Stringl,sp_strin&。优选的,所述计算两个字符串A和B在编辑时的相近度具体包括以下子步骤计算两个字符串A和B的编辑距离相近度根据正确键盘指法,计算两个字符串A和B的键盘分布相近度;对两个字符串A和B的编辑距离相近度和键盘分布相近度加权求和,获取到两个字符串A和B在编辑时的相近度。具体的,在计算两个字符串在编辑时的相近度时,由于相近性函数主要是用于计算机领域,所以这部分相近度既包含了传统相近性函数中的三种编辑操作(插入、删除和替换),也包含了键盘布局信息。经过综合计算,得到编辑相近度edit_Similarity 计算 sp_string1 与 sp_strin& 的编辑距离 edit (sp_stringi; sp_string2),具体的计算方法可以使用经典的动态规划矩阵。如果我们假定返回的函数值越高,字符串的相近度越大,我们需要将编辑距离求倒数,为了避免分母为0,给分母加一个小的常量,例如1 例如 edit( “quanli ”,“huining”)= 5,贝 ljEdit( “quanli ”,“huining”)= l/(edit(sp_ String1, sp_string2) +1) = 1/ (5+1) = 1/6。根据正确键盘指法,左手食指控制的键位为{R,T,F,G,V,B},左手中指控制的键位为{E,D,C},左手无名指控制的键位为{W,S, X},左手小指控制的键位为{Q,A,Z},右手食指控制的键位为{Y,U,H,J,N,M},右手中指控制的键位为{I,K},右手无名指控制的键位为{0,L},右手小指控制的键位为{P}。属于同一集合中的字母更加容易出现输入的错误, 因此应该给予更高的相近度。可以参考Soimdex中的方法,将一个集合中的元素映射为唯一的一个数字,通过这样的方式将SPjtrir^1与sp_strin&转化为一个由数字组成的字符串nunustrinA和num_strin&,然后通过其他已知的相近性函数来计算这二者的相近度。 由于键盘分布引入的相近度记为Layout (num_stringl,num_string2)。例如我们将上面的集合依次记为1、2、3、4、5、6、7、8,则“全力”和“会宁”可以表示为nun^strir^ = “454576”,num_string2 = “4妨妨41”。假设仍然用前面的编辑距离来计算,edit( "454576", "4454541") = 3,则 Layout ( "454576", "4454541") = 1/ (1+3) = 1/4。上述两个值加权求和,得到编辑相近度edit_similarity(sp_strin&,sp_ tring2) = wn*Edit (sp_string1, sp_string2) +W12^Layout (num_string1, num_string2)。若将W11和W12都设为1/2 (即对Edit和Layout赋予相同的权重),则edit_simiIarity (“全力,,,“会宁”)=edit_similarity( “quanli”,“huining”)= l/2*Edit( "quanli", “huining”)+l/2*Layout( “454576”,“4454541”)= 1/2*1/6+1/2*1/4 = 5/24。步骤S103,获取两个字符串A和B的发音相近度;优选的,所述获取两个字符串A和B的发音相近度具体包括以下子步骤计算两个字符串A和B的声母相近度;计算两个字符串A和B的韵母相近度;对两个字符串A和B的声母相近度和韵母相近度加权求和,获取到两个字符串A和B的发音相近度。优选的,所述方法在对两个字符串A和B的声母相近度和韵母相近度加权求和后, 还包括计算两个字符串A和B的模糊音相近度;将计算的两个字符串A和B的模糊音相近度,与对两个字符串A和B的声母相近度和韵母相近度加权求和的值进行加权求和,获取到两个字符串A和B的发音相近度。汉语和英文很大的一个不同在于汉语中每个字母都会有不随上下文改变的发音, 而英文中一些字母可能不发音,也可能在不同的搭配中发音不相同。所以汉语中发音相近度无法像英文那样,直接通过编辑距离或者Soimdex来衡量。这一步根据汉语发音特点,得到发音相近度spellsimilarity 汉语的拼音由声母和韵母两部分组成,所以在比较时,也需要从这两部分来考虑。 综合两部分的相近度,得到拼音相近度Wioneticize (sp_stringl,sp_string2)拆分sp_ String1和sp_strin&,即进一步划分为声母和韵母的组合序列,在对应位置进行比较。汉语中的声母一共有23个,按发音部位对声母分类,一共可以分为7类双唇音 (b,p,m),唇齿音(f),舌尖前音(z, c, s),舌尖中音(d,t,η, 1),舌尖后音(zh, ch, sh, r), 舌面音(j,q,x),舌根音(g,k,h)。还有其他划分声母的方式,但从拼音学习过程以及发音习惯上而言,这样的划分方式更符合我们的需求。属于同一类的声母具有较高的相近度,对于整个字符串,得到综合的声母相近度LitiaI(SPjtrir^nSPjtring2)。例如“全”对应的声母为“q”,“会”对应的声母为“h”,分别为舌面音和舌根音,“力”的声母为“1”,“宁”的声母为“n”,都是舌尖中音,因此“会”(hui)和“全”(quan)的声母相近度要弱于“力”(Ii) 和“宁”(ing)的声母相近度。如果将声母属于同一个集合记为1,不属于同一个集合记为 0,两个声母的权重分别为1/2 (2是汉语字符串中汉语字符的个数),则Initial (“quanli ”, “huining”)= l/2*Initial( "q","h")+l/2*Initial ( “l,,,“n,,)= 1/2*0+1/2*1 = 1/2。汉语中的韵母一共有36个,按照传统音韵学,可以用“四呼”将其划分为4类开 Π ^ (a, ai, an, ang, ao, e,ei,en, eng, er,o,ong, on),(i,ia, ian, iang, iao, ie, in, ing, iong, iou),合Π呼(u,ua, uai, uan, uang, uei,uen, ueng, uo),撮Π呼(ii,iian, ue, to)。和声母相同,属于同一类的韵母具有较高的相近,以此为依据得到两个完整字符串的综合的韵母相近度VoWel(Sp_Stringl,sp_string2)。和声母类似,如果将属于同一个集合记为1,否则记为0,每组韵母的权重为字符串中韵母个数的倒数,Initial(“qUanli”, “huining”)= l/2*Initial( “uan”,“ui”)+l/2*Initial( “i”,“ing”)= 1/2*1+1/2*1 =1。Phoneticize (sp_string1, sp_string2) = w21,^Initial (sp_string1, sp_ String2) +W22,*Vowel (sp_stringl,sp_string2),通过前面计算得到的两个值加权求和得到两个字符串的拼音相近度。若给声母相近度和韵母相近度赋予相同的权值,即W21 ’ =W22, = 1/2,则 Phoneticize ( “quanli”,“huining” ) = l/2*Initial ( "quanli", “huining”)+l/2*Vowel( “quanli”,“huining”)= 1/2*1/2+1/2*1 = 3/4。除了考虑普通话的正常发音,还要考虑到人们日常生活中经常出现的发音错误。 在很多南方口音中,前鼻音和后鼻音较难区分,而对于一些非专业人员,平舌音、翘舌音的区别也没有那么明显。所以针对这些情况,设置模糊音匹配。例如{z,Zh}, {c, ch}, {s,sh}, {1, η}, {f, h}, {r, 1}, {an, ang}, {en, eng}, {in, ing}, {ian, iang}, {uan, uang},如果对应的声母(或韵母)在上面设置的模糊音中的同一个集合里,这二者的相近度就应该高, 可以计算得到两个字符串这部分的相近度FuZZy(Sp_Stringl,sp_string2)。例如将“全力”和“会宁”拆分为{h,Ui,n,ing}和{q,Uan,l,i},{n,l}可以进行模糊音匹配,如果将进行模糊音匹配后集合的交集与集合大小的比值作为二者的相近度,则FuZZy( "quanli", “huining”) = 1/4。sp_stringl和sp_strin&的发音相近度利用上述两个值加权求和得至Ij : spell_similarity(sp_string1, sp_string2) = w21*Phoneticiz (sp_string1, sp_ String2) +W22^Fuzzy (sp_string1, sp_string2)。 若设 w21 = W22 = 1/2, 贝Ij spell_ similarity(“全力”,“会宁”)=spell_similarity ( “quanli ”,“huining”)= 1/2氺Phoneticiz ( "quanli,,,"huining,,)+1/2氺Fuzzy ( "454576", "4454541")= 1/2*3/4+1/2*1/4 = 1/2。步骤S104,获取两个字符串A和B的字形相近度;拼音只是汉语中的一部分,它们的相近度只能部分反映两个字符串的相近度。如果给定的两个字符串原本是汉字字符串,那么也需要将字形因素加入到相近性函数的考虑范围中来。五笔字型完全依据笔画和字形对汉字编码,所以用五笔的编码方式一定程度上可以反应汉语字符在字形上的差异。而另一方面,仍然有很多人在使用五笔输入法,从用户使用来考虑,也应该将这个因素加入到相近性函数中来。例如“全力”的“全”发音为quan, 而“会宁”的“会”发音为hui,从字音角度,或者从二者拼音的差异来说,都是非常大的。但是它们在字形上却很接近,因此很容易被人认错。“全”的五笔编码为“wgf”,“会”的五笔编码为“wfc”,它们都包含 ”和“f”,所以可以判定它们的字形一定程度上是接近的。与此相比,“全”和“权”发音相同,但是“权”的五笔编码为“scy”,可见这两个同音字字形差异很大,在拼写或者选择时不容易出现错误。当字符串中包含汉字字符时,在Tabk2中查找CiUChariJi = 1,2, j = 1,2,..., m(若i = 1),j = 1,2,. . .,n(若i = 2),得到st_stringi,」,比较每个字对应的相近度, 即stroke_simiIarityj (st_stringl,st_string2)。在将它们综合起来,得到的就是这两个字符串的字形相近度 stroke_similarity (string—raw” string_raw2),也可以将 Cr^seti 转换为st_Seti = {sp_stringij},而两个字符串对应的集合的相近度,就是它们的字形相近度。例如如果用五笔编码的Jaccard距离作为衡量两个汉语字符字形相近度的方式, 则:stroke_similarityi( “全力,,,“会宁”)=Jaccard( “全,,,“会”)=Jaccard( “wgf,,, "wfc") = 2/4 = 1/2 ; stroke_simi Iarity2 ( “全力”,“会宁”)=Jaccard ( “力”,“宁,,) =Jaccard( “ltn”,“psj”)=0/6 = 0 ;若将一个字符串中的所有字符都赋予相同的权重,则 stroke_similarity( “全力,,,“会宁”)=l/2*stroke_similarityi ( “全力,,,“会宁,,)+stroke_simiIarity2 ( “全力”,“会宁”)=1/2*1/2+1/2*0 = 1/4。步骤S105,对照预先建立的汉字词频统计表Tab 1 e3和汉字错误信息统计表 Table4统计两个字符串A和B的词频和错误信息;统计信息包含两部分,一部分为词语使用信息,另一部分为错误信息。信息统计反应了特定用户的使用习惯,这部分信息保存在Tabk3和Tabk4中。信息的来源可以使本地的用户,也可以是网络。
步骤S106,根据统计结果确定两个字符串A和B编辑时的相近度、发音相近度以及字形相近度的权值,计算获取到两个待比较的汉语字符串A和B的匹配度。通过前面的介绍,可以得到编辑时的相近度、发音相近度以及字形相近度三个相近度:edit_similarity (sp_string1 sp—String2),spell_similarity (sp_string-1 sp—String2)禾口 stroke_similarity (string—I^aw1,string—raw2)。 用 Table3 禾口 Table4 中存储的统计信息确定这三个相近度的权值Wl、W2、W3,加权组合得到两个字符串整体 的相近度!similarity (string—raw1 string—raw2) = w^edi^similarity (sp_ string” sp_string2) +W2^spel l_simi Iarity (sp_string1 sp_string2) +w3*stroke_ similarity (string—raw” string—raw2) 0当设置三个相近度权重相等,即W1 =W2 = W3= 1/3,则similarity ( “全力”,“会宁”)=l/3*edit_similarity(“quanli”,“huining”)+l/3*spell_similarity(“quanli”, "huining") +l/3*stroke_similarity( “全力”,“会宁”)=1/3*5/24+1/3*1/2+1/3*1/4 = 23/72。优选的,其中,错误频率之和与词频之和的比值越大,发音相近度所对应的权值W2 越小。参见图2给出了本发明所述一种汉语相近性匹配方法的示意图,图3示出了上述 Tablel,Table2,Table3和Table4的示意图;需要说明的是,本实施例所述的方法在正式比较之前,需要建立一些映射表,为后续过程提供依据。其中部分表是从一开始就确定的,而另一部分表则在函数使用过程中通过用户反馈、或信息抓取来不断更新。在初始阶段就能够基本确定的表包括汉语字符到拼音、五笔字型编码(86版)的映射表,这部分表通过国家或相关企业、个人发布的标准获得。而词频信息、错误信息需要不断补充完善。统计信息对于汉语相近性函数有着非常重要的作用,例如,“灰常(huichang) ”、“会场(huichang) ”和 “非常(feichang) ”,单从读音上来说,前两个更加接近,并且在网络流行语开始变得普遍之前,第一个词就是一个错误拼写。但是,在现代汉语使用中,我们可以发现,“灰常”可以作为 “非常”的同义词使用,它们俩的近似程度是很高的。如果语义信息不是字符串相近性函数要考虑的内容,那么在很多方言或者较为常见的错误发音中,“h”和“f”是经常被混淆的, 这就是它们相近的依据。随后,可以利用建立好的映射关系计算汉语字符串的相近度。对于两个输入的汉语字符串string” Strir^2,先通过映射表找到它们对应的拼音字符串和五笔编码字符串。 如果一个字是多音字,则可以通过词频信息判断哪个读音才是正确的。在正式比较之前,可以通过一定的方式对齐输入的汉语字符串,即判断在比较时,String1中的每个汉语字符与 String2中的哪个字符对应。接下来就通过比较对应字符之间的相近程度来比较两个完整汉语字符串之间的相近度。以上对本发明所提供的一种汉语相近性匹配方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种汉语词语相近性匹配装置,其特征在于,所述装置包括字符串获取模块,用来获取两个待比较的字符串A和B ;编辑时的相近度获取模块,通过计算两个字符串A和B的编辑距离相近度以及根据正确键盘指法,计算两个字符串A和B的键盘分布相近度,对两个字符串A和B的编辑距离相近度和键盘分布相近度加权求和,获取到两个字符串A和B在编辑时的相近度。发音相近度获取模块,通过计算两个字符串A和B的声母相近度,计算两个字符串A和 B的韵母相近度,对两个字符串A和B的声母相近度和韵母相近度加权求和,获取到两个字符串A和B的发音相近度;字形相近度获取模块,用来获取两个字符串A和B的字形相近度;词频和错误信息统计模块,用来对照预先建立的汉字词频统计表Table3和汉字错误信息统计表Table4统计两个字符串A和B的词频和错误频率。匹配度获取模块,根据词频和错误信息统计模块的统计结果确定两个字符串A和B编辑时的相近度、发音相近度以及字形相近度的权值,计算获取到两个待比较的汉语字符串A 和B的匹配度,其中,两个字符串A和B的错误频率之和与词频之和的比值越大,所述发音相近度所对应的权值越小。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括表建立模块,用于建立汉字到拼音的对照表Tablel、汉字到五笔的对照表Table2、汉字词频统计表Table3、汉字错误信息统计表Table4。
3.根据权利要求1-2所述的装置,其特征在于,当所获取的两个待比较的字符串A和B 为汉字字符串时,所述装置还包括字符串拼音转化模块,对照对照表Tablel将字符串转化为拼音字符串。
4.根据权利要求1-3所述的装置,其特征在于,所述发音相近度获取模块在对两个字符串A和B的声母相近度和韵母相近度加权求和后,不直接获取两个字符串A和B的发音相近度,而使用以下步骤获取两个字符串A和B的发音相近度计算两个字符串A和B的模糊音相近度;将计算的两个字符串A和B的模糊音相近度、与对两个字符串A和B的声母相近度和韵母相近度加权求和的值进行加权求和,获取到两个字符串A和B的发音相近度。
全文摘要
本发明提供了一种汉语词语相近性匹配装置及其方法,尤其涉及到汉语术语,该装置和方法用以精确地度量汉语发音、方言、字形、术语等汉语使用中常出现的错误,从而返回更加符合汉语使用习惯的函数值,并且,它能更进一步地挖掘用户的习惯,校准、扩展原有模型,并且可以帮助用于帮助用户直接找到他们期望的词语。
文档编号G06F17/30GK102214238SQ20111018320
公开日2011年10月12日 申请日期2011年7月1日 优先权日2011年7月1日
发明者徐海燕 申请人:临沂大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1