[发明专利]基于多线程的模式匹配方法、装置及电子设备在审
申请号: | 201811404448.4 | 申请日: | 2018-11-22 |
公开(公告)号: | CN109543751A | 公开(公告)日: | 2019-03-29 |
发明(设计)人: | 袁春峰;曲志峰;纪翀;楼方平 | 申请(专利权)人: | 南京中孚信息技术有限公司 |
主分类号: | G06K9/62 | 分类号: | G06K9/62 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 苏胜 |
地址: | 210000 江苏省南京市浦口区江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 扫描文本 线程 模式匹配 装置及电子设备 标识信息 等差数列 起始地址 起始扫描 多线程 状态机 字节数 偏移 模式匹配技术 目标模式 线程分配 构建 加载 匹配 扫描 递增 | ||
本发明提供了一种基于多线程的模式匹配方法、装置及电子设备,涉及模式匹配技术领域,该方法包括:获取待扫描文本及待扫描文本的标识信息;其中,标识信息包括待扫描文本的字节数和待扫描文本的起始地址;根据待扫描文本的字节数启动多个线程,并分别为每个线程分配编号;其中,多个线程的编号呈等差数列递增;等差数列的首项为0;根据待扫描文本的起始地址和每个线程的编号,确定每个线程对应的起始扫描偏移;将待扫描文本加载至多个线程,并同时在各个线程中,根据线程对应的起始扫描偏移通过预先构建的状态机对待扫描文本进行扫描,得到待扫描文本中与状态机相匹配的目标模式串。本发明能够有效提升模式匹配的效率。
技术领域
本发明涉及模式匹配技术领域,尤其是涉及一种基于多线程的模式匹配方法、装置及电子设备。
背景技术
目前常用AC(Aho-Corasick)算法对待扫描文本进行模式匹配,然而AC算法的时间复杂度由待扫描文本的字节数所决定。对于字节较多的待扫描文本,应用AC算法扫描需要耗费较长的时间,算法的性能不优。通过这样的方式进行模式匹配,效率较低。
发明内容
有鉴于此,本发明的目的在于提供一种基于多线程的模式匹配方法、装置及电子设备,以有效提升模式匹配的效率。
第一方面,本发明实施例提供了一种基于多线程的模式匹配方法,包括:获取待扫描文本及待扫描文本的标识信息;其中,标识信息包括待扫描文本的字节数和待扫描文本的起始地址;根据待扫描文本的字节数启动多个线程,并分别为每个线程分配编号;其中,多个线程的编号呈等差数列递增;等差数列的首项为0;根据待扫描文本的起始地址和每个线程的编号,确定每个线程对应的起始扫描偏移;将待扫描文本加载至多个线程,并同时在各个线程中,根据线程对应的起始扫描偏移通过预先构建的状态机对待扫描文本进行扫描,得到待扫描文本中与状态机相匹配的目标模式串;其中,状态机中包含有多个模式串。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,线程的数量等于待扫描文本的字节数;等差数列的公差为1个字节。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在获取待扫描文本之前,上述方法还包括:接收用户输入的关键词组,并通过字典树构建与关键词组对应的状态机;其中,关键词组中的关键词与状态机中的模式串一一对应。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述状态机中每个模式串的初始状态值均等于关键词组中的关键词的个数加一;状态机中每个模式串的终止状态值小于或者等于关键词组中关键词的个数,且,不同的模式串的终止状态值不同。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述状态机包括成功转移表,成功转移表中存储有每个模式串对应的状态转移信息;其中,状态转移信息包括输入状态值、触发字节以及与输入状态值和触发字节所对应的输出状态值。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,根据线程对应的起始扫描偏移,通过预先构建的状态机对待扫描文本进行扫描,得到待扫描文本中与状态机相匹配的目标模式串的步骤,包括:根据线程对应的起始扫描偏移,确定待扫描文本的第一个待扫描字节;将初始状态值确定为输入状态值,并将第一个待扫描字节确定为当前触发字节;判断成功转移表中是否存在与输入状态值和当前触发字节对应的输出状态值;如果不存在,结束线程;如果存在,判断输出状态值是否小于状态机的初始状态值;如果否,将输入状态值更新为输出状态值,并将当前触发字节更新为待扫描文本的下一个待扫描字节后,重新执行上述步骤:判断成功转移表中是否存在与输入状态值和当前触发字节所对应的输出状态值;如果是,在状态机中查找与输出状态值相匹配的终止状态值;将查找到的终止状态值对应的模式串确定为待扫描文本中与状态机相匹配的目标模式串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京中孚信息技术有限公司,未经南京中孚信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811404448.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种耗电用户能效评估方法
- 下一篇:一种共享单车站点聚类方法