[发明专利]一种文本查找的方法和装置在审

专利信息
申请号: 201410191247.6 申请日: 2014-05-07
公开(公告)号: CN104008136A 公开(公告)日: 2014-08-27
发明(设计)人: 刘超;姜建国;李敏;仇新梁;喻民;胡波;黄超;王菲飞;王冉晴;赵双;刘坤颖;夏剑锋 申请(专利权)人: 中国科学院信息工程研究所
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 李迪
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 文本 查找 方法 装置
【说明书】:

技术领域

发明涉及计算机技术领域,尤其涉及一种文本查找的方法和装置。

背景技术

对于文件检查,主要是对文本中出现的关键字段进行快速匹配查找并定位相应文件。通常计算机里存储有数以万计各类型的文本文件,为了快速准确地查找关键字段需要应用一些模式匹配算法。对于入侵检测系统,模式匹配算法通常应用于误用检测,著名的开放源码的入侵检测系统Snort就是基于模式匹配。模式匹配算法的性能直接影响入侵检测系统的检测效率。在高速网络环境下,如果模式匹配算法来不及处理大量的实时网络数据包,必然会丢弃部分数据包,而这些被丢弃的数据包中就可能包含入侵信息。常用的模式匹配算法有BF算法、KMP算法、BM算法、BMH算法、AC算法等。由于AC算法的简单高效,所以它的应用范围比较广。

AC算法是一种经典的多模式匹配算法。对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关,即能快速有效的在指定文本中查找匹配特定的关键字符或字段。AC算法使用的数据结构是Trie树,是一种用于快速查找的多叉树结构。其核心思想是以空间换时间,利用字符串的公共前缀来减少查询时间以提高效率,主要采用完全Hash表方式来存储跳转状态。但是,如果当系统中存在大量字段且这些字段也都没有公共前缀的话,那么相应的Trie树就会非常耗费内存。这在中文文本查找来说尤为明显,对于英文目标字符串的字符数最大是256,但对于中文文本来说,匹配的目标字符串最大数目到达256*256,随着目标字符串增大,Trie树结构也随之增大,存储空间急剧膨胀,巨大的存储空间会使得AC算法的时效性大大降低。

发明内容

(一)要解决的技术问题

本发明提供一种文本查找的方法和装置,以解决现有技术中AC算法的存储空间过大,时效性较低的技术问题。

(二)技术方案

为解决上述技术问题,本发明提供一种文本查找的方法,包括:

建立有限状态自动机,存储每个状态的单链表;

存储扇出系数大于指定阈值的单链表Vi的字符域和状态域,其中i为单链表节点状态域的值,i≥0且取整数,将其转化为线性表Li且释放所述单链表Vi的存储空间,对所述线性表Li的字符域进行排序;

计算所述有限状态自动机的跳转函数、失效函数和输出函数,其中,计算所述跳转函数时,若当前状态等于所述单链表Vi的状态域,对所述线性表Li进行二分查找;

完成文本的匹配和查找。

进一步地,所述存储每个状态的单链表还包括:

建立顶点表,记录所述单链表的表头地址,形成邻接链表。

进一步地,所述计算所述有限状态自动机的跳转函数还包括:

若当前状态不在所述单链表Vi的状态域中时,直接搜索当前状态后的单链表。

进一步地,所述完成文本的匹配和查找包括:

根据所述文本的当前状态,利用所述跳转函数、失效函数和输出函数完成文本的匹配和查找。

另一方面,本发明还提供一种文本查找装置,包括顺序相连的存储单元、转化单元、计算单元和查找单元,其中:

存储单元,用于存储有限状态自动机中每个状态的单链表;

转化单元,用于存储有限状态自动机中扇出系数大于指定阈值的单链表Vi的字符域和状态域,其中i为单链表节点状态域的值,i≥0且取整数,将其转化为线性表Li且释放所述单链表Vi的存储空间,对所述线性表Li的字符域进行排序;

计算单元,用于计算所述有限状态自动机的跳转函数、失效函数和输出函数,其中,计算所述跳转函数时,若当前状态等于所述单链表Vi的状态域,对所述线性表Li进行二分查找;

查找单元,用于完成文本的匹配和查找。

进一步地,所述存储单元还用于:

建立顶点表,记录所述单链表的表头地址,形成邻接链表。

进一步地,所述计算单元还用于:

若当前状态不在所述单链表Vi的状态域中时,直接搜索当前状态后的单链表。

进一步地,所述查找单元还用于:

根据所述文本的当前状态,利用所述跳转函数、失效函数和输出函数完成文本的匹配和查找。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410191247.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top