CN101359325A - 一种快速内容分析的多关键词匹配方法 - Google Patents
一种快速内容分析的多关键词匹配方法 Download PDFInfo
- Publication number
- CN101359325A CN101359325A CNA2007101198452A CN200710119845A CN101359325A CN 101359325 A CN101359325 A CN 101359325A CN A2007101198452 A CNA2007101198452 A CN A2007101198452A CN 200710119845 A CN200710119845 A CN 200710119845A CN 101359325 A CN101359325 A CN 101359325A
- Authority
- CN
- China
- Prior art keywords
- keyword
- bloom filter
- string
- hash
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种快速内容分析的多关键词匹配方法。所述发明方法包括预处理阶段和模式匹配阶段。其中,所述的预处理阶段包括关键词特征串裁剪和关键词特征分片集合的构建、基于关键词特征分片集合的Bloom Filte(布隆过滤器)构造,以及原始关键词集合线性表构造,所述关键词匹配阶段包括:依据Bloom Filter实现当前窗口中文本串不与任何关键词特征分片匹配的快速判定;只在判定失败情况下通过字符串比较操作实现与候选关键词的精确匹配;将文本匹配窗口连续多字节快速跳跃。本发明充分利用了待匹配文本与关键词匹配成功概率异常低的特点,可实现大数量关键词场景下的高速匹配,非常适合病毒检测等在线病毒扫描应用。
Description
技术领域
本发明涉及内容分析技术领域,具体涉及一种快速内容分析的多关键词匹配方法。
背景技术
多关键词匹配(Multiple Pattern String Matching)是计算机科学领域中的基本问题之一。其解决的问题是快速判断某一数据块中是否包含关键词集合中的某一或某些关键词。多关键词匹配技术广泛应用于文本处理、网络内容分析、入侵检测、信息检索和病毒检测等领域。
目前涌现出了大量多关键词匹配算法,包括Aho-Corasick[1]、Wu-Manber[2]和E2XB[3]等(引用的所有文献出处位于背景技术结尾处)。这些多关键词匹配算法都存在一个理想的应用条件,比如,Aho-Corasick算法的最佳应用条件为小数量短关键词场合,Wu-Manber的最佳应用条件为中等数量长关键词应用场合,E2XB的最佳应用为入侵检测场合。这些多关键词匹配算法在大数量长关键词应用场合下效果并不理想,因此并不适合实时病毒检测类应用场合。实时病毒检测类应用场合下的多关键词匹配具有如下特点:1)关键词数量非常大,一般在6万到20万条左右;2)关键词长度一般比较大,最小为8字节;3)待检测文本长度较大,从几千字节到几兆字节不等;4)待检测文本与任何关键词匹配的成功概率异常低。
文献[4]给出了一种针对病毒检测类应用场合多关键词匹配特点而设计的多关键词匹配方法:HASH-AV,它构建一个可容纳于现代CPU高速缓存中的Bloom Filter(布隆过滤器),并巧妙设计了一组Bloom Filter散列函数,通过依次调用该组散列函数来实现当前窗口中文本串不与任一关键词匹配的快速判定。由于病毒检查等应用场合下,文本数据流与任一关键词匹配的概率异常低,绝大多数情况下这种基于Bloom Filter的快速判定都是成功的,因此并不需要执行代价昂贵的全关键词比较操作。与其它关键词匹配方法相比,该关键词匹配方法更多地考虑了病毒检测领域独有的特性,在病毒检测应用场合表现出了较好的扫描速率;但该方法仍然是一种线性的关键词匹配方法,它无法实现文本匹配窗口的连续多字节跳跃。
背景技术中引用的文献列表如下:
1)A.V.Aho,M.J.Corasick.Efficient String Matching:An Aid toBibliographic Search,(中文名称:一种用于目录搜索的高效的字符串匹配方法)Communications of the ACM,1975,18(6):333-340
2)S.Wu,U.Manber.A Fast Algorithm For Multi-Pattern Searching(中文名称:一种快速的多模式匹配算法).Technical Report TR-94-17,University of Arizona.1994:1-11
3)K.G.Anagnostakis,S.Antonatos,M.Polychronakis,and E.P.Markatos.:A domain-specific string matching algorithm for intrusiondetection(中文名称:一种领域相关的为入侵检测设计得多模式匹配算法).In Proceedings of IFIP International Information SecurityConference(SEC′03),May 2003
4)Erdogan,O.;Pei Cao,Hash-AV:fast Virus signature scanning by cache-resident filters(中文名称:HASH-AV:一种采用缓存驻留过滤器的快速病毒特征扫描方法),Global Telecommunications Conference,2005.GLOBECOM apos;05.IEEE Volume 3,Issue,28 Nov.-2 Dec.2005Page(s):6pp.
发明内容
本发明目的是克服现有技术的上述缺点,提供一种适合于实时病毒检测场合的多关键词匹配方法,它利用Bloom Filter(布隆过滤器)实现当前窗口中文本不与任何关键词匹配的快速判定,同时允许文本匹配窗口连续多字节跳跃。
本发明的目的是通过以下技术方案实现的:
一种快速内容分析的多关键词匹配方法,包括预处理阶段和模式匹配阶段,其中,
A)所述预处理阶段包括以下步骤:
A1、根据设定的关键词特征串长度,对关键词集合中各关键词进行特征串抽取;
A2、根据设定的文本匹配窗口跳跃步长,将各关键词特征串分割为多个指定长度子串,即关键词特征分片;
A3、构造一个包含多个散列函数的Bloom Filter结构体,将分割出的所有关键词特征分片映射到Bloom Filter结构体中;
A4、构造一个哈希表,将分割出的所有关键词特征分片映射到哈希表各单元中,对于具有哈希值冲突的元素,用链表方式串接起来;
A5、构建一个包含所有原始关键词的线性表,在步骤A4中建立的关键词特征分片哈希表的各表项中包含对应原始关键词的索引号;
B)所述模式匹配阶段包括以下步骤:
B1、设置一个与关键词特征分片等长度的文本匹配窗口,首先将文本匹配窗口与待匹配文本左对齐;
B2、以当前文本匹配窗口中文本串为输入,依次调用步骤A3中构造Bloom Filter时选择的散列函数组,并检查散列函数值对应的Bloom Filter位串中比特位值:如果值为0,则直接跳跃到步骤B5执行;如果值为1,则继续调用下一个散列函数;如果所有散列函数对应的Bloom Filter中的比特位均为1,则进入步骤B3;
B3、依据文本匹配窗口中当前文本检索关键词特征分片哈希表,如果找到匹配的关键词特征分片表项,则执行步骤B4;如果未找到任何匹配表项,则直接跳跃到步骤B5执行;
B4、根据关键词特征分片表项中的索引号从原始关键词线性表读取对应的原始关键词,并与当前匹配窗口处文本串进行全长度字符串比较,如果匹配成功则报告一个成功的关键词匹配事件;继续执行步骤B5;
B5、将当前文本匹配窗口向右移动指定跳跃步长,并跳跃到步骤B2继续执行,直至整个文本扫描结束。
优选地,本发明所述的快速内容分析多关键词匹配方法中,所述预处理阶段A的步骤A1为:对于原始关键词集合中各关键词,抽取的关键词特征串为整个关键词集合中出现次数最少的关键词子串。
优选地,本发明所述的快速内容分析多关键词匹配方法,在步骤A3中构造Bloom Filter结构体时,为该Bloom Filter结构体设计的散列函数组满足如下要求:该散列函数组中各散列函数是依次调用的;依次调用的各散列函数的计算复杂度逐次增大,均匀特性也逐次变好。
优选地,本发明所述的快速内容分析多关键词匹配方法,在步骤A4构造关键词特征分片哈希表时,选择的哈希表散列函数就是步骤A3中构造Bloom Filter时依次调用的散列函数组中的最后一个散列函数。
由以上本发明提供的技术方案可以看出,本发明对关键词集合中各关键词进行特征串抽取后,将抽取的关键词特征串分割成多个关键词特征分片,并构建了基于关键词特征分片集合的Bloom Filter,以实现文本扫描过程中当前文本不与任何关键词特征分片匹配的快速判定,并允许文本匹配窗口连续多字节跳跃,从而大大加快了文本扫描速度。在同等试验条件下,本发明方法在选择不同连续跳跃步长时,均比HASH-AV方法快,特别在连续跳跃步长为3字节时,文本扫描速度比HASH-AV快1倍。本发明方法非常适合于在线实时入侵检测和病毒检测等应用场合。
附图说明
图1为将一个元素插入到Bloom Filter数据结构的过程;
图2为判定某元素是否属于Bloom Filter所表示集合的过程;
图3为本发明方法的预处理阶段工作流程图。
图4是本发明方法的模式匹配阶段的文本扫描实现流程图。
具体实施方式
本发明方法包括预处理阶段和模式匹配阶段。下面结合附图详细说明本发明方法各个阶段的具体实施步骤。
在预处理阶段,本发明方法需要对原始关键词集合进行预处理,并生成几个关键的数据结构,以辅助模式匹配阶段的文本扫描过程。
如附图3所示,本发明方法预处理阶段的实施步骤如下:
步骤301、根据设定的关键词特征串长度,对关键词集合中各关键词进行特征串抽取;
步骤302、根据设定的文本匹配窗口跳跃步长,将各关键词特征串分割为多个指定长度子串,即关键词特征分片;
步骤303、构造一个包含多个散列函数的Bloom Filter(布隆过滤器)结构体,将分割出的所有关键词特征分片映射到Bloom Filter结构体中;
步骤304、构造一个哈希表,将分割出的所有关键词特征分片映射到哈希表各单元中,对于具有哈希值冲突的元素,用链表方式串接起来;
步骤305、构建一个包含所有原始关键词的线性表,在步骤304中建立的关键词特征分片哈希表的各表项中包含对应原始关键词的索引号。
实施例1:
假设有K个需要搜寻的原始关键词,表示为P={P1,P2,...,Pk}。在实际应用场合中,需要搜寻的原始关键词长度是不相等的。为便于实现多个关键词的并行匹配,本发明需要对所有关键词进行等长度裁剪,即选择一个关键词子串长度值W,对集合P中每个原始关键词Pi,将其裁剪为W字节长度的关键词子串Mi。这个裁剪出的W字节长度的关键词子串Mi称为原始关键词特征串。由抽取的各关键词特征串Mi组成的集合为关键词特征串集合M。注意,在选择关键词特征串长度时,W值大小不能大于原始关键词集合中最短关键词的长度。最简单的裁剪方法为取每个关键词的W字节前缀或后缀作为原始关键词的关键词特征串。在文本扫描过程中,首先判定当前文本是否与某一关键词特征串匹配,如果匹配成功,则将当前文本与整个原始关键词进行匹配,以实现全模式长度的精确匹配。
在构建了关键词特征串集合M后,需要对各关键词特征串进一步进行子串分割,以确保文本匹配窗口连续多字节跳跃时不会漏掉任何可能的关键词匹配事件。假设要实现文本匹配窗口以S字节为步长的连续跳跃,为保证文本匹配窗口连续跳跃过程中不漏掉任何可能的关键词匹配,则需要将关键词特征串集合M中各关键词特征串Mi分割为S个长度为W-S+1字节的关键词特征分片Ki1,Ki2,...KiS。由所有这些关键词特征分片Ki1,Ki2,...KiS组成的集合为关键词特征分片集合K。
关键词特征分片集合K构建完毕后,需要构造一个包含关键词特征分片集合K中所有元素的Bloom Filter结构体。
Bloom Filter是一个压缩的数据结构,用来表示一个集合中所有元素,并支持对该集合中元素的查找,即可以回答“某个元素是否属于某个集合?”的问题。
Bloom Filter使用长度为m的位串(bit Vector)V来表达数据元素集合A={a1,a2,...an}。设有k个具有均匀分布特性的散列函数{hi},i=1,...,k,满足如下条件: hi(x)∈{1,2,...,m},基于Bloom Filter的集合元素表示法和集合元素查找法如下:
集合元素表示方法:对于集合中任一元素ai,使用预先定义的k个散列函数依次对ai进行哈希,得到k个散列值{b1,b2,...bk},bi∈[1..m],然后依次将位串V的b1,b2,...bk位置1。附图1示例了将一个元素插入到Bloom Filter数据结构的过程(k=3)。
集合元素查找方法:当需要判定某一元素a是否属于Bloom Filter表示的集合时,方法如下:1)使用预先定义的k个散列函数依次对元素a进行散列运算,得到k个散列值{b1,b2,...bk},bi∈[1..m];然后判断位串V的b1,b2,...bk位置上是否都为1,如果都为1,则表示该元素在集合中,否则表示不在集合中。附图2示例了基于Bloom Filter的集合元素查找过程(即归属判定过程)。
基于Bloom Filter实现集合元素查找时可能存在误报,但是,可以通过控制位串V的长度m来将误报率控制在可接受的范围之内。
本发明基于上面描述的公知的Bloom Filter构造方法构造用于表示关键词特征分片集合K中所有元素的Bloom Filter:
a)设置一个长度为v的位串V,并为该Bloom Filter选定K个散列函数H1,H2,..Hk;
b)对于关键词特征分片集合K中各元素Kij,依次调用K个散列函数H1,H2,..Hk,将位串V中的K个散列函数值对应的比特位置1。
为实现文本匹配窗口中文本串与候选的关键词特征分片子集进行精确匹配,本发明还为关键词特征分片集合K构造了一个哈希表。为了使得构造的哈希表具有较好的平衡性,需要为哈希表构造一个均匀性较好的哈希映射函数H。并且,所构造的哈希映射函数H应具有较高的计算效率,以减少哈希表的检索开销。对于关键词特征分片集合K中具有散列值冲突的关键词特征分片,本发明采用链表方式将它们串接起来,并将链表中元素按字典升序排列。
本发明还需要构建一个包含原始关键词集合P中各关键词的线性表L,以便于文本匹配窗口中文本串与某一关键词特征分片匹配成功后,能够读取与该关键词特征分片对应的原始关键词进行全长度的精确匹配,从而得到最后的关键词匹配结果。为使得在文本匹配窗口中文本串与某一关键词特征分片匹配成功后能够快速找到相关的原始关键词,本发明在A4步骤中建立的关键词特征分片哈希表的各表项中包含了对应原始关键词的索引号。
在模式匹配阶段,本发明将基于预处理阶段构建的数据结构体实现对待检测文本的快速扫描。为了使本技术领域的人员更好地理解本发明,下面结合附图4详细介绍本发明涉及的模式匹配过程。包括以下步骤:
步骤401、设置文本匹配窗口宽度为W-S+1字节,其中,W为关键词特征串长度,S为文本匹配窗口跳跃步长,将文本匹配窗口与待匹配文本左对齐;
步骤402:以当前文本匹配窗口中文本串(长度为W-S+1字节)为输入,依次调用关键词特征分片Bloom Filter中选择的散列函数组H1,H2,...Hk,并检查Bloom Filter位串中对应比特位的值:如果某个散列函数Hi对应的Bloom Filter中的比特位为0,则直接跳跃到步骤405执行;如果当前散列函数Hi对应的Bloom Filter中的比特位为1,则继续调用下一个散列函数Hi+1;如果所有散列函数对应的Bloom Filter中的比特位均为1,则继续执行步骤403。
步骤403:基于关键词特征分片哈希表中的散列函数H,对当前文本匹配窗口中文本串进行散列运算,根据散列值定位某一关键词特征分片子链,并将文本匹配窗口中文本串与子链中各关键词特征分片进行精确匹配:如果与某关键词特征分片匹配成功,则继续执行步骤404;如果未与子链中任何关键词特征分片匹配成功,则直接跳跃到步骤405执行。
步骤404:从找到的关键词特征分片表项中取出原始关键词索引号,从原始关键词线性表中加载对应的原始关键词,将其与当前文本匹配窗口位置处文本串进行基于字符比较的全匹配,如果匹配成功,则报告一个成功的原始关键词匹配事件;最后,不管匹配是否成功,都继续执行步骤405。
步骤405:将当前文本匹配窗口向右移动S字节(S为跳跃步长),并跳跃到步骤402继续执行,直至整个待检测文本扫描结束。
在实施本发明时,本发明所述的预处理阶段A的步骤A1可以采用如下的优选实施方式:对于关键词集合P={P1,P2,...,Pk}中每一关键词Pi,抽取的关键词特征串Mi为整个关键词集合中出现次数最少的关键词子串。
可以采用如下方法使得抽取的关键词特征串Mi为整个关键词集合中出现次数最少的关键词子串:
a)建立一个哈希表,用于存放所有可能的长度为W的关键词子串;
b)对于任一长度为ni的原始关键词Pi,可以分割出(ni-W)个长度为W的关键词子串,对于每个分割出的关键词子串,首先判断其是否在关键词子串哈希表中:如果不在哈希表中,则创建新的关键词子串表项,并将计数器值设置为1;如果相关关键词表项出现在哈希表中,则将对应表项的计数器值加1;
c)当原始关键词集合中所有关键词按步骤b)处理结束后,开始为每个原始关键词选择出现次数最少的关键词子串,具体过程为:对于任一长度为ni的原始关键词Pi,检索关键词子串哈希表,分别统计其(ni-W)个长度为W字节的关键词子串的计数值,选这(ni-W)个关键词子串中计数值最小者为本原始关键词Pi的关键词特征串。
在实施本发明时,在步骤A3构造用于表示关键词特征分片集合中所有元素的Bloom Filter时,可以采用如下优选方式构造其K个散列函数H1,H2,..Hk:即使得构造的散列函数组满足如下要求:该K个散列函数的计算复杂度为H1≤H2≤...≤Hk。
将K个散列函数的计算复杂度设置为H1≤H2≤...≤Hk的原因在于:在判定当前文本匹配窗口中文本串是否与某一关键词特征分片匹配时,这K个散列函数是顺序调用的,如果某个散列函数Hi能够判断当前窗口中文本串不与Bloom Filter所表示的任何元素匹配时,后续散列函数Hi+1,..Hk无需再调用;在病毒检测等关键词匹配成功概率异常低的情况下,多数情况下只需少数几个散列函数就可以做出当前文本串不属于关键词特征分片集合的判定,而无需全部调用K个散列函数,因此,这种将K个散列函数的计算复杂度设置为H1≤H2≤...≤Hk方法可以大大提高Bloom Filter判定效率。
一般情况下,设计得比较简单的散列函数,其计算复杂度小,但其散列值均匀性稍差,构造出的Bloom Filter可能不是最优的;设计得比较复杂的散列函数,其计算复杂度大,但可以获得一个均匀性较好的散列函数,构造出的Bloom Filter则较好。在具体实施本发明时,建议采用移位和异或操作来构造简单但均匀性稍差的散列函数,而采用置换和替换等操作来构造复杂但均匀性好的散列函数。
在实施本发明时,在步骤A4构造关键词特征分片哈希表时,为节省哈希表检索时间,可以直接使用步骤A3中构造Bloom Filter时K个散列函数中的最后一个散列函数Hk作为本关键词特征分片哈希表的散列函数H,这样就省去了散列函数H的计算时间,加快了哈希表检索效率。并且,由于散列函数Hk是Bloom Filter中K个散列函数中均匀性最好的,因此,基于Hk构造的关键词特征分片哈希表将具有较好的平衡性。
实施例2:
下面通过一个实施例对本发明整个技术方案作进一步说明。
假设关键词集合为P={abcdefg,abcopq,wyzopq},待匹配文本为bcgilmnom。
按照本发明方法的预处理过程如下:
首先,确定关键词特征串长度并裁减出各关键词对应的关键词特征串。这里选择关键词长度为3字节,并按照关键词子串最少出现原则选择各关键词的特征串,最后得到的关键词特征串集合为M={bcd,cop,wyz}。
然后,设定文本匹配窗口跳跃步长并确定关键词特征分片集合。这里选择文本匹配窗口跳跃步长为2字节,于是,可从关键词特征串集合M得到所对应的关键词特征分片集合K={bc,cd,co,op,wy,yz}。
然后,开始基于关键词特征分片集合K构造Bloom Filter。这里选择位串大小为128比特,并定义三个散列函数H1,H2,H3,其中H1函数值为两字节整数的最尾7比特所代表的数值,H2函数值由两字节的移位和异或操作定义,H3基于置换和替换操作定义。
然后,基于构造Bloom Filter时的散列函数H3构造关键词特征分片哈希表。该哈希表中将包含关键词特征分片集合中所有元素,即K={bc,cd,co,op,wy,yz}。
最后,为原始关键词集合P={abcdefg,abcopq,wyzopq}构造一个线性表,并将各原始关键词的索引号存储在关键词特征分片哈希表的各相关表项中,比如,表项bc和cd中存储原始关键词abcdefg的索引号0,表项co和op中存储原始关键词abcopq的索引号1,表项wy和yz中存储原始关键词wyzopq的索引号2。
按照本发明方法的模式匹配过程如下:
首先,确定文本匹配窗口宽度为2字节,将两字节文本匹配窗口与待匹配文本bcgilmnom左对齐。
对于当前文本匹配窗口中文本bc,依次调用关键词特征分片BloomFilter中的3个散列函数并判断Bloom Filter位串中对应比特位的取值。由于当前文本串bc属于关键词特征分片集合K,因此,散列函数H1,H2,H3散列值对应比特位都为1,快速排除判定失败。这时,需要根据散列函数H3(bc)的值检索关键词特征分片哈希表,可以找到匹配的关键词特征分片表项bc,然后根据该表项中存储的原始关键词索引号0取出原始关键词abcdefg,并与当前窗口处文本进行全匹配,匹配失败;匹配结束后,文本匹配窗口向前连续跳跃2字节,此时,当前窗口中文本为gi。然后,依次调用关键词特征分片Bloom Filter中的3个散列函数并判断位串中对应比特位的取值,发现散列函数H1(gi)散列值在Bloom Filter位串对应比特位处的值为0,说明当前文本gi不等于关键词特征分片集合中任一元素,不再继续调用H2,H3函数,直接将文本匹配窗口向前连续跳跃2字节,此时,当前窗口文本为ln。后续的文本扫描过程与上面类似,直到整个文本扫描完毕,整个模式匹配阶段结束。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (4)
1.一种快速内容分析的多关键词匹配方法,包括预处理阶段和模式匹配阶段,其特征在于包括以下步骤:
A)所述预处理阶段包括以下步骤:
A1、根据设定的关键词特征串长度,对关键词集合中各关键词进行特征串抽取;
A2、根据设定的文本匹配窗口跳跃步长,将各关键词特征串分割为多个指定长度子串,即关键词特征分片;
A3、构造一个包含多个散列函数的Bloom Filter结构体,将分割出的所有关键词特征分片映射到Bloom Filter结构体中;
A4、构造一个哈希表,将分割出的所有关键词特征分片映射到哈希表各单元中,对于具有哈希值冲突的元素,用链表方式串接起来;
A5、构建一个包含所有原始关键词的线性表,在步骤A4中建立的关键词特征分片哈希表的各表项中包含对应原始关键词的索引号;
B)所述模式匹配阶段包括以下步骤:
B1、设置一个与关键词特征分片等长度的文本匹配窗口,首先将文本匹配窗口与待匹配文本左对齐;
B2、以当前文本匹配窗口中文本串为输入,依次调用步骤A3中构造Bloom Filter时选择的散列函数组,并检查散列函数值对应的Bloom Filter位串中比特位值:如果值为0,则直接跳跃到步骤B5执行;如果值为1,则继续调用下一个散列函数;如果所有散列函数对应的Bloom Filter中的比特位均为1,则进入步骤B3;
B3、依据文本匹配窗口中当前文本检索关键词特征分片哈希表,如果找到匹配的关键词特征分片表项,则执行步骤B4;如果未找到任何匹配表项,则直接跳跃到步骤B5执行;
B4、根据关键词特征分片表项中的索引号从原始关键词线性表读取对应的原始关键词,并与当前匹配窗口处文本串进行全长度字符串比较,如果匹配成功则报告一个成功的关键词匹配事件;继续执行步骤B5;
B5、将当前文本匹配窗口向右移动指定跳跃步长,并跳跃到步骤B2继续执行,直至整个文本扫描结束。
2.根据权利要求1所述的快速内容分析多关键词匹配方法,其特征在于,所述预处理阶段A的步骤A1为:对于原始关键词集合中各关键词,抽取的关键词特征串为整个关键词集合中出现次数最少的关键词子串。
3、根据权利要求1所述的快速内容分析多关键词匹配方法,其特征在于,在步骤A3中构造Bloom Filter结构体时,为该Bloom Filter结构体设计的散列函数组满足如下要求:该散列函数组中各散列函数是依次调用的;依次调用的各散列函数的计算复杂度逐次增大,均匀特性也逐次变好。
4.根据权利要求1所述的快速内容分析多关键词匹配方法,其特征在于,在步骤A4构造关键词特征分片哈希表时,选择的哈希表散列函数就是步骤A3中构造Bloom Filter时依次调用的散列函数组中的最后一个散列函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101198452A CN101359325B (zh) | 2007-08-01 | 2007-08-01 | 一种快速内容分析的多关键词匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101198452A CN101359325B (zh) | 2007-08-01 | 2007-08-01 | 一种快速内容分析的多关键词匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101359325A true CN101359325A (zh) | 2009-02-04 |
CN101359325B CN101359325B (zh) | 2010-06-16 |
Family
ID=40331777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101198452A Expired - Fee Related CN101359325B (zh) | 2007-08-01 | 2007-08-01 | 一种快速内容分析的多关键词匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101359325B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808210A (zh) * | 2009-02-18 | 2010-08-18 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
CN101848222A (zh) * | 2010-05-28 | 2010-09-29 | 武汉烽火网络有限责任公司 | 互联网深度报文检测方法和装置 |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
WO2011011916A1 (zh) * | 2009-07-29 | 2011-02-03 | 华为技术有限公司 | 正则表达式匹配方法和系统及查找装置 |
CN102253988A (zh) * | 2011-06-30 | 2011-11-23 | 北京新媒传信科技有限公司 | 网络文本服务中敏感词过滤的方法 |
CN102298592A (zh) * | 2010-06-23 | 2011-12-28 | 中兴通讯股份有限公司 | 名单管理方法及装置 |
CN102307189A (zh) * | 2011-08-18 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 恶意代码检测方法及网络设备 |
CN101782922B (zh) * | 2009-12-29 | 2012-01-18 | 山东山大鸥玛软件有限公司 | 一种面向海量数据检索的多级桶哈希索引方法 |
CN102426836A (zh) * | 2011-08-25 | 2012-04-25 | 哈尔滨工业大学 | 基于分位数自适应裁剪的快速关键词检出方法 |
CN102782643A (zh) * | 2010-03-10 | 2012-11-14 | Emc公司 | 使用布隆过滤器的索引搜索 |
CN102968502A (zh) * | 2012-12-10 | 2013-03-13 | 北京锐安科技有限公司 | 一种支持逻辑组合状态更新的多模式内容匹配方法 |
CN103078754A (zh) * | 2012-12-29 | 2013-05-01 | 大连环宇移动科技有限公司 | 一种基于计数型bloom filter的网络数据流统计方法 |
CN103186669A (zh) * | 2013-03-21 | 2013-07-03 | 厦门雅迅网络股份有限公司 | 关键词快速过滤方法 |
CN103412858A (zh) * | 2012-07-02 | 2013-11-27 | 清华大学 | 用于文本或网络内容分析的大规模特征匹配的方法 |
CN103514404A (zh) * | 2012-06-29 | 2014-01-15 | 网秦无限(北京)科技有限公司 | 安全检测方法和安全检测装置 |
CN103544208A (zh) * | 2013-08-16 | 2014-01-29 | 东软集团股份有限公司 | 海量特征串集合的匹配方法及系统 |
CN106599097A (zh) * | 2016-11-24 | 2017-04-26 | 东软集团股份有限公司 | 海量特征串集合的匹配方法和装置 |
CN106980961A (zh) * | 2017-03-02 | 2017-07-25 | 中科天地互联网科技(苏州)有限公司 | 一种简历筛选匹配方法及系统 |
CN107870925A (zh) * | 2016-09-26 | 2018-04-03 | 华为技术有限公司 | 一种字符串过滤方法和相关装置 |
US10216748B1 (en) | 2015-09-30 | 2019-02-26 | EMC IP Holding Company LLC | Segment index access management in a de-duplication system |
CN109614486A (zh) * | 2018-11-28 | 2019-04-12 | 宇捷东方(北京)科技有限公司 | 一种基于自然语言处理技术的服务自动推送系统及方法 |
CN109685671A (zh) * | 2018-12-13 | 2019-04-26 | 平安医疗健康管理股份有限公司 | 基于机器学习的就诊数据异常识别方法、设备及存储介质 |
CN112053758A (zh) * | 2020-08-27 | 2020-12-08 | 北京颢云信息科技股份有限公司 | 一种单病种数据库智能构建及优化方法 |
CN113139379A (zh) * | 2020-01-20 | 2021-07-20 | 中国电信股份有限公司 | 信息识别方法和系统 |
CN113973019A (zh) * | 2021-12-27 | 2022-01-25 | 北京安博通科技股份有限公司 | 一种网络病毒检测方法及网络设备 |
CN114598616A (zh) * | 2022-05-09 | 2022-06-07 | 上海飞旗网络技术股份有限公司 | 一种解决实时海量数据的高效模式匹配方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776965B (zh) * | 2016-12-05 | 2019-11-26 | 东软集团股份有限公司 | 特征串集合的分组方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1510592B (zh) * | 2002-12-26 | 2010-04-28 | 中国科学院计算技术研究所 | 快速网络流特征检测的关键词匹配方法说明书 |
-
2007
- 2007-08-01 CN CN2007101198452A patent/CN101359325B/zh not_active Expired - Fee Related
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808210A (zh) * | 2009-02-18 | 2010-08-18 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
US9390134B2 (en) | 2009-07-29 | 2016-07-12 | Huawei Technologies Co., Ltd. | Regular expression matching method and system, and searching device |
CN102301342B (zh) * | 2009-07-29 | 2014-07-30 | 华为技术有限公司 | 正则表达式匹配方法和系统及查找装置 |
WO2011011916A1 (zh) * | 2009-07-29 | 2011-02-03 | 华为技术有限公司 | 正则表达式匹配方法和系统及查找装置 |
CN101782922B (zh) * | 2009-12-29 | 2012-01-18 | 山东山大鸥玛软件有限公司 | 一种面向海量数据检索的多级桶哈希索引方法 |
CN102782643B (zh) * | 2010-03-10 | 2016-06-08 | Emc公司 | 使用布隆过滤器的索引搜索 |
US9201949B2 (en) | 2010-03-10 | 2015-12-01 | Emc Corporation | Index searching using a bloom filter |
CN102782643A (zh) * | 2010-03-10 | 2012-11-14 | Emc公司 | 使用布隆过滤器的索引搜索 |
CN101901248B (zh) * | 2010-04-07 | 2012-08-15 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101848222A (zh) * | 2010-05-28 | 2010-09-29 | 武汉烽火网络有限责任公司 | 互联网深度报文检测方法和装置 |
CN101848222B (zh) * | 2010-05-28 | 2013-05-01 | 武汉烽火网络有限责任公司 | 互联网深度报文检测方法和装置 |
WO2011160392A1 (zh) * | 2010-06-23 | 2011-12-29 | 中兴通讯股份有限公司 | 名单管理方法及装置 |
CN101923568B (zh) * | 2010-06-23 | 2013-06-19 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
CN102298592A (zh) * | 2010-06-23 | 2011-12-28 | 中兴通讯股份有限公司 | 名单管理方法及装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
CN102253988A (zh) * | 2011-06-30 | 2011-11-23 | 北京新媒传信科技有限公司 | 网络文本服务中敏感词过滤的方法 |
CN102307189B (zh) * | 2011-08-18 | 2014-02-26 | 华为数字技术(成都)有限公司 | 恶意代码检测方法及网络设备 |
CN102307189A (zh) * | 2011-08-18 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 恶意代码检测方法及网络设备 |
CN102426836A (zh) * | 2011-08-25 | 2012-04-25 | 哈尔滨工业大学 | 基于分位数自适应裁剪的快速关键词检出方法 |
CN102426836B (zh) * | 2011-08-25 | 2013-03-20 | 哈尔滨工业大学 | 基于分位数自适应裁剪的快速关键词检出方法 |
CN103514404A (zh) * | 2012-06-29 | 2014-01-15 | 网秦无限(北京)科技有限公司 | 安全检测方法和安全检测装置 |
CN103412858A (zh) * | 2012-07-02 | 2013-11-27 | 清华大学 | 用于文本或网络内容分析的大规模特征匹配的方法 |
CN103412858B (zh) * | 2012-07-02 | 2016-09-21 | 清华大学 | 用于文本或网络内容分析的大规模特征匹配的方法 |
CN102968502A (zh) * | 2012-12-10 | 2013-03-13 | 北京锐安科技有限公司 | 一种支持逻辑组合状态更新的多模式内容匹配方法 |
CN102968502B (zh) * | 2012-12-10 | 2016-04-20 | 北京锐安科技有限公司 | 一种支持逻辑组合状态更新的多模式内容匹配方法 |
CN103078754B (zh) * | 2012-12-29 | 2016-09-28 | 大连环宇移动科技有限公司 | 一种基于计数型bloom filter的网络数据流统计方法 |
CN103078754A (zh) * | 2012-12-29 | 2013-05-01 | 大连环宇移动科技有限公司 | 一种基于计数型bloom filter的网络数据流统计方法 |
CN103186669B (zh) * | 2013-03-21 | 2018-07-06 | 厦门雅迅网络股份有限公司 | 关键词快速过滤方法 |
CN103186669A (zh) * | 2013-03-21 | 2013-07-03 | 厦门雅迅网络股份有限公司 | 关键词快速过滤方法 |
CN103544208A (zh) * | 2013-08-16 | 2014-01-29 | 东软集团股份有限公司 | 海量特征串集合的匹配方法及系统 |
CN103544208B (zh) * | 2013-08-16 | 2016-07-06 | 东软集团股份有限公司 | 海量特征串集合的匹配方法及系统 |
US10216748B1 (en) | 2015-09-30 | 2019-02-26 | EMC IP Holding Company LLC | Segment index access management in a de-duplication system |
CN107870925A (zh) * | 2016-09-26 | 2018-04-03 | 华为技术有限公司 | 一种字符串过滤方法和相关装置 |
CN106599097A (zh) * | 2016-11-24 | 2017-04-26 | 东软集团股份有限公司 | 海量特征串集合的匹配方法和装置 |
CN106980961A (zh) * | 2017-03-02 | 2017-07-25 | 中科天地互联网科技(苏州)有限公司 | 一种简历筛选匹配方法及系统 |
CN109614486A (zh) * | 2018-11-28 | 2019-04-12 | 宇捷东方(北京)科技有限公司 | 一种基于自然语言处理技术的服务自动推送系统及方法 |
CN109685671A (zh) * | 2018-12-13 | 2019-04-26 | 平安医疗健康管理股份有限公司 | 基于机器学习的就诊数据异常识别方法、设备及存储介质 |
CN113139379A (zh) * | 2020-01-20 | 2021-07-20 | 中国电信股份有限公司 | 信息识别方法和系统 |
CN113139379B (zh) * | 2020-01-20 | 2023-12-22 | 中国电信股份有限公司 | 信息识别方法和系统 |
CN112053758A (zh) * | 2020-08-27 | 2020-12-08 | 北京颢云信息科技股份有限公司 | 一种单病种数据库智能构建及优化方法 |
CN112053758B (zh) * | 2020-08-27 | 2024-04-16 | 北京颢云信息科技股份有限公司 | 一种单病种数据库智能构建方法 |
CN113973019A (zh) * | 2021-12-27 | 2022-01-25 | 北京安博通科技股份有限公司 | 一种网络病毒检测方法及网络设备 |
CN113973019B (zh) * | 2021-12-27 | 2022-04-01 | 北京安博通科技股份有限公司 | 一种网络病毒检测方法及网络设备 |
CN114598616A (zh) * | 2022-05-09 | 2022-06-07 | 上海飞旗网络技术股份有限公司 | 一种解决实时海量数据的高效模式匹配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101359325B (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101359325B (zh) | 一种快速内容分析的多关键词匹配方法 | |
CN101398820B (zh) | 一种大规模关键词匹配方法 | |
CN109241274B (zh) | 文本聚类方法及装置 | |
WO2017084506A1 (zh) | 搜索查询词纠错方法和装置 | |
US20210312139A1 (en) | Method and apparatus of generating semantic feature, method and apparatus of training model, electronic device, and storage medium | |
US8712989B2 (en) | Wild card auto completion | |
EP2585962B1 (en) | Password checking | |
US20080208833A1 (en) | Context snippet generation for book search system | |
CN100452055C (zh) | 一种用于文本或网络内容分析的大规模多关键词匹配方法 | |
US20040015909A1 (en) | System and method for regular expression matching using index | |
US9916314B2 (en) | File extraction method, computer product, file extracting apparatus, and file extracting system | |
CN111444330A (zh) | 提取短文本关键词的方法、装置、设备及存储介质 | |
CN112541074A (zh) | 日志解析方法、装置、服务器和存储介质 | |
CN110719106B (zh) | 一种基于节点分类排序的社交网络图压缩方法及系统 | |
US10460041B2 (en) | Efficient string search | |
CN105335481B (zh) | 一种大规模字符串文本的后缀索引构造方法及装置 | |
CN103412858A (zh) | 用于文本或网络内容分析的大规模特征匹配的方法 | |
CN106649338B (zh) | 信息过滤策略生成方法及装置 | |
CN112115313A (zh) | 正则表达式的生成、数据提取方法、装置、设备及介质 | |
CN112052413A (zh) | Url模糊匹配方法、装置和系统 | |
Shang et al. | Research on public opinion based on big data | |
US7747607B2 (en) | Determining logically-related sub-strings of a string | |
CN113282686B (zh) | 一种不平衡样本的关联规则确定方法及装置 | |
CN111737398A (zh) | 文本中的敏感词的检索方法、装置、电子设备及存储介质 | |
JP5339628B2 (ja) | 未知語を含む文章を分類するための文章分類プログラム、方法及び文章解析サーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100616 Termination date: 20130801 |