[发明专利]用于文本或网络内容分析的大规模特征匹配的方法有效
申请号: | 201210228593.8 | 申请日: | 2012-07-02 |
公开(公告)号: | CN103412858A | 公开(公告)日: | 2013-11-27 |
发明(设计)人: | 薛一波;袁振龙 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 文本 网络 内容 分析 大规模 特征 匹配 方法 | ||
技术领域
本发明属于计算机数据处理技术领域,特别涉及一种用于文本或网络内容分析的大规模特征匹配的方法。
背景技术
多模式匹配是计算机科学领域中的基本问题之一。其需要解决的问题就是快速而准确地判断待测文本或者网络内容中所有出现任意模式串的位置。多模式匹配技术的应用领域非常广泛,除了已经得到广泛应用的网络入侵检测/防御系统(IDS/IPS)、病毒扫描系统,垃圾邮件过滤系统,应用层网络协议分析系统、网络审计系统和最近提出的统一威胁管理(Unified Threat Management,UTM)系统等网络安全领域,还扩展到其它学科和领域,例如信息管理、网络搜索引擎和生物信息学当中的基因序列检测等。因此,研究和发展多关键词匹配技术具有很强的学术和实际意义,被相关的学术和业界所关注。
多关键词匹配技术已经存在许多经典算法,按照在滑动窗口内的匹配策略,可以分为前缀算法(Prefix-based Algorithms)、后缀算法(Suffix-based Algorithms)两类,其中滑动窗口的大小取决于最短特征串长度。前缀算法是在滑动窗口内由前往后匹配,比如KMP、Aho Corasick等,后缀算法是在滑动窗口内由后往前匹配,比如Boyer-Moore、BMH、Commentz-Walter、WuManber等。这些字符串匹配算法各有所长,应用于不同的场景。
AC算法是贝尔实验室的Aho和Corasick提出的目前应用最广泛的一种多模式特征匹配算法。该算法采用有限状态自动机(Finite State Automaton,FSA)的思想来一次性预处理所有的模式串。有限状态机FSM(Finite State Machine)是包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。算法将待匹配的文本串T视为一个流,当流进入状态机之后,每输入一个字符都会使得自动机改变一种状态,并检测是否可能发生了匹配。文本串长度N决定了AC算法复杂度,其复杂度为O(N)。对于中小规模特征匹配,AC算法相比于其他算法具有匹配速度恒定的优点,具有高性能鲁棒性和良好的可扩展性。但是,当面对大规模特征匹配时,它指数级增长的内存空间消耗,对算法的性能构成了致命的威胁。
双数组算法是建立在AC算法思想的基础上,基于改进的有限状态机的多模式匹配算法。双数组算法利用一个二维数组构成的矩阵形式来表示trie树。双数组包含两个整数数组base[]和check[]。base数组的值相当于trie树的一个节点,check数组的值相当于当前状态的前一状态,在算法匹配过程中,base起跳转作用,check起校验作用。如果base和check同时为0,则代表该位置为空状态,如果base为负值,则表示该状态匹配成功。设前一状态为s,后一状态为t,c为目前输入的变量,则它们之间必须满足:check[base[s]+c]=s;base[s]+c=t。双数组算法是根据base[s]+c的值进行状态间的跳转的,设文本串长度为N,所以双数组算法复杂度为O(N)。由于采用的是数值运算和数组读取操作,避免了字符串比较和拷贝,因此双数组算法具有匹配方式简单,单次遍历速度快的特点。但是,由于双数组算法同样是基于有限状态机的,当模式集规模增大时,其内存消耗也非常严重。同时,尽管单次遍历速度很快,但由于无法跳跃,限制了算法整体的匹配速度。
WM(Wu-Manber)算法是由台湾的Sun Wu和美国的亚利桑那大学的Udi Manber提出的,采用坏字符块的启发策略取代了BMH算法中的坏字符策略,充分地降低了坏字符块在字符串中出现的概率,从而十分有效地增加了跳跃效率。WM算法引入了shift表来避开无谓的比较操作,达到跳跃的目的,hash表来链接其对应的多条特征串,同时也引入prefix表来过滤不可能匹配的字符串,从而提升算法的性能。设B是块字符的长度,N是文本的长度,M是特征串的最短长度,则WM算法的平均复杂度是O(BN/M)。WM算法基于跳跃匹配的思想,并采用了哈希函数,算法效率非常高。但是,当面对大规模模式集时,容易产生哈希冲突问题,此时便只能利用精确的BF算法进行匹配,导致算法性能的急速下降。另外,WM算法在逐个精确匹配完成返回时,滑动窗口只能从左向右移动一个字符,算法性能受到很大影响。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210228593.8/2.html,转载请声明来源钻瓜专利网。
- 内容再现系统、内容提供方法、内容再现装置、内容提供装置、内容再现程序和内容提供程序
- 内容记录系统、内容记录方法、内容记录设备和内容接收设备
- 内容服务系统、内容服务器、内容终端及内容服务方法
- 内容分发系统、内容分发装置、内容再生终端及内容分发方法
- 内容发布、内容获取的方法、内容发布装置及内容传播系统
- 内容提供装置、内容提供方法、内容再现装置、内容再现方法
- 内容传输设备、内容传输方法、内容再现设备、内容再现方法、程序及内容分发系统
- 内容发送设备、内容发送方法、内容再现设备、内容再现方法、程序及内容分发系统
- 内容再现装置、内容再现方法、内容再现程序及内容提供系统
- 内容记录装置、内容编辑装置、内容再生装置、内容记录方法、内容编辑方法、以及内容再生方法