[发明专利]大规模关键词多模匹配方法、装置以及设备在审
申请号: | 201811441307.X | 申请日: | 2018-11-28 |
公开(公告)号: | CN109558521A | 公开(公告)日: | 2019-04-02 |
发明(设计)人: | 袁春峰;曲志峰;纪翀;楼方平 | 申请(专利权)人: | 南京中孚信息技术有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/9032 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 李强 |
地址: | 210000 江苏省南京市浦口区江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多模匹配 哈希函数 哈希 预设状态 文本 输出 预设 索引 关键词集合 检索效率 字符串 失败 数组 记录 存储 扫描 合成 | ||
1.一种大规模关键词多模匹配方法,其特征在于,包括:
根据预设状态机扫描待测文本,其中,所述预设状态机通过预设关键词集合生成;
对所述待测文本中的当前输入状态值以及当前字节值执行以下步骤:
将所述当前输入状态值以及所述当前字节值合成第一字符串,并基于所述第一字符串利用完美哈希函数进行计算,得到索引值;
基于所述当前输入状态值以及所述当前字节值利用哈希函数进行计算,得到哈希值;
判断所述哈希值与预设哈希值是否相等,其中,所述预设哈希值存储在以所述索引值为下标的数组中;
如果所述哈希值与所述预设哈希值相等,获取与所述当前输入状态值以及所述当前字节值对应的失败状态值,并判断所述与所述当前输入状态值以及所述当前字节值对应的失败状态值是否为关键词的标识值;
如果是,记录与所述当前输入状态值以及所述当前字节值对应的失败状态值;
如果否,不记录与所述当前输入状态值以及所述当前字节值对应的失败状态值;
获取与所述当前输入状态值以及所述当前字节值对应的输出状态值,并判断所述与所述当前输入状态值以及所述当前字节值对应的输出状态值是否为关键词的标识值;
如果是,记录所述与所述当前输入状态值以及所述当前字节值对应的输出状态值;
如果否,不记录所述与所述当前输入状态值以及所述当前字节值对应的输出状态值;
将所述与所述当前输入状态值以及所述当前字节值对应的输出状态值更新为所述当前输入状态值,并将所述当前字节值的下一字节值更新为所述当前字节值;
如果所述哈希值与所述预设哈希值不相等,获取与所述当前输入状态值以及所述当前字节值对应的失败状态值,并判断所述与所述当前输入状态值以及所述当前字节值对应的失败状态值是否为关键词的标识值;
如果是,记录所述与所述当前输入状态值以及所述当前字节值对应的失败状态值;
如果否,不记录所述与所述当前输入状态值以及所述当前字节值对应的失败状态值;
将所述与所述当前输入状态值以及所述当前字节值对应的失败状态值更新为所述当前输入状态值,将所述当前字节值更新为所述当前字节值;
将记录的失败状态值以及输出状态值分别与所述关键词进行对应,输出所述待测文本中的所述关键词。
2.根据权利要求1所述的大规模关键词多模匹配方法,其特征在于,所述根据预设状态机扫描待测文本之前,包括:
根据所述预设关键词集合生成所述预设状态机,并为所述预设关键词集合中每个关键词设置小于等于关键词总个数的唯一标识值;
获取所述预设状态机的成功状态转移表以及失败状态转移表,其中,所述成功状态转移表包括:输入状态值、触发值以及输出状态值,所述失败状态转移表包括:当前状态值以及失败状态值,所述失败状态转移表储存在以所述当前状态值为下标的数组中;
将所述输入状态值以及所述触发值合成第二字符串,并基于所述第二字符串利用完美哈希函数进行计算,得到索引值;
基于所述输入状态值以及所述触发值利用哈希函数进行计算,得到预设哈希值,并将所述预设哈希值存储在以所述索引值为下标的数组中。
3.根据权利要求2所述的大规模关键词多模匹配方法,其特征在于,所述预设状态机中的初始状态值为所述关键词总个数加一个数值的计算结果。
4.根据权利要求3所述的大规模关键词多模匹配方法,其特征在于,所述初始状态值对应的失败状态值设置为0。
5.根据权利要求2所述的大规模关键词多模匹配方法,其特征在于,所述触发值为所述预设关键词集合中一个字节值。
6.根据权利要求2所述的大规模关键词多模匹配方法,其特征在于,所述将所述当前输入状态值以及所述当前字节值合成第一字符串,包括:
将所述当前输入状态值左移一个字节,并将左移后的所述当前输入状态值加上所述当前字节值,得到第一字符串;
所述将所述输入状态值以及所述触发值合成第二字符串,包括:
将所述输入状态值左移一个字节,并将左移后的所述输入状态值加上所述触发值,得到第二字符串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京中孚信息技术有限公司,未经南京中孚信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811441307.X/1.html,转载请声明来源钻瓜专利网。