[发明专利]基于原语状态机的关键字特征集合编译方法、装置及设备有效
申请号: | 202110716423.3 | 申请日: | 2021-06-28 |
公开(公告)号: | CN113254025B | 公开(公告)日: | 2021-09-28 |
发明(设计)人: | 刘铮铮;彭振宇;曾文静;陈银芸;莫晨宇;王瑞璇 | 申请(专利权)人: | 中南大学湘雅医院 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/903 |
代理公司: | 长沙轩荣专利代理有限公司 43235 | 代理人: | 李喆 |
地址: | 410008*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 状态机 关键字 特征 集合 编译 方法 装置 设备 | ||
本发明涉及基因测序和网络报文深度内容匹配技术领域,尤其涉及一种基于原语状态机的关键字特征集合编译方法、装置及设备。方法包括:获取待编译关键字特征集合,对待编译的关键字特征集合中的关键字按照预设的语法解析方法进行解析并编译,获得每个关键字对应的原语状态机;根据关键字对应的原语状态机根节点的深度,先合并深度相同的原语状态机,再从浅到深的原则进行聚合,获得关键字特征集合对应的原语状态机。本发明提出了一种基于原语状态机的关键字特征集合编译方法,获得了由固定处理功能操作原语构成的原语状态机,能够使用CPU进行更为复杂的字符匹配操作计算,从而提高了字符特征匹配算法的性能和匹配灵活性。
技术领域
本发明涉及基因测序和网络报文深度内容匹配技术领域,尤其涉及一种基于原语状态机的关键字特征集合编译方法、装置及设备。
背景技术
如何在输入的字符序列中快速匹配指定的关键字特征集合是否出现以及出现的位置,是计算机科学领域的一个长期难点问题,在互联网高速报文分类、互联网应用协议识别、基因组比对定位等领域有广泛用途。
现有的典型匹配算法包括AC算法、DFA和NFA算法等。其中AC算法是Alfred V. Aho和Margaret J.Corasick 发明的字符串搜索算法,用于在输入的一串字符串中匹配有限个字符串特征中的子串,存在效率低下的问题。而DFA和NFA算法通常是由正则表达式编译生成的,DFA算法不提供匹配回溯功能,NFA比DFA算法慢,但提供了匹配回溯功能。DFA和NFA算法在正则表达式数量较多时,存在着严重的状态组合爆炸问题,且匹配性能低于AC算法。同时,上述算法基本匹配过程均为:在输入字符序列中读取一个字符,根据当前算法状态机的位置和输入字符,将状态机推进到下一个位置。每次状态机位置的推进至少涉及一次或以上的内存访问操作,存在低效性问题。同时,算法性能受内存访问主频和时延的影响,很难进行性能提升。因此,设计新的字符特征匹配算法,充分利用CPU强大的计算性能,避免内存的性能约束,是提升算法匹配性能的一个重要途径。
发明内容
基于此,针对传统字符特征匹配方法存在的状态数量庞大、状态迁移次数高和Cache不友好等问题,本发明提出一种基于原语状态机的关键字特征集合编译方法,具体包括:
获取待编译关键字特征集合,对所述待编译的关键字特征集合中的关键字按照预设的语法解析方法进行解析并编译构造原语状态机,获得每个关键字对应的原语状态机;
根据所述关键字对应的原语状态机根节点的深度,先合并深度相同的原语状态机,再按照从浅到深的原则进行聚合,获得关键字特征集合对应的原语状态机。
进一步的,所述对所述待编译的关键字特征集合中的关键字按照预设的语法解析方法进行解析和编译步骤具体包括:
创建成功命中原语节点、失败原语节点作为基础原语节点,并初始化相关变量,将失败指针指向失败原语节点,当前节点指针指向空节点;
读取当前字符并将读取指针后移,根据所述当前字符和/或下一个字符的类型进行语法分析,并按照预设的编译方法对不同字符或字符组合进行编译构造原语状态机;
当读取达到关键字字符尾部,更新当前节点的成功跳转状态,将其指向成功命中原语节点,并检查确保状态机中包含字符串类原语。
进一步的,所述根据所述当前字符和/或下一个字符的类型进行语法分析,并按照预设的编译方法对不同字符或字符组合进行编译步骤具体包括:
当前字符为“.”,读取下一个字符,当下一个字符为“*”,设置浮动标志并读取指针后移,否则建立跳过字符原语节点作为当前节点或将当前跳过字符原语的跳过数量加1;
当前字符为“*”,停止编译并报错;
对其它字符,进行“字符串”原语节点的处理过程,具体包括:
当前字符为“\”,读取下一个字符,并将读取指针后移;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学湘雅医院,未经中南大学湘雅医院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110716423.3/2.html,转载请声明来源钻瓜专利网。