中文信息检索系统的模糊匹配算法研究和实现

第2l卷第6期 2007年11月 中文信息学报 JOURNAL OF CHINESE INFORMATION PROCESSING Vo1.2l,No.6 NOV.,2007 文章编号:1003—0077(2007)06—0059-06 中文信息检索系统的模糊匹配算法研究和实现 王静帆,邬晓钧,夏云庆,郑方 (清华大学计算机系清华信息科学与技术国家实验室 技术创新和开发部语音和语言技术中心,北京100084) 摘要:在现代中文信息检索系统中,用户输入的字符串和实际数据库中的条目往往存在局部偏差,而基于关键词 匹配的检索技术不能很好地解决这一问题。本文参考并改进了Tarhio和Ukkonen提出的过滤算法 ],针对汉字 拼音输入法中常出现的同音字/近音字混用现象,将算法进一步扩展到广义的Edit Distance上。实验表明,本文提 出的算法能有效提高中文信息检索系统的召回率,在实际应用中可达到“子线性”的效率。 关键词:计算机应用;中文信息处理;模糊匹配;过滤算法;动态规划 中图分类号:TP39l 文献标识码:A An Approximate String Matching Algorithm for Chinese Information Retrieval Systems WANG Jing~fan,WU Xiao—j un,XIA Yun—qing,ZHENG Fang (Dept.of Computer Sci.&Tech.Tsinghua University, Center for Speech and Language Technologies,Division of Technical Innovation and Development, Tsinghua National Laboratory for Information Science and Technology,Beijing 100084,China) Abstract:In the modern Chinese information retrieval systems,classical keyword based string matching can not work when the input string is different from the entries in 

the database.This paper proposed a method based on Tarhio and Ukkonen’S filtering algorithm tO solve the problem.Because the Chinese Pinyin typewriting usually con— sists Chinese characters with the same or similar pronunciations,we defined a special Edlt Distance and expended our method accordingly.The experimental results showed that our algorithm can improve the recall rate of the re— trleval systems and obtain practical sub—linear complexity. Key words:computer application;Chinese information processing;approximate matching;filter algorithm;dynamic programming 1 引言 现有的信息检索系统大部分采用基于关键词匹 配的检索技术l_2]。在实际应用中,用户往往凭借印 象进行检索,有时只能模糊地描述查询目标,输入的 关键词无法和数据集合中保存的数据完全一致;另 一方面,在构建数据集时引入的错误(如OCR识别错 误等)也可能造成这些数据无法被用户获取。在上述 情况下,传统的检索系统将难以从数据集中查找到所 需要的信息。本文采用模糊匹配方法查找数据集中 和用户输人相似的项,并根据相似度排序输出结果, 以部分解决上述问题。模糊匹配方法还可以用于其 他领域,如入侵检测、信息过滤、基因检测等_3“ 中文用户大部分使用拼音输入法。用户输入查 询串时选词错误造成的同音字替换是很典型的一种 现象;方言、发音习惯等造成的音近字替换(如南方 方言中,zh和z不分)是第二种典型的错误现象。本 文针对这些错误,提出了一种考虑同音字/近音字替 换的距离度量方法,在此基础上建立模糊匹配算法。 收稿Et期:2007-01—09定稿El期:

2007 09 10 作者简介:王静帆(1982一),女,硕士生,研究方向为自然语言处理;邬晓钧(1976一),男,博士,助研,研究方向为VI语对 话系统和自然语言处理;郑方(1967一),男,博士,教授,研究方向为语音信号处理。 维普资讯 http://www.cqvip.com

6O 中文信息学报 2背景简介 字符串的模式匹配(精确匹配)问题是:给定目 标字符串str和模式串pat,在str中寻找pat的匹配 位置。其经典算法有Knuth—Morris-Pratt(KMP)Es], Boyer—Moore(BM) 等。实际应用中,BM算法及 其改进型(如BMH[7 等)能达到极高的效率(子线 性),被各种检索系统广泛使用I_3 ]。 类似的,字符串的模糊匹配目标是在str中查 找与pat相似的字串位置。普遍采用Edit Distance (ED)来刻画两个字符串的距离I_3]。设A,B为两个 字符串,狭义的ED(A,B)定义为:把A转换成B 需要的最少删除(删除A中一个字符)、插入(在A 中插入一个字符)或替换(把A中的某个字符替换 成另一个字符)次数。直观地;两个串互相转换需要 经过的步骤越多,相差越多。模糊匹配问题转化为 对给定正整数k,找出str的所有子串s ,使得ED (s ,pat)<志。 模糊匹配技术的策略主要有以下四种 ]:1.动 态规划 ],2.自动机口 ,3.位平行策略I_l ],4.过滤 策略口]。将它们结合使用,常常可以获得更高的时 间效率E13 ̄ls]。 本文基于Tarhio和Ukkonen提出的过滤算 法[1](TU过滤算法),配合带剪枝的动态规划算 法 ],在以下两方面进行了改进:1.扩展了原有过 滤算法,使之能处理更一般的情况;2.针对中文中特 有的同音字/近音字替换问题定义了广义的Edit Distance,并扩展了过滤算法和动态规划算法以解 决该距离度量下的模糊匹配问题。 本文的余下部分安排如下:第3节简单介绍动 态规划及剪枝算法 ]和TU算法_1 ;第4节介绍我 们对TU算法的扩展;第5节针对同音字/近音字问 题定义了广义的Edit Distance,并提出该距离度量 下解决模式匹配的基于TU过滤和剪枝动态规划算 法;第6节给出实验结果和分析,最后是结论。 3 动态规划和TU过滤算法 为了更好的说明模糊匹配算法,首先定义可能 用到的符号:字符集∑上,目标

字符串为str,长度 为 ,模式字符串pat,长度为m。两个匹配串之间 的最大Edit Distance为k,错误率上界为a,a—k/ m。用sE0,…, ]表示字符串s的一个子串,下标由 0开始。 str的每个子串可以表示为其前缀子串的后缀 子串,动态规划方法 计算了pat的前缀子串pat [0,…,i一1-1和str的前缀子串str Eo,…, 一1]的 后缀子串的最小Edit Distance,记入D(i, )。 D(0,J)一0( 一0,1,…, ) D(i,0)一D(i一1,0)4-1 (i一1,2,…,m) D(i,J)一min{D(i~1, 一1),D(i~1, ), D(i,J一1)}4-1 if strEJ一1]≠par2i一1] 一D(i一1,j.~1) if strEJ一1]一patEi—1] ( —l,2,…,m,J—l,3,…, ) D(i, )只和D(i~1. ),D(i, ~1),D(i一 1, —1)有关,分别对应于对pat[i一1]的删除、插 入、替换或匹配操作,计算( 4-1)x( 4-1)的动态 规划矩阵D,复杂度为0(ran)。 Ukkonen[3 ]证明,在狭义ED定义下,D沿对 角线从左上到右下,元素值非严格单调递增。对每 列的最后一个元素D( ,J),如果D( ,J)>k说 明在该位置上不能找到和pat匹配的子串。若 D(i, )>志,其具体值不影响后来的计算。记下列 中不大于k的最后一个元素的位置last,对 +l 列,只需计算D(0,J 4-1),D(1. +1),…,D(1ast +1, +1)。这种方法被称为cut—off heuristic剪 枝,把时间复杂度减小到O(kn)。配合cut—off heu— ristic剪枝的动态规划是目前为止最快,也是唯一具 有实用价值的基于动态规划的模糊匹配方法。 和动态规划方法不同,过滤算法不能直接计算 得到ED值,必须配合其他方法使用。分为两个阶 段:①在较少的时间消耗下过滤掉大部分无法匹配 的位置;②对余下可能匹配的位置调用其他方法定 量计算ED值。过滤算法目标是在快速过滤掉无法 匹配的位置。 TU算法出发点是用近似方法找到并过滤掉D 中必然大于k的D(i, ),实现上借鉴了BMH算 法 中从右向左扫描str串,寻找失败位置,跳跃性 移动pat串,以及通过预处理减少查找

时间的思想, 通过查找“坏字符”,滤掉str中Edit Distance必然 大于k的大部分子串位置。 在动态规划矩阵D中,记录下每个元素D(i,j.) 的来源(即D( 一1, ),D(i, —1),D(i一1, —1)之 一),可跟踪每个D(i, )的生成路径。D(m, )的 生成路径称为j.上的最小化路径,若D( , )<志, 该路径称为成功的最小化路径。每条最小化路径对 应于一个成功的匹配。Tarhio和Ukkonen证明了: 维普资讯 http://www.cqvip.com

6期 王静帆等:中文信息检索系统的模糊匹配算法研究和实现 61 在D矩阵中,成功的最小化路径不能跨越多于是条 对角线。在此基础上,定义坏字符如下:对pat中 的位置i,若字符a {pat[ 一是],patEi一是+1], …,patEi+是]},把a定义为位置i上的一个“坏字 符”。在成功的匹配中,一个坏字符将造成Edit Distance至少增加1。若一条最小化路径经过对角 线h(设D(i, )对应对角线为h一 一i),则strEh, …,h+ 一1]中的“坏字符”数不大于是。若找到是 +1个坏字符,该位置的匹配失效,跳跃到下一位 置;否则调用动态规划方法计算该位置附近子串str [^一是,…,h+ 一1+是]和pat的最小Edit Dis— tance。 每种匹配方案对应str和pat的一种对齐方式。 一个成功匹配最多允许是次操作,所以在str中的 连续是+1个字符中至少有一个等于pat中的某个 字符,也就是说,考察单个字符a在pat中出现的位 置将可以近似排除pat和str中不可能的匹配位置, 指导pat“跳跃”到下一个可能匹配的位置。 Tu算法过程如下: 预处理阶段,可通过扫描一次pat构建最小跳 跃距离表格d和坏字符表格bad。badEi,a]指示在 patEi ̄和s r[ ]一a对齐时,a是否为坏字符;d[ , a]指示对应情况下,下次可能匹配成功的最大跳跃 的长度。 badEi,a]一 if(了Z),  埘一 (1) and Z一是≤i≤Z+是 otherwize [ ,a —min{z l(z一 )or(0<z< and patEi—z]一a)} (2) a E> , 一是一1≤i< 字符串比较过滤阶段,在当前位置h上把pat —patEO,…, 一1]串和str的子串s 一strEh,…,h +

 一1]对齐(^初始化为0),从strEh+ 一1]开始 向左扫描str子串。对strEh+ ]( 一 一1, 一2, …,0),查询bad表确定是否坏字符。同时对i E [ 一1一是, 一1],查表获得nextd—min{ [ ,str [^+ ]]}作为下个可能匹配的最小跳跃距离。若 找到大于是个坏字符,说明经过该对角线的所有的 “最小化路径”的权值之和均大于是,不能满足模糊 匹配的要求,可以跳到下一个位置。Ukkonen证明 了,当2是+1≤ 时,若在strEh+是,…,h+ 一1]这 一是个字符中,有多于是个坏字符,可以把pat向 右移动至少是+1个位置,即nextd—max{nextd,是 +1}。 在a较小,I∑I较大的情况下,由于第一阶段 快速滤去了大部分不匹配的位置,该方法时间效率 能达到“子线性”。 4 改进的TU过滤算法 文献[1]证明了,在strEh+,…,h+ 一1]这 一是个字符中,若有多于是个“坏字符”,可以把 pat向右移动至少是+1个位置。但是,当2是+1> 时,strEh+是,…,h+ 一1]中不可能找到多于是 个坏字符,原过滤算法不可用。 在这种情况下,我们证明了:若从后向前扫描 到的第是+1个“坏字符”为strEh+“](0≤“<是), 则至少可以移动“+1个位置,即下一步只需比较 pat和s r[^+“+1,…,^+“+ ]。 证明:对坏字符strEh+ ](“≤ < 一1),由坏 字符的定义,strEh+ ] {patEi一“],patEi一“+ 1],…,patEi--1]}所以对角线h+1,h+2,…,h +“范围内所有的最小化路径的Edit Distance都大 于是。 因此,若在strEh,…,h+ 一1]中找到是+1 个坏字符,则下一步的移动距离为nextd—max {nextd,“+1},至少移到对角线h+“+1上,从str [ + +“]开始向左扫描,不会漏解。若在str[^, …,h+ 一1]中找不到是个坏字符,则strEh一是, …,h+是+ 一1]的某个子串s 和pat可能满足ED (pat,s )≤是,调用动态规划算法精确计算。这里, 最坏的情况下可能出现只移动1个位置的情况。 综合以上两种情况,改进后的算法可描述为: 令第是+1个坏字符的下标为h+“,最小跳跃距离 nextd≥min{是+1,“+1}

。 5基于广义Edit Distance的扩展 5.1 新的Edit Distance定义 给插入、删除、替换以不同的代价,可以得到广 义的Edit Distancel3]。 令对pat插入和删除一个字符的代价分别为 r 和r ,替换的代价根据不同的替换字符定义,只 需满足距离的一般定义,即: 1.cost(a-*b)>0(当a≠6) 2.cost(“ a)一0 维普资讯 http://www.cqvip.com

62 中文信息学报 3.cost(n一6)≤cost(n—c)十cost(c一6) 且所有代价均大于0小于正无穷。 我们将过滤算法和扩展的TU算法进行了扩 展,以处理这种广义的Edit Distance。 5.2扩展的动态规划剪枝算法 扩展后的递推公式如下: D(O,j:)一0(j:一0,l,…, ) D( ,0)一D( —l,0)+c出f (i—l,2,…, ) D(i, )一min{D( —l, 一1) +cost(pat[i--1]一s r[ 一1]), D( —l,j:)+c出 , D(i,j:一1)+c } ( —l,2,…,m,J—l,3,…, ) (3) 我们证明了(详细证明见附录A),在5.1定义 下,动态规划矩阵中的主对角线依旧是非严格单调 递增,可以采用cut—off heuristic剪枝算法。 5.3扩展的改进TU过滤算法 接下来,再将改进的过滤算法扩展到广义的 Edit Distance意义下。 设g—k/min{ ,‰},与前类似,一条成功的 最小化路径不能跨越多于q条对角线,因为从当前 对角线到达相邻对角线,必然经过水平或者竖直方 向的转移,每一步转移的代价不小于min{c如 ,‰}。 成功的最小化路径 被限制在以 为中心的2g+l 条对角线范围内。 设 一min{c出 ,‰,cost(n一6)},新的“坏字 符”定义如下: 设str[j]和pat[i1对齐,若str[j] {patEi— g],pat[i—g+1],…,pat[i+g]},把str[j]称为 该比较对角线上的一个“坏字符”,“坏字符”必然造 成该匹配位置上ED值增加至少 。若一条成功 的最小化路径经过对角线 ,则它在 上的“坏字 符”数不大于k/c…。新的算法为:对齐pat和str 的子串S 一str[h,…, + 一1],从右向左扫描S , 若找到k/c…+1个坏字符,该位置的匹配失

效,跳 跃到下一位置,设第k/c 。 +1个坏字符的下标为 + ,最小跳跃距离nextd=min{g+l, +l};否则 调用动态规划方法计算该位置附近子串str[h—q, …, + —l+g]和pat的最小ED。 特定应用中,可能给某些字符替换定义了很高 的相似度,导致 很小,过滤时必须扫描很多字 符,更糟糕的是,无法保证k/c ≤m,即扫描了整个 串都找不到足够的“坏字符”。总之,考虑每个细节 将使过滤算法失掉高效的优点。这时可以略微放宽 限制,只保证不滤掉可能解,及能滤掉大部分不可能 解,把细节的考察放到动态规划评分中。改进思路 是:在过滤阶段只选用其中足够大的插入/删除/替 换代价计算,把很“相似”的当成相等处理: f cost(a一6)if cost(a一6)>tcost cost2(a 6)一f 0 else I (4) 其中,a,b不全为空。tcost是一个阈值,用来 分开“相似”和“不相似”,必须满足k/tcost<m。 tcost过小可能导致过滤阶段时间效率降低,过大可 能导致第二阶段的计算量增加。我们认为空字符和 任何其他的字符都不相似,在这种假设下,可以令 tcost=min ,c如 }。这样的替换不会漏掉可能的 匹配位置。 5.4用于同音字/近音字处理 在中文信息检索的实际应用中,大量用户由于 使用拼音输入法经常产生同音字/近音字的错误。 同音字是现代汉语里语音相同但字形、意义不同的 字。所谓语音相同,一般是指声母、韵母和声调完 全相同.如“江”和“姜”。近音字是在现代汉语里语 音相近,但字形,意义不同的字。在这里我们处理了 几种常出现的近音字混用:1.声韵母相同,但声调 不同,如“江”和“讲”2.声母、韵母存在差异但发音相 近的字,包括前后鼻音混用(ing/in,ang/an,eng/ en),平舌卷舌混用(z/zh,c/ch,s/sh)。在进行模 糊匹配时,我们给同音字/近音字替换赋予较小的权 重(cost为0.5),给其他替换和插入删除操作赋予 较高的权重(cost为1),采用以上的过滤算法配合 带剪枝的动态算法计算Edit Distance,取得了很好 的效果。 6 实验结果 本次实验的数据包括歌曲名称数据库和用户查 询日志,实验环境为Windows XP,记录的时间并非 程序的绝对运行时间,只是开始和结束时间之差,并 未除去系统调度

的时间。所以我们只考虑时间的相 对意义而不考虑其绝对意义。被检索的是一个歌曲 数据集合,包含了600左右歌手/乐队名和5 000左 右的歌曲名称。查询词是一段时间内的用户查询日 维普资讯 http://www.cqvip.com

6期 王静帆等:中文信息检索系统的模糊匹配算法研究和实现 63 志,包含大约200 000个查询串。 在m一6时对三种算法进行对比:精确匹配 BMH算法,狭义的Edit Distance汉字匹配的过滤 算法(a===0.4,m一6),以及带同音字/近音字广义 Edit Distance扩展的过滤算法(a一0.4,m一6,取同 音字/近音字替换代价为0.5),后两个算法的第二 阶段均采用带剪枝的动态规划算法。实验结果如图 1所示,对于相同的数据集合,模糊匹配比精确匹配 可以检索到更多的条目,而考虑同音/近音字能进一 步提高召回率。 一 豁 皿 弭 簿 圈精确匹配一狭义ED图广义ED 图1不同距离度量下的输出比较 接下来,我们对四种算法(在汉字集合上的动态 规划和过滤算法,带同音字/近音字的扩展Edit Distance下的动态规划和过滤算法)的时间效率进 行比较,实验结果如图2所示。 70 譬60 50 害40 嚣30 20 10 0 / / / / / 一/ . ==: ●—————一 +汉字动态规划 一汉字过滤 +扩展动态规划 —*一扩展过滤 a=0.2 0.4 0.6 0.8 图2各算法时间效率比较 实验证明: 1.两种过滤算法的时间效率都优于动态规划, 过滤算法能有效提高时间效率。汉字集合上的过滤 算法时间效率最高,因为汉字字符集合比拼音集合 大(汉字2O 000多个,常用的有4 000多个,中文音 节数量约400个),可以滤掉更多字串。因此,在时 间要求较高时,可以在过滤时适当放宽k值,把对拼 音的处理放在第二阶段的动态规划中。 2.在a变大时,动态规划的剪枝效果降低,过 滤算法过滤掉的位置也减少,因此两者的耗时都上 升。 通过理论分析和实验验证,我们得到以下结论: 动态规划可给出精确的输出,但是耗时太多,不 适合直接使用,需要配合过滤算法。我们还把原有 过滤算法的适用范围扩展到a>o.5的情况,过滤算 法可以有效提高时间效率,但是在a较大的时候时 间性能下降。 7总结和展望 本文参考并改进了基于BMH算法的TU模糊 匹配过滤算法,用于解决查询系统中用户输入字

串 和数据库中词条的局部偏差造成的召回率下降;并 针对汉字拼音输入法带来的同音字/近音字混用现 象定义广义的Edit Distance,将模糊匹配算法推广 到该广义定义上。从理论和实验上证明我们的方法 能在有限的时间代价下有效提高检索的召回率。 由于汉字字符集的规模很大,基于汉字实现过 滤在时间效率上有相当明显的优势,但空间利用效 率不高。使用Hash Table可以在一定程度上解决 这一问题。 除了同音字/音近字外,本算法还可以对替换的 代价作不同的定义,用于处理词义类似,字形类似或 错别字混用等检索系统中可能出现的问题。 本文是在线匹配的算法,不能预处理文本建立 索引,对于大规模的语料扫描需要耗费大量时间;在 a很大的时候,过滤效果不明显,时间效率较低。我 们将进一步寻找有效的方法解决这些问题。 参考文献: E l i Tarhio.J,Ukkonen E.Approximate Boyer—Moore string matching.[J].SIAM Journal on Computing. 1993 22(2):243—260.Preliminary version in SWAT’ 90(I NCS,vo1.447,199O). R Baeza—Yates.B Ribeiro-Neto..Modern Information Retrieve rM].ACM press,1999. NAVARR()G.A guided tour tO approximate string matching[J].ACM Computing Surveys,2001,33 (1):31-88. 陈儒.面向短信过滤的中文信息模糊匹配技术[D].哈 尔滨:哈尔滨工业大学信息检索实验室2003. Knuth D E,Morris J H,Pratt V R.Fast pattern matching in strings.[J].SIAM Journal on Compu— ring,1977.6(2):323—350. R.S.Boyer,J.S.Moore.A fast string searching algo— rithm.I-J].Comm.ACM 1977 20(10):762—772. Horspool N.Practical Fast Searching in 

Strings.[J]. ] ] ] ] ] ] 维普资讯 http://www.cqvip.com

64 中文信息学报 2007芷 E8] [9] Elo] [11] [12] [13] [14] Software Practice and Experience,1980,10. G0NNET.G,BAEZA—YATES.R.Handbook of A1一 gorithms and Data Structures,2nd ed[M].Addison Wesley.1991.251-284. Ukkonen,E.Algorithms for approximate string matc— hing.[J].Information and Contro1.1985a.64,100一 l18.Preliminary version in Proceedings of the Interna tional Conference Foundations of Computation Theory (LNCS,vo1.158,1983). Ukkonen, E. Finding approximate patterns in strings.[J].Algor.1985b,6 132—137. Wu.S,Manber.U.Fast text searching allowing er rors.[J].Commun.ACM 35,1992,10,83—91. Myers,G.A fast bit—vector algorithm for approxi— mate string matching based on dynamic program— ming.[J].Journal of the ACM(JACM),1999,395— 415. G Navarro,M Raffinot.Fast and flexible string matching by combining bit——parallelism and suffix au—- tomata,[J].Journal of Experimental Algorithmics (JEA),2000,5(4). H H yyro,G Navarro.Faster bit—parallel approximate string matching.

[A].Proc.13th Combinatorial Pat— tern Matching(CPM’2002)[C],LNCS,2002 Springer,23 73. [15] 陈开渠,赵洁,彭志威.快速中文字符串模糊匹配算 法[J].中文信息学报,2004,18(12):58—65. 附录A 证明:定义新的Edit Distance如下: 对pat插入和删除一个字符的代价分别为 和c出 ,替换的代价满足: 1.cost(口一6)>0 (当a≠6) 2.cost(口 口)=0 3.cost(a-+b)≤cost(a- ̄c)+cost(c- ̄b) 且所有代价均大于0小于正无穷,则动态规划 矩阵中的主对角线依旧是非严格单调递增的。 引理1:令5。,5。,5。,…,5 为矩阵的一列, 则S 一5 l∈[一c ,c出f],i一1,2,…,例。 证明: (1)对于第0列,由定义: D(0,0)一0 D(i一1,0)一c <D(i一1,0) ≤D(i,0)一D(i一1,0)+c f (i一1,2。…, ) .‘. 5 一5 1∈[一c ,c如fj (2)对 作归纳,假设对第0,1,…, 一1列引 理1成立( ≥1),则对第 列,有: D(i, )一min{D(i~1, 一1) +cost(pat[i--1]一s£r[ 一1]), D( ~1,J)+f如r, D(i,J一1)+c ) ≤D(i一1, )+Cder (5) D( 一1, )一min{D( 一2, 一1) +cost(户口£[ 一2]一5£rD一1]), D(i一2, )+Cdel, D(i一1, 一1)-4-c ) ≤D( 一1, 一1)+f (6) D(i,j.)一min{D( ~1,j.一1) -4-cost(pat[i一1]一 £r[ 一1]), D( 一1, )+c出£, D(i, 一1)+c ) ≥min{D(i~1, 一1),D(i一1, )+Cde , D( ~1, 一1)一C +C ) (由归纳假设) ≥min{D( 一1, )一c ,D(i~1, )+c出r, D( 一1, )一c ) (由式(6)) 一D( 一1, )一c 引理2:令 ,T , , 的一行,则丁J一丁J ∈[一c 证法同引理1 证明: …,T 为扩展后矩阵中 ,c ], 一1,2,…, 。 由引理1,D(i, ~1)≥D(i

一1, 一1)一c ; 由引理2,D( 一1,Y)≥D(i一1, 一1)一c出 ; D(i, )一min{D(i一1, 一1) +cost(pat[i--1]一s£r[ 一1]), D( ~1, )+c f, D(i, 一1)+c ) ≥min{D(i一1,j.一1),D(i一1,j.)+c捌, D(i, 一1)+c ) ≥min{D( 一1, 一1),D( 一1, 一1)一Cdef +C如f,D(i, 一1)一c +c ) 一D(i一1, ~1) 因此,在我们定义的Edit Distance意义下,沿 着矩阵对角线从左上到右下,每个元素的值依然是 非严格单调递增的。 维普资讯 http://www.cqvip.com

第2l卷第6期 2007年11月 中文信息学报 JOURNAL OF CHINESE INFORMATION PROCESSING Vo1.2l,No.6 NOV.,2007 文章编号:1003—0077(2007)06—0059-06 中文信息检索系统的模糊匹配算法研究和实现 王静帆,邬晓钧,夏云庆,郑方 (清华大学计算机系清华信息科学与技术国家实验室 技术创新和开发部语音和语言技术中心,北京100084) 摘要:在现代中文信息检索系统中,用户输入的字符串和实际数据库中的条目往往存在局部偏差,而基于关键词 匹配的检索技术不能很好地解决这一问题。本文参考并改进了Tarhio和Ukkonen提出的过滤算法 ],针对汉字 拼音输入法中常出现的同音字/近音字混用现象,将算法进一步扩展到广义的Edit Distance上。实验表明,本文提 出的算法能有效提高中文信息检索系统的召回率,在实际应用中可达到“子线性”的效率。 关键词:计算机应用;中文信息处理;模糊匹配;过滤算法;动态规划 中图分类号:TP39l 文献标识码:A An Approximate String Matching Algorithm for Chinese Information Retrieval Systems WANG Jing~fan,WU Xiao—j un,XIA Yun—qing,ZHENG Fang (Dept.of Computer Sci.&Tech.Tsinghua University, Center for Speech and Language Technologies,Division of Technical Innovation and Development, Tsinghua National Laboratory for Information Science and Technology,Beijing 100084,China) Abstract:In the modern Chinese information retrieval systems,classical keyword based string matching can not work when the input string is different from the entries in 

the database.This paper proposed a method based on Tarhio and Ukkonen’S filtering algorithm tO solve the problem.Because the Chinese Pinyin typewriting usually con— sists Chinese characters with the same or similar pronunciations,we defined a special Edlt Distance and expended our method accordingly.The experimental results showed that our algorithm can improve the recall rate of the re— trleval systems and obtain practical sub—linear complexity. Key words:computer application;Chinese information processing;approximate matching;filter algorithm;dynamic programming 1 引言 现有的信息检索系统大部分采用基于关键词匹 配的检索技术l_2]。在实际应用中,用户往往凭借印 象进行检索,有时只能模糊地描述查询目标,输入的 关键词无法和数据集合中保存的数据完全一致;另 一方面,在构建数据集时引入的错误(如OCR识别错 误等)也可能造成这些数据无法被用户获取。在上述 情况下,传统的检索系统将难以从数据集中查找到所 需要的信息。本文采用模糊匹配方法查找数据集中 和用户输人相似的项,并根据相似度排序输出结果, 以部分解决上述问题。模糊匹配方法还可以用于其 他领域,如入侵检测、信息过滤、基因检测等_3“ 中文用户大部分使用拼音输入法。用户输入查 询串时选词错误造成的同音字替换是很典型的一种 现象;方言、发音习惯等造成的音近字替换(如南方 方言中,zh和z不分)是第二种典型的错误现象。本 文针对这些错误,提出了一种考虑同音字/近音字替 换的距离度量方法,在此基础上建立模糊匹配算法。 收稿Et期:2007-01—09定稿El期:

2007 09 10 作者简介:王静帆(1982一),女,硕士生,研究方向为自然语言处理;邬晓钧(1976一),男,博士,助研,研究方向为VI语对 话系统和自然语言处理;郑方(1967一),男,博士,教授,研究方向为语音信号处理。 维普资讯 http://www.cqvip.com

6O 中文信息学报 2背景简介 字符串的模式匹配(精确匹配)问题是:给定目 标字符串str和模式串pat,在str中寻找pat的匹配 位置。其经典算法有Knuth—Morris-Pratt(KMP)Es], Boyer—Moore(BM) 等。实际应用中,BM算法及 其改进型(如BMH[7 等)能达到极高的效率(子线 性),被各种检索系统广泛使用I_3 ]。 类似的,字符串的模糊匹配目标是在str中查 找与pat相似的字串位置。普遍采用Edit Distance (ED)来刻画两个字符串的距离I_3]。设A,B为两个 字符串,狭义的ED(A,B)定义为:把A转换成B 需要的最少删除(删除A中一个字符)、插入(在A 中插入一个字符)或替换(把A中的某个字符替换 成另一个字符)次数。直观地;两个串互相转换需要 经过的步骤越多,相差越多。模糊匹配问题转化为 对给定正整数k,找出str的所有子串s ,使得ED (s ,pat)<志。 模糊匹配技术的策略主要有以下四种 ]:1.动 态规划 ],2.自动机口 ,3.位平行策略I_l ],4.过滤 策略口]。将它们结合使用,常常可以获得更高的时 间效率E13 ̄ls]。 本文基于Tarhio和Ukkonen提出的过滤算 法[1](TU过滤算法),配合带剪枝的动态规划算 法 ],在以下两方面进行了改进:1.扩展了原有过 滤算法,使之能处理更一般的情况;2.针对中文中特 有的同音字/近音字替换问题定义了广义的Edit Distance,并扩展了过滤算法和动态规划算法以解 决该距离度量下的模糊匹配问题。 本文的余下部分安排如下:第3节简单介绍动 态规划及剪枝算法 ]和TU算法_1 ;第4节介绍我 们对TU算法的扩展;第5节针对同音字/近音字问 题定义了广义的Edit Distance,并提出该距离度量 下解决模式匹配的基于TU过滤和剪枝动态规划算 法;第6节给出实验结果和分析,最后是结论。 3 动态规划和TU过滤算法 为了更好的说明模糊匹配算法,首先定义可能 用到的符号:字符集∑上,目标

字符串为str,长度 为 ,模式字符串pat,长度为m。两个匹配串之间 的最大Edit Distance为k,错误率上界为a,a—k/ m。用sE0,…, ]表示字符串s的一个子串,下标由 0开始。 str的每个子串可以表示为其前缀子串的后缀 子串,动态规划方法 计算了pat的前缀子串pat [0,…,i一1-1和str的前缀子串str Eo,…, 一1]的 后缀子串的最小Edit Distance,记入D(i, )。 D(0,J)一0( 一0,1,…, ) D(i,0)一D(i一1,0)4-1 (i一1,2,…,m) D(i,J)一min{D(i~1, 一1),D(i~1, ), D(i,J一1)}4-1 if strEJ一1]≠par2i一1] 一D(i一1,j.~1) if strEJ一1]一patEi—1] ( —l,2,…,m,J—l,3,…, ) D(i, )只和D(i~1. ),D(i, ~1),D(i一 1, —1)有关,分别对应于对pat[i一1]的删除、插 入、替换或匹配操作,计算( 4-1)x( 4-1)的动态 规划矩阵D,复杂度为0(ran)。 Ukkonen[3 ]证明,在狭义ED定义下,D沿对 角线从左上到右下,元素值非严格单调递增。对每 列的最后一个元素D( ,J),如果D( ,J)>k说 明在该位置上不能找到和pat匹配的子串。若 D(i, )>志,其具体值不影响后来的计算。记下列 中不大于k的最后一个元素的位置last,对 +l 列,只需计算D(0,J 4-1),D(1. +1),…,D(1ast +1, +1)。这种方法被称为cut—off heuristic剪 枝,把时间复杂度减小到O(kn)。配合cut—off heu— ristic剪枝的动态规划是目前为止最快,也是唯一具 有实用价值的基于动态规划的模糊匹配方法。 和动态规划方法不同,过滤算法不能直接计算 得到ED值,必须配合其他方法使用。分为两个阶 段:①在较少的时间消耗下过滤掉大部分无法匹配 的位置;②对余下可能匹配的位置调用其他方法定 量计算ED值。过滤算法目标是在快速过滤掉无法 匹配的位置。 TU算法出发点是用近似方法找到并过滤掉D 中必然大于k的D(i, ),实现上借鉴了BMH算 法 中从右向左扫描str串,寻找失败位置,跳跃性 移动pat串,以及通过预处理减少查找

时间的思想, 通过查找“坏字符”,滤掉str中Edit Distance必然 大于k的大部分子串位置。 在动态规划矩阵D中,记录下每个元素D(i,j.) 的来源(即D( 一1, ),D(i, —1),D(i一1, —1)之 一),可跟踪每个D(i, )的生成路径。D(m, )的 生成路径称为j.上的最小化路径,若D( , )<志, 该路径称为成功的最小化路径。每条最小化路径对 应于一个成功的匹配。Tarhio和Ukkonen证明了: 维普资讯 http://www.cqvip.com

6期 王静帆等:中文信息检索系统的模糊匹配算法研究和实现 61 在D矩阵中,成功的最小化路径不能跨越多于是条 对角线。在此基础上,定义坏字符如下:对pat中 的位置i,若字符a {pat[ 一是],patEi一是+1], …,patEi+是]},把a定义为位置i上的一个“坏字 符”。在成功的匹配中,一个坏字符将造成Edit Distance至少增加1。若一条最小化路径经过对角 线h(设D(i, )对应对角线为h一 一i),则strEh, …,h+ 一1]中的“坏字符”数不大于是。若找到是 +1个坏字符,该位置的匹配失效,跳跃到下一位 置;否则调用动态规划方法计算该位置附近子串str [^一是,…,h+ 一1+是]和pat的最小Edit Dis— tance。 每种匹配方案对应str和pat的一种对齐方式。 一个成功匹配最多允许是次操作,所以在str中的 连续是+1个字符中至少有一个等于pat中的某个 字符,也就是说,考察单个字符a在pat中出现的位 置将可以近似排除pat和str中不可能的匹配位置, 指导pat“跳跃”到下一个可能匹配的位置。 Tu算法过程如下: 预处理阶段,可通过扫描一次pat构建最小跳 跃距离表格d和坏字符表格bad。badEi,a]指示在 patEi ̄和s r[ ]一a对齐时,a是否为坏字符;d[ , a]指示对应情况下,下次可能匹配成功的最大跳跃 的长度。 badEi,a]一 if(了Z),  埘一 (1) and Z一是≤i≤Z+是 otherwize [ ,a —min{z l(z一 )or(0<z< and patEi—z]一a)} (2) a E> , 一是一1≤i< 字符串比较过滤阶段,在当前位置h上把pat —patEO,…, 一1]串和str的子串s 一strEh,…,h +

 一1]对齐(^初始化为0),从strEh+ 一1]开始 向左扫描str子串。对strEh+ ]( 一 一1, 一2, …,0),查询bad表确定是否坏字符。同时对i E [ 一1一是, 一1],查表获得nextd—min{ [ ,str [^+ ]]}作为下个可能匹配的最小跳跃距离。若 找到大于是个坏字符,说明经过该对角线的所有的 “最小化路径”的权值之和均大于是,不能满足模糊 匹配的要求,可以跳到下一个位置。Ukkonen证明 了,当2是+1≤ 时,若在strEh+是,…,h+ 一1]这 一是个字符中,有多于是个坏字符,可以把pat向 右移动至少是+1个位置,即nextd—max{nextd,是 +1}。 在a较小,I∑I较大的情况下,由于第一阶段 快速滤去了大部分不匹配的位置,该方法时间效率 能达到“子线性”。 4 改进的TU过滤算法 文献[1]证明了,在strEh+,…,h+ 一1]这 一是个字符中,若有多于是个“坏字符”,可以把 pat向右移动至少是+1个位置。但是,当2是+1> 时,strEh+是,…,h+ 一1]中不可能找到多于是 个坏字符,原过滤算法不可用。 在这种情况下,我们证明了:若从后向前扫描 到的第是+1个“坏字符”为strEh+“](0≤“<是), 则至少可以移动“+1个位置,即下一步只需比较 pat和s r[^+“+1,…,^+“+ ]。 证明:对坏字符strEh+ ](“≤ < 一1),由坏 字符的定义,strEh+ ] {patEi一“],patEi一“+ 1],…,patEi--1]}所以对角线h+1,h+2,…,h +“范围内所有的最小化路径的Edit Distance都大 于是。 因此,若在strEh,…,h+ 一1]中找到是+1 个坏字符,则下一步的移动距离为nextd—max {nextd,“+1},至少移到对角线h+“+1上,从str [ + +“]开始向左扫描,不会漏解。若在str[^, …,h+ 一1]中找不到是个坏字符,则strEh一是, …,h+是+ 一1]的某个子串s 和pat可能满足ED (pat,s )≤是,调用动态规划算法精确计算。这里, 最坏的情况下可能出现只移动1个位置的情况。 综合以上两种情况,改进后的算法可描述为: 令第是+1个坏字符的下标为h+“,最小跳跃距离 nextd≥min{是+1,“+1}

。 5基于广义Edit Distance的扩展 5.1 新的Edit Distance定义 给插入、删除、替换以不同的代价,可以得到广 义的Edit Distancel3]。 令对pat插入和删除一个字符的代价分别为 r 和r ,替换的代价根据不同的替换字符定义,只 需满足距离的一般定义,即: 1.cost(a-*b)>0(当a≠6) 2.cost(“ a)一0 维普资讯 http://www.cqvip.com

62 中文信息学报 3.cost(n一6)≤cost(n—c)十cost(c一6) 且所有代价均大于0小于正无穷。 我们将过滤算法和扩展的TU算法进行了扩 展,以处理这种广义的Edit Distance。 5.2扩展的动态规划剪枝算法 扩展后的递推公式如下: D(O,j:)一0(j:一0,l,…, ) D( ,0)一D( —l,0)+c出f (i—l,2,…, ) D(i, )一min{D( —l, 一1) +cost(pat[i--1]一s r[ 一1]), D( —l,j:)+c出 , D(i,j:一1)+c } ( —l,2,…,m,J—l,3,…, ) (3) 我们证明了(详细证明见附录A),在5.1定义 下,动态规划矩阵中的主对角线依旧是非严格单调 递增,可以采用cut—off heuristic剪枝算法。 5.3扩展的改进TU过滤算法 接下来,再将改进的过滤算法扩展到广义的 Edit Distance意义下。 设g—k/min{ ,‰},与前类似,一条成功的 最小化路径不能跨越多于q条对角线,因为从当前 对角线到达相邻对角线,必然经过水平或者竖直方 向的转移,每一步转移的代价不小于min{c如 ,‰}。 成功的最小化路径 被限制在以 为中心的2g+l 条对角线范围内。 设 一min{c出 ,‰,cost(n一6)},新的“坏字 符”定义如下: 设str[j]和pat[i1对齐,若str[j] {patEi— g],pat[i—g+1],…,pat[i+g]},把str[j]称为 该比较对角线上的一个“坏字符”,“坏字符”必然造 成该匹配位置上ED值增加至少 。若一条成功 的最小化路径经过对角线 ,则它在 上的“坏字 符”数不大于k/c…。新的算法为:对齐pat和str 的子串S 一str[h,…, + 一1],从右向左扫描S , 若找到k/c…+1个坏字符,该位置的匹配失

效,跳 跃到下一位置,设第k/c 。 +1个坏字符的下标为 + ,最小跳跃距离nextd=min{g+l, +l};否则 调用动态规划方法计算该位置附近子串str[h—q, …, + —l+g]和pat的最小ED。 特定应用中,可能给某些字符替换定义了很高 的相似度,导致 很小,过滤时必须扫描很多字 符,更糟糕的是,无法保证k/c ≤m,即扫描了整个 串都找不到足够的“坏字符”。总之,考虑每个细节 将使过滤算法失掉高效的优点。这时可以略微放宽 限制,只保证不滤掉可能解,及能滤掉大部分不可能 解,把细节的考察放到动态规划评分中。改进思路 是:在过滤阶段只选用其中足够大的插入/删除/替 换代价计算,把很“相似”的当成相等处理: f cost(a一6)if cost(a一6)>tcost cost2(a 6)一f 0 else I (4) 其中,a,b不全为空。tcost是一个阈值,用来 分开“相似”和“不相似”,必须满足k/tcost<m。 tcost过小可能导致过滤阶段时间效率降低,过大可 能导致第二阶段的计算量增加。我们认为空字符和 任何其他的字符都不相似,在这种假设下,可以令 tcost=min ,c如 }。这样的替换不会漏掉可能的 匹配位置。 5.4用于同音字/近音字处理 在中文信息检索的实际应用中,大量用户由于 使用拼音输入法经常产生同音字/近音字的错误。 同音字是现代汉语里语音相同但字形、意义不同的 字。所谓语音相同,一般是指声母、韵母和声调完 全相同.如“江”和“姜”。近音字是在现代汉语里语 音相近,但字形,意义不同的字。在这里我们处理了 几种常出现的近音字混用:1.声韵母相同,但声调 不同,如“江”和“讲”2.声母、韵母存在差异但发音相 近的字,包括前后鼻音混用(ing/in,ang/an,eng/ en),平舌卷舌混用(z/zh,c/ch,s/sh)。在进行模 糊匹配时,我们给同音字/近音字替换赋予较小的权 重(cost为0.5),给其他替换和插入删除操作赋予 较高的权重(cost为1),采用以上的过滤算法配合 带剪枝的动态算法计算Edit Distance,取得了很好 的效果。 6 实验结果 本次实验的数据包括歌曲名称数据库和用户查 询日志,实验环境为Windows XP,记录的时间并非 程序的绝对运行时间,只是开始和结束时间之差,并 未除去系统调度

的时间。所以我们只考虑时间的相 对意义而不考虑其绝对意义。被检索的是一个歌曲 数据集合,包含了600左右歌手/乐队名和5 000左 右的歌曲名称。查询词是一段时间内的用户查询日 维普资讯 http://www.cqvip.com

6期 王静帆等:中文信息检索系统的模糊匹配算法研究和实现 63 志,包含大约200 000个查询串。 在m一6时对三种算法进行对比:精确匹配 BMH算法,狭义的Edit Distance汉字匹配的过滤 算法(a===0.4,m一6),以及带同音字/近音字广义 Edit Distance扩展的过滤算法(a一0.4,m一6,取同 音字/近音字替换代价为0.5),后两个算法的第二 阶段均采用带剪枝的动态规划算法。实验结果如图 1所示,对于相同的数据集合,模糊匹配比精确匹配 可以检索到更多的条目,而考虑同音/近音字能进一 步提高召回率。 一 豁 皿 弭 簿 圈精确匹配一狭义ED图广义ED 图1不同距离度量下的输出比较 接下来,我们对四种算法(在汉字集合上的动态 规划和过滤算法,带同音字/近音字的扩展Edit Distance下的动态规划和过滤算法)的时间效率进 行比较,实验结果如图2所示。 70 譬60 50 害40 嚣30 20 10 0 / / / / / 一/ . ==: ●—————一 +汉字动态规划 一汉字过滤 +扩展动态规划 —*一扩展过滤 a=0.2 0.4 0.6 0.8 图2各算法时间效率比较 实验证明: 1.两种过滤算法的时间效率都优于动态规划, 过滤算法能有效提高时间效率。汉字集合上的过滤 算法时间效率最高,因为汉字字符集合比拼音集合 大(汉字2O 000多个,常用的有4 000多个,中文音 节数量约400个),可以滤掉更多字串。因此,在时 间要求较高时,可以在过滤时适当放宽k值,把对拼 音的处理放在第二阶段的动态规划中。 2.在a变大时,动态规划的剪枝效果降低,过 滤算法过滤掉的位置也减少,因此两者的耗时都上 升。 通过理论分析和实验验证,我们得到以下结论: 动态规划可给出精确的输出,但是耗时太多,不 适合直接使用,需要配合过滤算法。我们还把原有 过滤算法的适用范围扩展到a>o.5的情况,过滤算 法可以有效提高时间效率,但是在a较大的时候时 间性能下降。 7总结和展望 本文参考并改进了基于BMH算法的TU模糊 匹配过滤算法,用于解决查询系统中用户输入字

串 和数据库中词条的局部偏差造成的召回率下降;并 针对汉字拼音输入法带来的同音字/近音字混用现 象定义广义的Edit Distance,将模糊匹配算法推广 到该广义定义上。从理论和实验上证明我们的方法 能在有限的时间代价下有效提高检索的召回率。 由于汉字字符集的规模很大,基于汉字实现过 滤在时间效率上有相当明显的优势,但空间利用效 率不高。使用Hash Table可以在一定程度上解决 这一问题。 除了同音字/音近字外,本算法还可以对替换的 代价作不同的定义,用于处理词义类似,字形类似或 错别字混用等检索系统中可能出现的问题。 本文是在线匹配的算法,不能预处理文本建立 索引,对于大规模的语料扫描需要耗费大量时间;在 a很大的时候,过滤效果不明显,时间效率较低。我 们将进一步寻找有效的方法解决这些问题。 参考文献: E l i Tarhio.J,Ukkonen E.Approximate Boyer—Moore string matching.[J].SIAM Journal on Computing. 1993 22(2):243—260.Preliminary version in SWAT’ 90(I NCS,vo1.447,199O). R Baeza—Yates.B Ribeiro-Neto..Modern Information Retrieve rM].ACM press,1999. NAVARR()G.A guided tour tO approximate string matching[J].ACM Computing Surveys,2001,33 (1):31-88. 陈儒.面向短信过滤的中文信息模糊匹配技术[D].哈 尔滨:哈尔滨工业大学信息检索实验室2003. Knuth D E,Morris J H,Pratt V R.Fast pattern matching in strings.[J].SIAM Journal on Compu— ring,1977.6(2):323—350. R.S.Boyer,J.S.Moore.A fast string searching algo— rithm.I-J].Comm.ACM 1977 20(10):762—772. Horspool N.Practical Fast Searching in 

Strings.[J]. ] ] ] ] ] ] 维普资讯 http://www.cqvip.com

64 中文信息学报 2007芷 E8] [9] Elo] [11] [12] [13] [14] Software Practice and Experience,1980,10. G0NNET.G,BAEZA—YATES.R.Handbook of A1一 gorithms and Data Structures,2nd ed[M].Addison Wesley.1991.251-284. Ukkonen,E.Algorithms for approximate string matc— hing.[J].Information and Contro1.1985a.64,100一 l18.Preliminary version in Proceedings of the Interna tional Conference Foundations of Computation Theory (LNCS,vo1.158,1983). Ukkonen, E. Finding approximate patterns in strings.[J].Algor.1985b,6 132—137. Wu.S,Manber.U.Fast text searching allowing er rors.[J].Commun.ACM 35,1992,10,83—91. Myers,G.A fast bit—vector algorithm for approxi— mate string matching based on dynamic program— ming.[J].Journal of the ACM(JACM),1999,395— 415. G Navarro,M Raffinot.Fast and flexible string matching by combining bit——parallelism and suffix au—- tomata,[J].Journal of Experimental Algorithmics (JEA),2000,5(4). H H yyro,G Navarro.Faster bit—parallel approximate string matching.

[A].Proc.13th Combinatorial Pat— tern Matching(CPM’2002)[C],LNCS,2002 Springer,23 73. [15] 陈开渠,赵洁,彭志威.快速中文字符串模糊匹配算 法[J].中文信息学报,2004,18(12):58—65. 附录A 证明:定义新的Edit Distance如下: 对pat插入和删除一个字符的代价分别为 和c出 ,替换的代价满足: 1.cost(口一6)>0 (当a≠6) 2.cost(口 口)=0 3.cost(a-+b)≤cost(a- ̄c)+cost(c- ̄b) 且所有代价均大于0小于正无穷,则动态规划 矩阵中的主对角线依旧是非严格单调递增的。 引理1:令5。,5。,5。,…,5 为矩阵的一列, 则S 一5 l∈[一c ,c出f],i一1,2,…,例。 证明: (1)对于第0列,由定义: D(0,0)一0 D(i一1,0)一c <D(i一1,0) ≤D(i,0)一D(i一1,0)+c f (i一1,2。…, ) .‘. 5 一5 1∈[一c ,c如fj (2)对 作归纳,假设对第0,1,…, 一1列引 理1成立( ≥1),则对第 列,有: D(i, )一min{D(i~1, 一1) +cost(pat[i--1]一s£r[ 一1]), D( ~1,J)+f如r, D(i,J一1)+c ) ≤D(i一1, )+Cder (5) D( 一1, )一min{D( 一2, 一1) +cost(户口£[ 一2]一5£rD一1]), D(i一2, )+Cdel, D(i一1, 一1)-4-c ) ≤D( 一1, 一1)+f (6) D(i,j.)一min{D( ~1,j.一1) -4-cost(pat[i一1]一 £r[ 一1]), D( 一1, )+c出£, D(i, 一1)+c ) ≥min{D(i~1, 一1),D(i一1, )+Cde , D( ~1, 一1)一C +C ) (由归纳假设) ≥min{D( 一1, )一c ,D(i~1, )+c出r, D( 一1, )一c ) (由式(6)) 一D( 一1, )一c 引理2:令 ,T , , 的一行,则丁J一丁J ∈[一c 证法同引理1 证明: …,T 为扩展后矩阵中 ,c ], 一1,2,…, 。 由引理1,D(i, ~1)≥D(i

一1, 一1)一c ; 由引理2,D( 一1,Y)≥D(i一1, 一1)一c出 ; D(i, )一min{D(i一1, 一1) +cost(pat[i--1]一s£r[ 一1]), D( ~1, )+c f, D(i, 一1)+c ) ≥min{D(i一1,j.一1),D(i一1,j.)+c捌, D(i, 一1)+c ) ≥min{D( 一1, 一1),D( 一1, 一1)一Cdef +C如f,D(i, 一1)一c +c ) 一D(i一1, ~1) 因此,在我们定义的Edit Distance意义下,沿 着矩阵对角线从左上到右下,每个元素的值依然是 非严格单调递增的。 维普资讯 http://www.cqvip.com


相关文章

  • 基于云计算的数据挖掘的信息检索
  • 2012-2013学年度第 二 学期 信息检索与利用专题检索报告 课题: 基于云计算的数据挖掘 学号 手机 2013年 6月23日 一.课题分析 云计算(cloud computing)是基于的相关服务的增加.使用和交付模式,通常涉及通过互 ...查看


  • 文本信息检索模型
  • 晋图学刊 1998年第3期 ・33・ 文本信息检索模型 齐向华 (山西大学信息管理系 太原 030006) [摘要] 介绍了目前流行的三种文本信息检索模型(布尔检索模型.概率推理模型.空间向量模型)的基本原理和各自较重要的实用系统,最后对三 ...查看


  • 基于百科资源的多策略中文同义词自动抽取研究(1)
  • 基于百科资源的多策略中文同义词自动 抽取研究* 陆 勇 章成志 侯汉清 摘 要 采用实证的方法, 以百度百科语料库为实验抽取对象, 在对同义词自动抽取技术分析比较的基础上, 提出了多策略的中文同义词抽取的思路.综合利用字面相似度方法.特征模 ...查看


  • 文献检索实验报告
  • 文献检索课程的意义和认识 当今时代是一个知识爆炸的时代,知识与情报是巨大的社会财富,可以说及时有效地获取并利用必要的知识与情报是当今社会取得竞争的制胜关键.这是高等学校学生必须练好的本领,也是我国教育面向现代化.面向世界.面向未来的需要.知 ...查看


  • 基于内容的图像检索技术研究
  • 中国新技术新产品 2010NO .8 and Products 高新技术 基于内容的图像检索技术研究 姚弘 (南通职业大学电子工程系,江苏南通226007) 摘 要:基于内容的图像检索技术在数字图书馆.医疗图像.网络信息安全.遥感等领域有着 ...查看


  • [文献检索]高级路由检索检索报告及范例
  • <文献检索>课程 检索报告 题目高级路由与交换技术文献检索 姓名王永强 专业计算机科学与技术一班 学号201215054 一.检索课题:中文:高级路由与交换技术 中文关键词:高级路由,交换技术 英文:Advanced routi ...查看


  • 研究报告范文
  • 三维CAD模型检索技术研究现状与发展趋势 [摘要]对目前三维CAD模型检索技术的研究现状和发展趋势进行了的综述.首先从文本检索.内容检索和语义检索三个方面对三维CAD模型检索技术国内外研究现状进行了全面论述:分析总结了现有三维CAD模型检索 ...查看


  • 信息检索相关性
  • 近十年我国信息检索相关性研究现状分析--基于共词分析的视角 摘要:相关性是信息检索领域的核心研究的内容之一,对其进行深入研究将有助于提高信息检索的效率,推动信息检索的研究.本文将通过共词分析的方法,利用知识图谱对其进行可视化分析研究. 关键 ...查看


  • 车牌检测识别实验报告
  • <数字图像处理>课程设计报告 学院 专业 电子信息科学与技术 班级 XXXXXXXXXXXX 学生姓名学号 车牌检测识别 关键词:车牌定位,字符分割,字符识别 绪论: 随着我国的公路交通事业发展迅速,人工管理方式已经不能满着实际 ...查看


热门内容