海量特征串集合的匹配方法及系统技术方案

技术编号:9618342 阅读:141 留言:0更新日期:2014-01-30 06:10
本发明专利技术提供了一种海量特征串集合的匹配方法及系统,其中的方法包括预处理阶段和特征串匹配阶段,其中,在预处理阶段通过对特征串进行统计并分组,建立位向量掩码表,使过滤算法在同等空间和规则数量下的通过率更低,进而能够容纳更多的特征串;在特征串匹配阶段,采用位并行方式进行后缀和前缀匹配,支持不等长特征串的匹配并且在匹配数据中能够以跳跃的方式大范围快速查找特征串;通过区分普通匹配窗口和长匹配窗口,来保证跳跃的安全和减少过滤通过率。通过本发明专利技术能够使匹配过程在相同资源条件下,能够容纳数量更多的特征串,并且具有性能稳定的特点,能够在极端情况下保持模式匹配的高效率。

Method and system for matching massive feature string sets

The invention provides a mass character string matching method and system set, wherein the method includes preprocessing and feature matching stage, which, according to the character string statistics are grouped in the preprocessing stage, the establishment of a vector mask table, the filtering algorithm in the same amount of space and under the rules by lower rate then, can accommodate more features in the feature string; string matching stage, using parallel manner suffix and prefix matching, support unequal characteristic string matching and matching data to jump a wide range of ways to quickly search feature string; by distinguishing the general matching window and long matching window, to ensure the jump safety and reduce the filtration rate by. By the invention, the matching process can accommodate a larger number of feature strings under the same resource conditions and is stable in performance and can maintain the high efficiency of pattern matching in extreme cases.

【技术实现步骤摘要】
海量特征串集合的匹配方法及系统
本专利技术涉及信息识别
,更为具体地,涉及一种海量特征串集合的匹配方法及系统。
技术介绍
模式匹配是信息识别中的重要核心技术之一,用于从目标串中发现特征串。随着信息技术的高速发展,模式匹配被越来越广泛地应用于网络信息搜索、数据流挖掘、网络入侵检测以及计算生物学等领域。 模式匹配是指在文本T=I^t2...1^中找出某个给定的特征串集合P= {p1;p2,...,pr}的所有出现位置,其中T和Pi(KiSr)是在有限字符表Σ上的字符序列。随着网络和生物学的发展,在匹配更多的特征串条目的同时,需要保持有较高的处理速度,这就对多模式匹配的处理能力提出了更高的要求。然而在很多现有的多模式匹配算法中,当特征串规模超过I万时,由于其处理能力的下降,已经无法满足需求,因而基于位并行与q-gram技术的多模式匹配方法应运而生。此种方法在数量10万以下规模的特征串匹配过程中能够取得较好的效果。基于位并行技术的多模式匹配算法,例如Shift-And/Or算法、BNDM算法,其基本思想是:将特征串集合与文本串的匹配状态用位向量存储,匹配过程就是用位操作更新位向量的过程。由于Shift-And和Shift-Or算法的原理基本相同,以下着重介绍Shift-And算法和BNDM算法的原理。(I)Shift-And算法维护一个字符串的集合,集合中的每个字符串既是特征串p的前缀,同时也是已读入文本的后缀。每读入一个新的文本字符,该算法采用位并行的方法更新该集合。该集合用一个位掩码D=dm...(I1来表示。D的第j位被置为I,当且仅当P1...P」是tp..tj的后缀。Shift-And算法首先构造一个表B,记录字母表中每个字符的位掩码bm...t^。如果Pfc,掩码B[c]的第j位被置为1,否则为O。首先置D=0m,对于每个新读入的文本字符ti+1,用如下公式对D进行更新:Di+1 一 ((Di?l) 0m+1l)&B[ti+1]上面Oni表示有连续m个O,例如,用O3I来表示0001。在匹配时,逐个扫描文本字符并更新向量D,测试是否匹配成功的掩码为IOm'即当幸Om时,在文本位置i处匹配成功。(2)BNDM (Backward Nondeterministic Dawg Matching,向后非确定性匹配)算法的搜索与BDM算法相同,但它使用位并行来识别特征串。在当前搜索窗口内,设已读入的字符串为u, BNDM算法维护一个集合,记录u在P中所有出现位置。同Shift-And算法一样,该集合可以用一个位向量D来表示。如果特征串P1...Pj+iu1-1等于u,那么D的第m-j+1位是I,表示P的位置j是一个活动状态。同Shift-And算法一样,BNDM算法预先计算一张表B,表B用一个位掩码记录了该字符在P中出现的位置。对于每个新读入的文本字符ti,利用如下公式,可以从D更新到0’,其中,0’ 一 Φ〈〈1)&Β[\],初始化D=lm,且需要用额外变量last保存特征串前缀的最左位置。为了能容纳更大的规则数,使用q-gram技术以扩大表的规模。该技术将q个字符转化为一个字符来处理。其中,将q个字符转化为一个q-gram字符有两种方式,即重叠q-gram和连续q-gram。当使用重叠q-gram时,依次从原字符串的每一个字符开始取q个字符进行转化,使用连续q-gram时,依次从原字符串的每q个字符开始去q个字符进行转化。例如,在转化字符串“pony”时,使用重叠q-gram转化为“po-on_ny”,而使用连续q-gram转化为“po-ny”。本文中使用q-gram技术时,使用的都是重叠q-gram。为了实现快速的匹配,采用SOG算法或者BG算法来保证多模式匹配的执行效率。SOG算法是使用q-gram将Shift-Or算法扩展成基于过滤技术的多模式匹配算法。该算法是以牺牲精确匹配为前提,将“确认能匹配”改成“确认不能匹配”,以一次相对快速的匹配过程,过滤掉大量不能成功匹配的数据,以保证算法的执行效率。对于少量过滤通过的情况,配合其他算法,再针对数据中的特定的位置进行精确匹配的校验。对于大多数匹配过程,最终不会产生命中,如果也没有误报产生,那么过滤算法的性能就等同于整个模式匹配过程的性能。具体的方法是,首先在算法的预处理阶段,以每个特征串为基础,构建Shift-Or算法的掩码表B,然后将多个掩码表B,以每个字符位掩码为单位进行或运算,进而合并成为一张掩码表,后续的匹配过程不变。不同在于,当D[i]MOnri Φ Om时,在文本位置i处不再表示匹配成功,而是有可能会发生匹配,需要使用其他能够逐个字符比较的方法进行再次确认。SOG算法需要将多个位向量进行或运算,位向量的位长就必须都是相等的,所以要求所有的特征串都是等长的。如果出现不等长的情况,就以最短串的长度为基准,将所有长串提取等长子串,让子串参与匹配。如果提取的等长子串长度Imin小于机器字长,lmin*r仍然不超过一个机器字长,还可以将一个机器字长划分成r个等长分组,将r个位向量包装进一个机器字内,从而节省空间。ShiftAnd/Or类的无跳跃的算法,还可支持不等长分组,使长字符串可以保留更长的子串。作为实现快速模式匹配的另一种算法,BG是使用q-gram将BNDM算法扩展成为基于过滤技术的多模匹配算法,其扩展方法同Shift-And/Or算法类似。这里不再详述。多模式匹配过滤类算法主要被应用于一次完整模式匹配的前端过滤,评价一个过滤算法的性能,主要体现在两个方面:过滤效率和过滤通过率。过滤效率,表示纯粹过滤过程的处理速度。过滤效率比较容易评价:匹配同等的数据量,执行时间越短,效率越高。过滤通过率也可以理解为“误报率”,每一次误报,还需要进行一次额外的精确匹配的确认过程,所以过滤通过率会影响整体匹配效率。一般来说同等特征串数目,通过率越低越好。虽然SOG、BG算法与传统的多模匹配相比,在支持较大规模特征串的情况下,具有较好的处理速度。从实测数据看来,SOG算法与BG算法在特征串规模达到10000时,仍然保持了较好的处理速度,在这种规模下,传统的多模式匹配算法已经不再适用。然而,SOG算法与BG算法还存在一些不足,导致在特征串规模更大的情况下,其处理速度仍不能满足要求。其中,SOG算法与BG算法主要存在以下不足:I)在利用q-gram技术时,q取2或3,对应SOG与BG算法的字母表取216或224,当字母表取216时,有较高的冲突概率,在一定的通过率下,算法能容纳的规则数相对较少,当字母表取224时,算法能容纳的规则数很大,但是掩码表所占用的空间也很大,无法充分利用处理器的cache,算法访存需消耗大量时间,降低了算法的性能。2)S0G与BG算法在构造掩码表时,都没有对特征串进行分组。因此只能对所有特征串都截取等长的前缀。当将较长字符串截取为较短的前缀时,会丢失大量特征信息,也会造成掩码表空间浪费,直接导致过滤算法的过滤效果变差。虽然S0G、BG算法也可以进行分组,但其只是简单的将特征串分为2组或4组,并没有提出有效的自动分组的算法,因此,分组带来的效果并不理想。而BG算法,从算法的基本原理看,不能进行不本文档来自技高网...

【技术保护点】
一种海量特征串集合的匹配方法,包括预处理阶段和特征串匹配阶段,其中,所述预处理阶段包括:确定位向量掩码表的空间容量;根据对输入的特征串集合所包含的算法字符个数及特征串的数量的统计,对所述特征串进行分组,建立分组位向量掩码表;根据所述算法字符的位长确定散列函数;所述特征串匹配阶段包括:根据输入的特征串所包含的算法字符的个数确定普通匹配窗口长度和长匹配窗口长度,并为当前待匹配数据设置一个偏移值作为起始偏移值,其中,通过机器字符与所述散列函数的转换获得所述算法字符;根据所述起始偏移值为起点对当前待匹配数据进行偏移并定位,获取当前普通匹配窗口的数据;从所述当前普通匹配窗口的末端获取一个算法字符,用直接寻址的方式从所述位向量掩码表中获取位向量;其中,如果所述位向量中的所有有效位不全为0,则以所述位向量为初始向量,以当前读入的算法字符作为新的长匹配窗口的起点,在所述新的长匹配窗口的长度范围内,采用位并行方式对所述位向量进行即时更新,并对即时更新的位向量进行非零判断;其中,在所述位向量进行更新的过程中,如果所述位向量的有效位全为0,将当前读入的算法字符的位置作为新的起始偏移值,并结束更新;如果所述位向量的有效位不全为0且所述位向量的某一个分组的最高位为1,则匹配当前分组特征串的后缀,保留初始向量中相应的有效位;其中,在所述特征串的分组为不等长分组时,如果已经匹配后缀的特征串所属分组的长度小于等于后缀命中时在长匹配窗口中读入的算法字符的个数,则直接记录一次命中的可能,可能会发生命中的特征串的末尾即是当前读入的算法字符;当所述位向量的更新过程结束时,如果所述特征串发生过后缀匹配,则 仅保留初始向量中所有发生过后缀命中的活动位,其余全部清0,作为所述特征串前缀匹配的初始向量,在当前的起始偏移值所指向的普通匹配窗口中进行所述特征串匹配命中的确认;如果在匹配所述特征串的后缀过程中,所述偏移值没有改变,则对所述偏移值进行重新定位,获取新的起始偏移值,并在所述偏移值重新定位的过程中,以位并行的方式同步进行特征串匹配。...

【技术特征摘要】
1.一种海量特征串集合的匹配方法,包括预处理阶段和特征串匹配阶段,其中,所述预处理阶段包括: 确定位向量掩码表的空间容量; 根据对输入的特征串集合所包含的算法字符个数及特征串的数量的统计,对所述特征串进行分组,建立分组位向量掩码表; 根据所述算法字符的位长确定散列函数; 所述特征串匹配阶段包括: 根据输入的特征串所包含的算法字符的个数确定普通匹配窗口长度和长匹配窗口长度,并为当前待匹配数据设置一个偏移值作为起始偏移值,其中,通过机器字符与所述散列函数的转换获得所述算法字符; 根据所述起始偏移值为起点对当前待匹配数据进行偏移并定位,获取当前普通匹配窗口的数据; 从所述当前普通匹配窗口的末端获取一个算法字符,用直接寻址的方式从所述位向量掩码表中获取位向量;其中, 如果所述位向量中的所有有效位不全为O,则以所述位向量为初始向量,以当前读入的算法字符作为新的长匹配窗口的起点,在所述新的长匹配窗口的长度范围内,采用位并行方式对所述位向量进行即时更新,并对即时更新的位向量进行非零判断;其中,在所述位向量进行更新的过程中, 如果所述位向量的有效位全为O,将当前读入的算法字符的位置作为新的起始偏移值,并结束更新; 如果所述位向量的有效位不全为O且所述位向量的某一个分组的最高位为1,则匹配当iu分组特征串的后缀,保留初始向量中相应的有效位;其中, 在所述特征串的分组为不等长分组时,如果已经匹配后缀的特征串所属分组的长度小于等于后缀命中时在长匹配窗口中读入的算法字符的个数,则直接记录一次命中的可能,可能会发生命中的特征串的末尾即是当前读入的算法字符; 当所述位向量的更新过程结束时,如果所述特征串发生过后缀匹配,则仅保留初始向量中所有发生过后缀命中的活动位,其余全部清O,作为所述特征串前缀匹配的初始向量,在当前的起始偏移值所指向的普通匹配窗口中进行所述特征串匹配命中的确认; 如果在匹配所述特征串的后缀过程中,所述偏移值没有改变,则对所述偏移值进行重新定位,获取新的起始偏移值,并在所述偏移值重新定位的过程中,以位并行的方式同步进行特征串匹配。2.如权利要求1所述的海量特征串集合的匹配方法,其中,在对所述特征串进行分组的过程中, 根据所述特征串的分组数、每组位长、每组所容纳的特征串的数量以及所述位向量掩码表的参数,获取每组的过滤通过率; 通过每组的过滤通过率获得每组分组方式的过滤通过率,将所有分组方式中过滤通过率最低的分组方式作为最终的分组方式对所述特征串进行分组。3.如权利要求2所述的海量特征串集合的匹配方法,其中,通过下述等式获取每组分组方式的过滤通过率: 4.如权利要求1所述的海量特征串集合的匹配方法...

【专利技术属性】
技术研发人员:侯智瀚尹延伟
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:

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

1