[发明专利]实现Aho-Corasick算法所用数据结构动态生成的改进方法有效
申请号: | 201210312478.9 | 申请日: | 2012-08-29 |
公开(公告)号: | CN102867036A | 公开(公告)日: | 2013-01-09 |
发明(设计)人: | 张正欣;张建 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 张慧 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种实现Aho-Corasick算法所用数据结构动态生成的改进方法,包括增加和删除特征字符串的操作;将特征字符串拆成单个字符,在DFA该位置上增加相应节点;在新节点设置相应的数据,检查父节点的失效目标;找到节点:踢出本节点指代字符串的第一个字符,用剩下的字符串对DFA进行匹配;找到失效目标的实现归属集合,遍历其中所有节点的引用,检查有无节点应该将本节点作为其失效目标节点;节点增加到DFA头部的字符集对象集合处;依次从后往前进行对字符串的减少工作;找到该对应节点。实现了对该数据结构的动态维护,方便实现了在较短的时间内对大量不断变动的字符串进行多模式匹配检索。 | ||
搜索关键词: | 实现 aho corasick 算法 所用 数据结构 动态 生成 改进 方法 | ||
【主权项】:
一种实现Aho‑Corasick算法所用数据结构动态生成的改进方法,包括增加和删除特征字符串的操作;其特征在于:所述的增加特征字符串包括以下步骤:步骤1:将特征字符串拆成单个字符,经由DFA树进行单个匹配,当DFA中不存在相应字符时,在DFA该位置上增加相应节点;步骤2:在新节点设置相应的数据,检查父节点的失效目标,是否有对应于本节点指代字符的儿子节点。如有,设为本节点的失效目标,执行步骤5;如无,执行步骤3;步骤3:重复步骤4,如找到节点,停止;如没有,再踢出一个字符串的头字符,重复步骤4;如直到剩最后一个字符,都没有完成匹配,那么,执行步骤6;步骤4:踢出本节点指代字符串的第一个字符,用剩下的字符串对DFA进行匹配,如找到符合的节点,将该节点作为失效目标,执行步骤5,返回步骤3;如没找到,也返回步骤3;步骤5:找到失效目标的实现归属集合,遍历其中所有节点的引用,检查有无节点应该将本节点作为其失效目标节点,如有,设置;步骤6:节点增加到DFA头部的字符集对象集合处,如有该节点指代字符的字符集对象,添加该节点指针到对应字符集对象中,并遍历其中节点对象的引用,是否有对象应该讲本节点作为失效目标进行设置,如有,设置;所述的减少特征字符串包括以下步骤:步骤7:依次从后往前进行对字符串的减少工作,单个字符进行操作,重复执行步骤8,直到步骤8没有返回为止;步骤8:找到该对应节点,如本节点没有儿子节点,删除本节点,并返回步骤7。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210312478.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种鞋带扣
- 下一篇:非对称发夹探针及其应用