[发明专利]基于有限状态自动机的字符串匹配方法及内容过滤设备无效
申请号: | 200910226279.4 | 申请日: | 2009-11-27 |
公开(公告)号: | CN101876986A | 公开(公告)日: | 2010-11-03 |
发明(设计)人: | 黄凯明 | 申请(专利权)人: | 福建星网锐捷网络有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 有限 状态 自动机 字符串 匹配 方法 内容 过滤 设备 | ||
技术领域
本发明涉及检索技术领域,尤指一种基于有限状态自动机(DeterministicFinite State Automaton,DFA)的字符串匹配方法及内容过滤设备。
背景技术
Aho-Corasick算法于1975年由贝尔实验室的Aho和Corasick在《EfficientString Matching:An Aid to Bibliographic Search》中提出,其核心是一个涵盖所有查询关键字的有限状态自动机(Deterministic Finite State Automaton,DFA)。待搜索的数据库中的每个字符逐个输入到DFA中,当某个查询关键字命中,DFA输出报告。可用于字符串匹配、文本检索、网络数据流深度内容过滤、入侵检测、网络防毒等领域中。
通过Aho-Corasick算法得到DFA的过程中,需要构造三个函数:GOTO,FAILURE和OUTPUT。构造这三个函数的流程包括:
1.1构造GOTO函数。
该过程需要输入的是:要查询的关键字集合。例如:输入的关键字集合是K={y1,y2,...,yk}。
输出的是:GOTO函数和部分完成的OUTPUT函数。
1.2构造FAILURE函数。
该过程需要输入的是:上述过程1.1中得到的GOTO函数及部分完成的OUTPUT函数。
输出的是:FAILURE函数和完成的OUTPUT函数。
1.3构造OUTPUT函数。
该过程将GOTO函数和FAILURE函数进一步合并,得到DFA。
所以该过程输入的是:上述过程1.1中得到的GOTO函数及过程1.2中得到的FAILURE函数。
输出的是:构造完成的DFA。
假设需要在一个字符串数据库中搜索4个关键字,分别是:HE,SHE,HIS和HERZWXY。则在流程1.1中输入K={HE,SHE,HIS,HERZWXY},经过步骤1.1、1.2、1.3的构建过程,得到包含输入前状态(即当前状态)、输入字符与对应输出的输出状态的对应关系的DFA,如表1所示。
表1
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷网络有限公司,未经福建星网锐捷网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910226279.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种地基数字云图的纹理特征抽取和检索方法
- 下一篇:一种网站导航系统及方法