实现Aho-Corasick算法所用数据结构动态生成的改进方法技术

技术编号:8190998 阅读:475 留言:0更新日期:2013-01-10 01:53
一种实现Aho-Corasick算法所用数据结构动态生成的改进方法,包括增加和删除特征字符串的操作;将特征字符串拆成单个字符,在DFA该位置上增加相应节点;在新节点设置相应的数据,检查父节点的失效目标;找到节点:踢出本节点指代字符串的第一个字符,用剩下的字符串对DFA进行匹配;找到失效目标的实现归属集合,遍历其中所有节点的引用,检查有无节点应该将本节点作为其失效目标节点;节点增加到DFA头部的字符集对象集合处;依次从后往前进行对字符串的减少工作;找到该对应节点。实现了对该数据结构的动态维护,方便实现了在较短的时间内对大量不断变动的字符串进行多模式匹配检索。

【技术实现步骤摘要】

本专利技术属于计算机理论领域,用于为多模式字符串匹配的Aho-Corasick算法提供可动态加减的Aho-Corasick-tree数据结构。
技术介绍
随着信息技术的飞速发展,尤其在大数据处理的问题上,如何实现关键字段的快速检索是一个越来越突出的问题。尤其在WEB2. O时代,实时性的对大量数据进行遍历或搜索是ー个常态化的操作。在如此大量数据量处理上,往往同时需要检索很多不同字符串,进行多模式匹配操作,这就需要用到Aho-Corasick算法。但此算法存在一个问题,作为ー个自动机算法,它依靠的是来源于众多特征字符串而预先生成的树形数据结构,一旦在运行过程中需要增添或者删减特征串时,需要中断运行,删除以前的数据结构,重新生成新的数据结构。如果新的串集合较大,这样的步骤就需要相当的时间进行处理了。在此期间,数据的处理就无法及时反映出来,因此需要ー种算法,即能保证实现多模式匹配,又能在有限时间内完成数据的重组操作。
技术实现思路
本专利技术的目的在于针对上述算法的不足,,通过提供衣一种,实现对该数据结构的动态维护,方便实现对大量不断变动的字符串进行多模式匹配检索。本专利技术是采用以下技术手本文档来自技高网...

【技术保护点】
一种实现Aho?Corasick算法所用数据结构动态生成的改进方法,包括增加和删除特征字符串的操作;其特征在于:所述的增加特征字符串包括以下步骤:步骤1:将特征字符串拆成单个字符,经由DFA树进行单个匹配,当DFA中不存在相应字符时,在DFA该位置上增加相应节点;步骤2:在新节点设置相应的数据,检查父节点的失效目标,是否有对应于本节点指代字符的儿子节点。如有,设为本节点的失效目标,执行步骤5;如无,执行步骤3;步骤3:重复步骤4,如找到节点,停止;如没有,再踢出一个字符串的头字符,重复步骤4;如直到剩最后一个字符,都没有完成匹配,那么,执行步骤6;步骤4:踢出本节点指代字符串的第一个字符,用剩...

【技术特征摘要】

【专利技术属性】
技术研发人员:张正欣张建
申请(专利权)人:北京工业大学
类型:发明
国别省市:

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

1