[发明专利]海量特征串集合的匹配方法及系统有效
申请号: | 201310363274.2 | 申请日: | 2013-08-16 |
公开(公告)号: | CN103544208A | 公开(公告)日: | 2014-01-29 |
发明(设计)人: | 侯智瀚;尹延伟 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京鸿元知识产权代理有限公司 11327 | 代理人: | 陈英俊 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 海量 特征 集合 匹配 方法 系统 | ||
技术领域
本发明涉及信息识别技术领域,更为具体地,涉及一种海量特征串集合的匹配方法及系统。
背景技术
模式匹配是信息识别中的重要核心技术之一,用于从目标串中发现特征串。随着信息技术的高速发展,模式匹配被越来越广泛地应用于网络信息搜索、数据流挖掘、网络入侵检测以及计算生物学等领域。
模式匹配是指在文本T=t1t2...tn中找出某个给定的特征串集合P={p1,p2,...,pr}的所有出现位置,其中T和pi(1≤i≤r)是在有限字符表∑上的字符序列。随着网络和生物学的发展,在匹配更多的特征串条目的同时,需要保持有较高的处理速度,这就对多模式匹配的处理能力提出了更高的要求。然而在很多现有的多模式匹配算法中,当特征串规模超过1万时,由于其处理能力的下降,已经无法满足需求,因而基于位并行与q-gram技术的多模式匹配方法应运而生。此种方法在数量10万以下规模的特征串匹配过程中能够取得较好的效果。
基于位并行技术的多模式匹配算法,例如Shift-And/Or算法、BNDM算法,其基本思想是:将特征串集合与文本串的匹配状态用位向量存储,匹配过程就是用位操作更新位向量的过程。由于Shift-And和Shift-Or算法的原理基本相同,以下着重介绍Shift-And算法和BNDM算法的原理。
(1)Shift-And算法维护一个字符串的集合,集合中的每个字符串既是特征串p的前缀,同时也是已读入文本的后缀。每读入一个新的文本字符,该算法采用位并行的方法更新该集合。该集合用一个位掩码D=dm...d1来表示。D的第j位被置为1,当且仅当p1...pj是t1...ti的后缀。
Shift-And算法首先构造一个表B,记录字母表中每个字符的位掩码bm...b1。如果pj=c,掩码B[c]的第j位被置为1,否则为0。首先置D=0m,对 于每个新读入的文本字符ti+1,用如下公式对D进行更新:
Di+1←((Di<<1)|0m+11)&B[ti+1]
上面0m表示有连续m个0,例如,用031来表示0001。在匹配时,逐个扫描文本字符并更新向量D,测试是否匹配成功的掩码为10m-1。即当Di&10m-1≠0m时,在文本位置i处匹配成功。
(2)BNDM(Backward Nondeterministic Dawg Matching,向后非确定性匹配)算法的搜索与BDM算法相同,但它使用位并行来识别特征串。在当前搜索窗口内,设已读入的字符串为u,BNDM算法维护一个集合,记录u在p中所有出现位置。同Shift-And算法一样,该集合可以用一个位向量D来表示。如果特征串p1...pj+|u|-1等于u,那么D的第m-j+1位是1,表示p的位置j是一个活动状态。
同Shift-And算法一样,BNDM算法预先计算一张表B,表B用一个位掩码记录了该字符在p中出现的位置。对于每个新读入的文本字符ti,利用如下公式,可以从D更新到D',其中,D'←(D<<1)&B[ti],初始化D=1m,且需要用额外变量last保存特征串前缀的最左位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310363274.2/2.html,转载请声明来源钻瓜专利网。