[发明专利]基于原语状态机的关键字特征集合编译方法、装置及设备有效
申请号: | 202110716423.3 | 申请日: | 2021-06-28 |
公开(公告)号: | CN113254025B | 公开(公告)日: | 2021-09-28 |
发明(设计)人: | 刘铮铮;彭振宇;曾文静;陈银芸;莫晨宇;王瑞璇 | 申请(专利权)人: | 中南大学湘雅医院 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/903 |
代理公司: | 长沙轩荣专利代理有限公司 43235 | 代理人: | 李喆 |
地址: | 410008*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 状态机 关键字 特征 集合 编译 方法 装置 设备 | ||
1.一种面向原语状态机的关键字特征集合编译方法,其特征在于,具体包括:
获取待编译关键字特征集合,对所述待编译的关键字特征集合中的关键字按照预设的语法解析方法进行解析并编译构造原语状态机,获得每个关键字对应的原语状态机;
所述对所述待编译的关键字特征集合中的关键字按照预设的语法解析方法进行解析并编译构造原语状态机步骤具体包括:创建成功命中原语节点、失败原语节点作为基础原语节点,并初始化相关变量,将失败指针指向失败原语节点,当前节点指针指向空节点;读取当前字符并将读取指针后移,根据所述当前字符和/或下一个字符的类型进行语法分析,并按照预设的编译方法对不同字符或字符组合进行编译构造原语状态机;当读取达到关键字字符尾部,更新当前节点的成功跳转状态,将其指向成功命中原语节点,并检查确保状态机中包含字符串类原语;
根据所述关键字对应的原语状态机根节点的深度,先合并深度相同的原语状态机,再按照从浅到深的原则进行聚合,获得关键字特征集合对应的原语状态机;
所述根据所述关键字对应的原语状态机根节点的深度,先合并深度相同的原语状态机,再按照从浅到深的原则进行聚合,获得关键字特征集合对应的原语状态机步骤具体包括:
创建按照深度排序的空链表,根据原语状态机深度规则确定各原语状态机的深度值;读取所述关键字对应的第一个原语状态机及其深度值,将所述第一个 原语状态机和对应的深度值保存至空链表中,获得深度链表;继续读取所述关键字对应的原语状态机以及对应的深度值,并在深度链表中查找相同深度的原语状态机,作为目标状态机;当目标状态机存在时,根据目标状态机当前的状态机类型和原语节点类型进行状态机合并处理;当目标状态机不存在时,则将当前读取的状态机按照深度排序插入至深度链表中,直到所有原语状态机读取结束获得最终深度链表;从所述最终深度链表中取首个原语状态机,并将全局根指向首个原语状态机节点,且对于除首个原语状态机外的原语状态机创建跳转到指定匹配位置原语节点,替换前一个状态机的失败原语节点,并将成功失败跳转指针指向下一个原语状态机的根节点;删除深度链表,并返回全局根指针获得关键字特征集合对应的原语状态机。
2.根据权利要求1所述的面向原语状态机的关键字特征集合编译方法,其特征在于,所述根据所述当前字符和/或下一个字符的类型进行语法分析,并按照预设的编译方法对不同字符或字符组合进行编译步骤具体包括:
当前字符为“.”,读取下一个字符,当下一个字符为“*”,设置浮动标志并读取指针后移,否则建立跳过字符原语节点作为当前节点或将当前跳过字符原语的跳过数量加1;
当前字符为“*”,停止编译并报错;
对其它字符,进行“字符串”原语节点的处理过程,具体包括:
当前字符为“\”,读取下一个字符,并将读取指针后移;
当前节点不为“字符串”类型的原语节点,根据浮动标志是否为True,创建“搜索匹配多个字符串”原语节点或“当前位置匹配多个字符串”原语节点,并将当前节点的成功跳转状态指向新节点,失败跳转状态指向失败指针,最后更新当前节点为新创建的原语节点;将当前字符加入到当前原语的搜索字符串尾;
如果浮动标志为True,且失败指针指向失败原语节点,创建跳转指定位置原语,将其成功和失败跳转状态指向当前节点,字符读取位置指定为前一状态的初始读取位置,并将失败指针指向新创建的跳转指定位置原语;
设置浮动标志为False。
3.根据权利要求1所述的面向原语状态机的关键字特征集合编译方法,其特征在于,所述根据原语状态机深度规则确定各原语状态机的深度值步骤具体包括:
根节点为“当前位置匹配多个字符串”原语状态机的深度值为0;
根节点为“跳过字符”原语的状态机的深度值等于跳过字符数;
根节点为“搜索匹配多个字符串”原语的状态机为深度最大的状态机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学湘雅医院,未经中南大学湘雅医院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110716423.3/1.html,转载请声明来源钻瓜专利网。