基于统计特征的模式匹配算法.doc
《基于统计特征的模式匹配算法.doc》由会员分享,可在线阅读,更多相关《基于统计特征的模式匹配算法.doc(14页珍藏版)》请在咨信网上搜索。
1、基于统计特征的模式匹配算法摘 要针对传统模式匹配算法的按模式中字符排列顺序匹配的过程,该算法模拟人脑思维利用模式中字符出现频率、位置等特征信息建立了一个新的匹配序列,打乱了原来的顺序匹配过程,从而在匹配过程中,利用特征信息尽可能的跳过更多的字符,从而达到比较高的匹配效率。 该算法的另一大特点就是不需要遍历完所有文本中的字符就可以找出与模式匹配的字符串。与传统的BF、KMP、BM等算法相比,该算法的平均时间复杂度已经达到了他们的最好情况。 关键词:模式匹配; 算法; 统计特征 AbstractThe difference to the traditional Algorithm of Strin
2、g-Matching is this algorithm uses the statistic characteristic of the position and frequency of the char to build a new matching list. During the process of the matching, this algorithm will try its best to use this characteristic to skip much more chars to improve the efficiency of the matching. An
3、other characteristic of this Algorithm is it can successfully finish without comparing all chars in the Text. Comparing with the Algorithm before, like BF ,KMP, BM, this Algorithms average complication of time reaches then best condition of these. Keywords: string-matching; algorithm; statistic char
4、acteristic 目 录引言11绪论21.1 基于统计特征的模式匹配算法提出原因21.2 基本数据规定22传统的模式匹配算法22.1 BF算法22.2 KMP算法32.3 BM算法53基于统计特征的模式匹配算法53.1算法思想53.2算法分析7结束语9参考文献10青海师范大学2010届本科生毕业论文引言字符串匹配是字符串的基本运算之一。串的模式匹配即子串定位,是一种重要的串运算。模式匹配就是在主串S= s1s2s3s4中查找模式串T= t1t2t3t4的所有出现,该技术在很多领域都发挥重要的作用,比如在情报检索、网络搜索、文本检索、拼写检查、语言翻译、数据压缩、网络入侵检测、计算机病毒特征
5、码匹配以及DNA序列匹配等各个方面都有着很重要的应用。通过模式匹配,我们可以得到很多我们想要知道的信息,而这些是靠人工难以完成的。尤其是在以后的段落搜索,自然语言查询中,对模式匹配的速度、效率等要求会越来越高,而传统的BF、KMP和BM等算法并不能很高效的给出结果,因此我们有必要对模式匹配的算法进行进一步发展。本文主要在介绍了BF算法、KMP算法的基础上提出一种更好的算法基于统计特征的模式匹配算法。11绪论我们在日常生活中经常以局部特征判定事物,而这种方式是普遍认可的,也是最佳的。一项将此技术应用于计算机科学领域的就是基于统计特征的模式匹配算法。1.1 基于统计特征的模式匹配算法提出原因 对于
6、KMP、BM等算法有一个共同的特征:顺序扫描或者从左至右,或者从右至左。这样的好处是匹配时有顺序的规律可循,比较容易理解,操作起来比较方便, 缺点就是没有最大限度利用模式自身的一些统计特征而只是利用了顺序的特征。如何利用统计特征呢?举个例子来证明。在街上我们遇到了一个似曾相识的人,我们判断那个人是不是我们认识的人的时候,我们是把遇到的那个人与我们记忆中的那个人的特征相比较,比如说秃顶,眼角有颗痔,身高,性别,胖瘦,脸型,肤色等等。我们比较是鲜明的特征,而不是从头到脚的扫描比较。也就是说我们在比较两个事物的时候是优先比较他们比较特殊的地方。对于模式匹配,这个优先级似的比较方式依然成立。1.2 基
7、本数据规定传统的算法分析在有了模式匹配的需要后,出现了很多模式匹配的算法,在这里为后续内容分析而规定:主串S的长度为n,模式串T的长度为m,子串的定位操作Index(S,T,pos),其中pos为某个字符在主串中的位置。 2传统的模式匹配算法 本章介绍三种典型的传统的模式匹配算法,并分别给出部分算法实现。2.1 BF算法BF(Brute-Force)算法即简单模式匹配算法,也称朴素串匹配算法算法,其算法思想:对主串S和模式串T进行从左至右顺序匹配比较,若主串S的第一个字符和模式串T的第一个字符进行比较,若相等则同时向后移动一位,继续逐个比较后续字符,否则如果在完全匹配结束前发生不匹配,那么模式
8、串T回溯到模式首字符,而主串S则回溯到起始位置的下一个字符进行比较。依次类推,直至模式串T和主串S中的一个子串相等,此时称为匹配成功,否则,称为匹配失败。图2-1展示了pos=1时,模式串T=abcac和主串S=ababcabcacbab的匹配过程。其中i和j指示主串S和模式串T中当前正待比较的字符位置。串的简单模式匹配算法描述如算法2-1所示。【算法描述】int Index(SString S, SString T, int pos) int i, j;i=pos; j=1;While (i=S0&j=T0) return (i- T0);else return 0;算法2-1 串的简单模式
9、匹配 i=3第1趟匹配 S a b a b c a b c a c b a b T a b c a c j=3 i=2第2趟匹配 S a b a b c a b c a c b a b T a b c a c j=1 i=7第3趟匹配 S a b a b c a b c a c b a b T a b c a c j=5 i=4第4趟匹配 S a b a b c a b c a c b a b T a b c a c j=1 i=5第5趟匹配 S a b a b c a b c a c b a b T a b c a c j=1 i=11第6趟匹配 S a b a b c a b c a c
10、b a b T a b c a c j=6图2-1 串的简单模式匹配过程示意这种算法看起来比较简单,但是效率比较低,最好的情况下为O(m+n),在最坏情况下,每趟比较都在最后出现不等,最多要比较n-m-1趟,总比较次数为O(n-m+1)m),算法的时间复杂度为O(m*n)。2.2 KMP算法3青海师范大学2010届本科生毕业论文2.2.1简述KMP(无回溯的模式匹配)算法正是由D.E.Knuth 、V.R.Pratt 和J.H.Morris同时发现的,因此称KMP算法。它是针对上述算法频繁回溯的不足做了实质性的改进。其基本思想是:某趟匹配中,主串字符si和模式串tj匹配失败后,指针i不回溯,而
11、是让模式串T向右“滑动”至某个位置,假设这个位置是k,使得tj对准si继续向右进行比较。因此,KMP算法的关键就在于找到模式串向右“滑动的距离”。 若用数组元素nextj来表示字符tj不匹配时的滑动距离,则nextj的取值满足以下next函数的定义: 0 nextj= maxk|1kj且t1t2tk-1=tj-k+1t j-k+2t j-1 此集合不空时,取相等串中最长字串 1 其他情况2.2.2 KMP算法实现KMP算法是在求得模式串的next函数值的基础上执行的,next函数值仅依赖于模式T本身,而和主串S无关。由2.2.1中next函数的定义实现可得到模式串abcaabbabcab的ne
12、xt函数值,如表2-1所示。表2-1 模式串abcaabbabcab的next函数值j123456789101112模式abcaabba bcabnextj011122312345KMP算法如算法2-2所示,在形式上和算法2-1极为类似。假设模式串 T1m中前 q 个字符已经匹配了主串 Sss+q-1,那我们就可以避免一些重复匹配。找出最大的 k 使得 T1k=T(q-k+1)q,从而计算出 s使得 T1k=Sss+k-1.其中 s,+k-1=s+q-1。【算法描述】int Index_KMP(SString S, SString T, int pos)int i, j;i=pos; j=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 统计 特征 模式 匹配 算法
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。