[发明专利]一种基于有限状态自动机的字符串匹配方法及装置有效
申请号: | 200910167292.7 | 申请日: | 2009-09-02 |
公开(公告)号: | CN101639861A | 公开(公告)日: | 2010-02-03 |
发明(设计)人: | 黄凯明 | 申请(专利权)人: | 福建星网锐捷网络有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同达信恒知识产权代理有限公司 | 代理人: | 郭润湘 |
地址: | 350015福建省福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 有限 状态 自动机 字符串 匹配 方法 装置 | ||
1.一种用于内容过滤设备的基于有限状态自动机的字符串匹配方法,其 特征在于,包括:
确定用户输入的关键字在设定的关键字组中时,调用所述关键字组对应的 有限状态自动机DFA程序代码,所述DFA程序代码为根据程序代码的允许大 小,选取所述DFA中包含的与初始状态具有衍生关系的部分状态,生成的仅 包含已选取的部分状态作为当前状态时,输入字符后所对应的输出状态的程序 代码,其中所选取的部分状态的出现频率之和大于设定的阈值;
执行所述程序代码,依次输入待搜索数据库中包含的字符,并根据当前状 态和输入字符,确定输出状态;所述输出状态即为下次输入字符时的当前状态;
根据所述输出状态输出字符匹配结果。
2.如权利要求1所述的方法,其特征在于,所述程序代码仅包含已选取 的部分状态作为当前状态,输入字符后所对应的输出状态时;其余未被选取的 状态作为当前状态时,输入字符后所对应的输出状态仍从系统主内存中获取。
3.如权利要求1所述的方法,其特征在于,所述根据所述输出状态输出 字符匹配结果,具体包括:
根据采用Aho-Corasick算法得到的各输出状态所对应的字符匹配结果的 对应关系,查询所述输出状态所对应的字符匹配结果;
当确定所述字符匹配结果为某个关键字命中时,输出字符匹配结果;否则 无输出。
4.如权利要求1-3任一所述的方法,其特征在于,所述设定的关键字组 根据设定时间段内的关键字使用情况的统计结果定期更新;
相应的,根据更新后的关键字组,生成对应的DFA程序代码。
5.一种用于内容过滤设备的基于有限状态自动机的字符串匹配装置,其 特征在于,包括:
生成模块,用于根据程序代码的允许大小,选取有限状态自动机DFA中 包含的与初始状态具有衍生关系的部分状态,生成仅包含已选取的部分状态作 为当前状态时,输入字符后所对应的输出状态的程序代码,其中所选取的部分 状态的出现频率之和大于设定的阈值;
调用模块,用于确定用户输入的关键字在所述关键字组中,调用所述生成 模块生成的与所述关键字组对应的DFA程序代码;
执行模块,用于执行所述程序代码,依次输入待搜索数据库中包含的字符,并根据 当前状态和输入字符,确定输出状态;所述输出状态即为下次输入字符时的当前状态;
输出模块,用于根据所述输出状态输出字符匹配结果。
6.如权利要求5所述的装置,其特征在于,所述执行模块,还用于:
当所述生成模块所生成的程序代码中仅包含已选取的部分状态作为当前 状态,输入字符后所对应的输出状态时,从系统主内存中获取未被选取的状态 作为当前状态时,输入字符后所对应的输出状态。
7.如权利要求5所述的装置,其特征在于,所述输出模块,具体包括:
查询单元,用于根据采用Aho-Corasick算法得到的各输出状态所对应的字 符匹配结果的对应关系,查询所述输出状态所对应的字符匹配结果;
输出单元,用于当确定所述字符匹配结果为某个关键字命中时,输出字符 匹配结果;否则无输出。
8.如权利要求5-7任一所述的装置,其特征在于,还包括:
更新模块,用于根据设定时间段内的关键字使用情况的统计结果定期更新 所述设定的关键字组;
相应的,所述生成模块,还用于根据更新后的关键字组,生成对应的DFA 程序代码。
9.一种内容过滤设备,其特征在于,在该内容过滤设备中设置如权利要 求5-8任一所述的基于有限状态自动机的字符串匹配装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷网络有限公司,未经福建星网锐捷网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910167292.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用实物补偿法控制阻尼的悬臂梁压电结构
- 下一篇:一种牵引型药枕