[发明专利]海量特征串集合的匹配方法及系统有效

专利信息
申请号: 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保存特征串前缀的最左位置。 

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310363274.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top