【技术实现步骤摘要】
本专利技术涉及检索
,尤指一种基于有限状态自动机(Deterministic Finite State Automaton, DFA)的字符串匹配方法及装置。
技术介绍
Aho-Corasick算法于1975年由贝尔实验室的Aho和Corasick在《Efficient String Matching: An Aid to Bibliographic Search》中提出,其核心是一个涵盖所 有查询关4建字的有卩艮4犬态自动才几(Deterministic Finite State Automaton, DFA )。 待搜索的数据库中的每个字符逐个输入到DFA中,当某个查询关键字命中, DFA输出报告。通过Aho-Corasick算法得到DFA的过程中,需要构造三个函数GOTO, FAILURE和OUTPUT。构造这三个函数的流程包括 1.1构造GOTO函数。该过程需要输入的是要查询的关键字集合。例如输入的关键字集合是 K={yl, y2,, yk}。输出的是GOTO函数和部分完成的OUTPUT函数。 1.2构造FAILURE函数该过程需要输入的是上述过程 ...
【技术保护点】
一种基于有限状态自动机的字符串匹配方法,其特征在于,包括: 确定用户输入的关键字在设定的关键字组中时,调用所述关键字组对应的有限状态自动机DFA程序代码;所述程序代码为根据采用Aho-Corasick算法针对所述关键字组确定的当前状态 、输入字符和输出状态的对应关系预先生成的; 执行所述程序代码,依次输入待搜索数据库中包含的字符,并根据当前状态和输入字符,确定输出状态;所述输出状态即为下次输入字符时的当前状态; 根据所述输出状态输出字符匹配结果。
【技术特征摘要】
1、一种基于有限状态自动机的字符串匹配方法,其特征在于,包括确定用户输入的关键字在设定的关键字组中时,调用所述关键字组对应的有限状态自动机DFA程序代码;所述程序代码为根据采用Aho-Corasick算法针对所述关键字组确定的当前状态、输入字符和输出状态的对应关系预先生成的;执行所述程序代码,依次输入待搜索数据库中包含的字符,并根据当前状态和输入字符,确定输出状态;所述输出状态即为下次输入字符时的当前状态;根据所述输出状态输出字符匹配结果。2、 如权利要求1所述的方法,其特征在于,还包括根据程序代码的允 许大小,选取所述DFA中包含的与初始状态具有衍生关系的部分状态,所选 取的部分状态的出现频率之和大于设定的阈值;生成仅包含以选取的部分状态作为当前状态时,输入字符后所对应的输出 状态的程序代码。3、 如权利要求2所述的方法,其特征在于,所述程序代码仅包含以选取 的部分状态作为当前状态,输入字符后所对应的输出状态时;其余未被选取的 状态作为当前状态时,输入字符后所对应的输出状态仍从系统主内存中获取。4、 如权利要求1所述的方法,其特征在于,所述根据所述输出状态输出 字符匹配结果,具体包括根据采用Aho-Corasick算法得到的各输出状态所对应的字符匹配结果的 对应关系,查询所述^T出状态所对应的字符匹配结果;当确定所述字符匹配结果为某个关键字命中时,输出字符匹配结果;否则 无输出。5、 如权利要求1-4任一所述的方法,其特征在于,所述设定的关4建字组 根据设定时间段内的关键字使用情况的统计结果定期更新;相应的,根据更新后的关键字组,生成对应的DFA程序代码。6、 一种基于有限状态自动机的字符串匹配装置,其特征在于,包括 生成才莫块,用于采用Aho-Corasick算法针对选定的关4定字组确定当前状态、输入字符和输出状态的对应关系,...
【专利技术属性】
技术研发人员:黄凯明,
申请(专利权)人:福建星网锐捷网络有限公司,
类型:发明
国别省市:35[中国|福建]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。