模式匹配的方法和系统技术方案

技术编号:2854310 阅读:162 留言:0更新日期:2012-04-11 18:40
通过分别在可能源模式和目标模式的有序序列内只考虑源模式和目标模式的位置数可以获得模式匹配。包含目标模式的源模式位置数形成许多组。在每个i组内的源模式数和组间间隔内的源模式数取决于目标模式在源模式内的位置。目标模式的长度和字母集合中的元素数。每个组也有位置数,它的位置在有序序列的组内。将输入源模式的组位置数与从目标模式的位置数、目标模式的长度和字母集中的元素数得到的序列比较(9)。如果组位置数是序列的成员(10),那么源模式包含目标模式(11)。可以在未编码数据或Oh算术编码数据上执行模式匹配。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及模式匹配。模式匹配是在源模式中寻找一些或所有目标模式的出现的过程。压缩模式匹配是在不解压源模式的情况下,在压缩的源模式中寻找一些或所有目标模式的出现的过程。
技术介绍
模式匹配是将分析规则应用于数据块以便识别数据块的特性。最普遍的模式匹配问题是在较大序列元素[X1...Xn](源模式)中寻找一些或所有序列元素[Y1...Ym](目标模式)的出现的过程。元素来自于有限元素集—字母集。该集合可以是英语字母表,{0,1},自然数等等。解决该问题的最常用算法是Knuth-Morris-Pratt算法,Boyer-Moore算法和Rabin-Karp算法。在公共领域中有许多模式匹配工具。这些中最著名的是文件内字符串查找族(grep family)。模式匹配用于简单文本搜索,在图像数据、语音数据、视频数据、音频数据、生物-医学序列分析等中搜索数据。数据压缩主要用于减少存储空间并加速数据传送。已知各种形式的压缩。特别的关注是算术编码压缩,对于该压缩,压缩模式匹配至今还没有成为可能。算术编码起源于70年代和80年代(参见示例US4,122,440)。算术编码用于多个领域,包括语音和医学图像压缩。在压缩模式匹配中,在压缩领域执行模式匹配。简洁的输入,诸如文本串的压缩模式匹配可以表示为ac是给出的压缩算法,ac(D)是ac的结果压缩数据D输入压缩文本ac(T)和压缩模式ac(P)输出当模式P出现时,在T中的所有或一些位置Amir和Benson(“Efficient Two-dimensional Compressed Matching”,在第二次IEEE数据压缩会议中,279-288页,1992年3月)示出,与未压缩领域中的任何常规方法相比,压缩领域里的模式匹配的复杂生是降低的。然而,认为在“算术代码”上不压缩数据而执行模式匹配还是不可能的。(“TR-COSC 07/01 Pattern Matching in Compressed Texts and Images”,Tim Bell等,技术报告,坎特伯雷大学,访问http//www.cosc.canterbury.ac.nz/research/reports/TechReps/2001/tr 0107.pdf可得)
技术实现思路
本专利技术的目的是提供适用于匹配算术代码的模式匹配方法或至少为公众提供有用的选择。根据本专利技术的第一方面,提供一种通过确定源模式在可能模式序列的位置是否是和在包括目标模式的可能模式序列中的一个位置相关的位置来确定目标模式是否在由一个或多个来自字母表集的字符组成的源模式中出现的方法,。根据本专利技术的另一方面,提供一种确定目标序列[X1...Xm]是否在源序列[Y1...Yq]中出现的方法,其中{X1...Xm}和{Y1...Yq}是有限有序集合{Z1...Zo}的成员,包括步骤i.在库(base)o中构建源子序列集合{[V1],...[V1...Vk],...[V1...Vn]},其中Vk=j:Yk=Zj;以及ii.确定集合的任意值是否对应目标值序列{p,..p+kom,...p+nom},其中P是库o中的数字[D1,...Dn],例如Dk=h:Xk=Zh。根据本专利技术的另一方面,提供一种数据处理装置,用于确定目标模式是否出现在由一个或多个字母表字符组成的源模式中,包括i.第一存储器,用于存储目标模式;ii.第二存储器,用于存储源模式;iii.处理装置,用于确定源模式在可能模式序列中的位置;iv.处理装置,用于确定目标模式在可能模式序列中的位置;v.处理装置,用于关联源位置和目标位置;根据本专利技术的另一方面,提供一种数据处理装置,用于确定目标序列是否出现在由一个或多个字母表字符组成的源序列中i.存储目标序列位置的第一存储器,其中目标序列位置是目标序列在字母表字符的所有可能组合的词典中的位置;ii.存储源位置的第二存储器,其中源序列位置是源序列在词典中的位置;iii.计算源序列的子序列的位置集合的处理装置,其中子序列的位置是子序列在词典中的位置,并且其中子序列包括源序列的第一字符位置;iv.确定定义序列在包括目标序列的词典中的所有位置的序列的处理装置;v.关联集合与序列的处理装置附图说明现在将参考相应附图,通过示例详细描述本专利技术,其中附图1是包含目标模式‘1’的、长度为4的源模式串的位置图表,其中字母集是{0,1};附图2是包含目标模式‘b’、长度为4的源模式串的图表,其中字母集是{a,b,c,d,e};附图3是包含目标模式‘b’、长度为4的源模式串的位置数图表,其中字母集是{a,b,c,d,e};附图4是如附图3的图表,其中位置数被标度;以及附图5是表示模式匹配算法的流程图。具体实施例方式将和示例结合描述本专利技术,其中数据可以是压缩的或非压缩的。假设源模式串t和目标模式串p。这些串分别具有长度Lt和Lp。并且我们需要LtLp(注意,假设满足本条件,本专利技术可以适用于任意长度的串。)我们定义源模式串在有序序列的源模式串中的位置Pt。例如,对于Lt=4,并且字母集合是{a,b,c,d,e},第一个11源模式串和他们在词汇顺序集的位置如表1所示 表格1类似的,我们定义目标模式串的位置Pp。对于Lp=1,以及相同的字母集{a,b,c,d,e},可能的目标模式串和他们在词汇顺序集合中的位置如表2所示 表格2 源模式串可以包含0,一个或多个目标模式串的匹配。附图1是为了便于描述的简单方案。在附图1中,我们开始于字母表集{0,1}以及源数据长度Lt为4。可能的源模式串是从0000到1111的所有二进制数。源模式串在数字有序集合中的位置也如附图所示。现在考虑模式匹配,目标模式为‘1’。在行1到4中,为在源模式串中的四个可能目标模式位置,表示满足模式匹配条件的源模式串的位置数。例如,在行4,目标模式‘1’占据源模式串的第一个位置。对二进制数1000到1111满足该条件,其具有从9到16的位置数。更一般的说,注意在给出的行中,在目标模式出现处的源模式串的位置数形成一个或多个连续数目的组,组间有间断。每组中元素数取决于行,并因此取决于目标模式在源模式串中的位置。在行1,每个组包括单一元素,每组间的间隙为1。在行3,每组包括4个元素,每组间的间隙为4。明显的是,行1的元素形成算术序列,其中开始元素b0等于目标模式Pp的位置,而区别是被升高到目标模式的长度(也就是,目标模式中元素数目)Lp的幂的字母表集合中的元素数目Nbm=b0+(m-1)NLp]]>等式(1)我们现在定义每组中的最高位置为组头。这样每行都有组头序列。任何行的组头序列被通过因子N(字母集中的元素数目)与邻行的组头序列相关。我们定义行1的组头序列为根组头序列。在附图2到4中,我们呈现了第二方案。我们开始于字母表集{a,b,c,d,e},以及源数据长度Lt为4。我们希望用目标模式‘b’来执行模式匹配,。然后,目标模式的位置数目Pp为2。附图2示出了包含目标模式‘b’的所有可能源模式串。虚线表示不是所有的源模式串已经显示在该区域中。附图3完全对应附图2,除了源模式串由他们的位置数表示。附图4对应于附图3,除了已添加位置数轴,以便位置数可以被大致地表示来标度。根据上面的等本文档来自技高网
...

【技术保护点】
一种通过确定可能模式序列内的源模式位置是否是和包括目标模式的可能模式序列内的一个位置相关的位置来确定目标模式是否出现在由来自字母表集合的一个或多个字符组成的源模式内的方法。

【技术特征摘要】
【国外来华专利技术】US 2003-3-13 10/386,4621.一种通过确定可能模式序列内的源模式位置是否是和包括目标模式的可能模式序列内的一个位置相关的位置来确定目标模式是否出现在由来自字母表集合的一个或多个字符组成的源模式内的方法。2.如权利要求1所述的方法,包括如下步骤i.根据字母表系统的库,通过将可能位置数序列划分为组来识别源模式的组头,其中组头是形成的每个组中的最高位置数;以及ii.确定源模式的组头值是否是和包括目标模式的可能模式序列内的目标模式位置相关的组头值。3.如权利要求2所述的方法,其中通过将可能位置数的升序序列划分为具有对应于被升高到小1的行的幂字母表的库的组尺寸的组来为每行直接或间接确定源模式的组头值,其中所述行行对应源模式内的目标模式位置。4.如权利要求3所述的方法,其中组头位置用于确定组头值对目标模式是否有效,并且其中组头位置是在该行组间的组头的组的位置。5.如权利要求2任意一种方式所示的方法,其中根据以下算法计算源模式的组头位置N=1+商((Sp-1)br-1)其中N=源模式组头位置数Sp=源模式位置数b=字母表库r=行数6.如权利要求5所述的方法,其中确定在步骤ii中是否存在匹配,以下算法的结果必须是0R=余数((N-Tp)/bT1)其中R=余数Tp=目标模式位置数T1=目标模式的长度7.如权利要求3所述的方法,其中有许多行,并且将该方法连续的应用于每一行。8.如权利要求3所述的方法,其中将该方法同时应用于超过一个源模式。9.如权利要求3所述的方法,其中搜索行的顺序取决于源模式的特性。10.如权利要求3所述的方法,其中在行中寻找目标模式的概率被估计并用于确定搜索行的顺序。11.如权利要求3所述的方法,其中在行中寻找目标模式的概率是已知的,并用于确定行的搜索顺序。12.如权利要求1所述的方法,其中源模式是算术编码数据。13.如权利要求12所述的方法,其中目标模式是算术编码数据。14.如权利要求12所述的方法,其中源模式是是使用算术编码压缩的。15.如权利要求13所述的方法,其中目标模式是使用算术编码压缩的。16.如权利要求1所述的方法,其中目标模式具有1个以上的元素。17.一种确定目标序列[X1...Xm]是否在源序列[Y1...Yq]内存在的方法,其中{X1...Xm}和{Y1...Yq}是有限有序集合{Z1...Zo}的成员,包括以下步骤i.在库o中构建源子序列值的集合,{[V1],...[V1...Vk],...[V1...Vn]},其中Vk=j∶Yk=Zj;以及ii.确定集合的任何值是否对应目标值序列{p,...p+kom,...

【专利技术属性】
技术研发人员:SKNV库马RS曼塔CS雷乌尔
申请(专利权)人:惠普开发有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1