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 ...
【技术保护点】
一种海量特征串集合的匹配方法,包括预处理阶段和特征串匹配阶段,其中,所述预处理阶段包括:确定位向量掩码表的空间容量;根据对输入的特征串集合所包含的算法字符个数及特征串的数量的统计,对所述特征串进行分组,建立分组位向量掩码表;根据所述算法字符的位长确定散列函数;所述特征串匹配阶段包括:根据输入的特征串所包含的算法字符的个数确定普通匹配窗口长度和长匹配窗口长度,并为当前待匹配数据设置一个偏移值作为起始偏移值,其中,通过机器字符与所述散列函数的转换获得所述算法字符;根据所述起始偏移值为起点对当前待匹配数据进行偏移并定位,获取当前普通匹配窗口的数据;从所述当前普通匹配窗口的末端获取一个算法字符,用直接寻址的方式从所述位向量掩码表中获取位向量;其中,如果所述位向量中的所有有效位不全为0,则以所述位向量为初始向量,以当前读入的算法字符作为新的长匹配窗口的起点,在所述新的长匹配窗口的长度范围内,采用位并行方式对所述位向量进行即时更新,并对即时更新的位向量进行非零判断;其中,在所述位向量进行更新的过程中,如果所述位向量的有效位全为0,将当前读入的算法字符的位置作为新的起始偏移值,并结束更新;如果所述位 ...
【技术特征摘要】
1.一种海量特征串集合的匹配方法,包括预处理阶段和特征串匹配阶段,其中,所述预处理阶段包括: 确定位向量掩码表的空间容量; 根据对输入的特征串集合所包含的算法字符个数及特征串的数量的统计,对所述特征串进行分组,建立分组位向量掩码表; 根据所述算法字符的位长确定散列函数; 所述特征串匹配阶段包括: 根据输入的特征串所包含的算法字符的个数确定普通匹配窗口长度和长匹配窗口长度,并为当前待匹配数据设置一个偏移值作为起始偏移值,其中,通过机器字符与所述散列函数的转换获得所述算法字符; 根据所述起始偏移值为起点对当前待匹配数据进行偏移并定位,获取当前普通匹配窗口的数据; 从所述当前普通匹配窗口的末端获取一个算法字符,用直接寻址的方式从所述位向量掩码表中获取位向量;其中, 如果所述位向量中的所有有效位不全为O,则以所述位向量为初始向量,以当前读入的算法字符作为新的长匹配窗口的起点,在所述新的长匹配窗口的长度范围内,采用位并行方式对所述位向量进行即时更新,并对即时更新的位向量进行非零判断;其中,在所述位向量进行更新的过程中, 如果所述位向量的有效位全为O,将当前读入的算法字符的位置作为新的起始偏移值,并结束更新; 如果所述位向量的有效位不全为O且所述位向量的某一个分组的最高位为1,则匹配当iu分组特征串的后缀,保留初始向量中相应的有效位;其中, 在所述特征串的分组为不等长分组时,如果已经匹配后缀的特征串所属分组的长度小于等于后缀命中时在长匹配窗口中读入的算法字符的个数,则直接记录一次命中的可能,可能会发生命中的特征串的末尾即是当前读入的算法字符; 当所述位向量的更新过程结束时,如果所述特征串发生过后缀匹配,则仅保留初始向量中所有发生过后缀命中的活动位,其余全部清O,作为所述特征串前缀匹配的初始向量,在当前的起始偏移值所指向的普通匹配窗口中进行所述特征串匹配命中的确认; 如果在匹配所述特征串的后缀过程中,所述偏移值没有改变,则对所述偏移值进行重新定位,获取新的起始偏移值,并在所述偏移值重新定位的过程中,以位并行的方式同步进行特征串匹配。2.如权利要求1所述的海量特征串集合的匹配方法,其中,在对所述特征串进行分组的过程中, 根据所述特征串的分组数、每组位长、每组所容纳的特征串的数量以及所述位向量掩码表的参数,获取每组的过滤通过率; 通过每组的过滤通过率获得每组分组方式的过滤通过率,将所有分组方式中过滤通过率最低的分组方式作为最终的分组方式对所述特征串进行分组。3.如权利要求2所述的海量特征串集合的匹配方法,其中,通过下述等式获取每组分组方式的过滤通过率: 4.如权利要求1所述的海量特征串集合的匹配方法...
【专利技术属性】
技术研发人员:侯智瀚,尹延伟,
申请(专利权)人:东软集团股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。