一种多关键词匹配方法和设备组成比例

技术编号:37424979 阅读:9 留言:0更新日期:2023-04-30 09:46
本发明专利技术公开了一种多关键词匹配方法和设备,该方法包括:获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各原始关键词进行分词处理,得到由多个子词组成的子词集合;根据子词集合与关键词集合之间的关联关系以及预设简化条件降低子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和简化集合进行匹配,得到待匹配数据中与简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各初步匹配位置与各原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果,从而在支持大容量关键词集合的情况下进一步提高了多关键词匹配的处理速率。词匹配的处理速率。词匹配的处理速率。

【技术实现步骤摘要】
一种多关键词匹配方法和设备


[0001]本申请涉及计算机
,更具体地,涉及一种多关键词匹配方法和设备。

技术介绍

[0002]在计算机信息处理领域,多关键词匹配是一种基础且广泛应用的技术,但同时也是一项计算开销非常大的技术。特别是在DPI(DeepPacket Inspection,深度包检测)领域,多关键词匹配是关键技术,也是性能瓶颈所在。尤其当关键词增多之后(比如5000个以上),匹配性能更是会快速下降。
[0003]多关键词匹配有多种不同的实现平台和实现方法,如基于软件的各种匹配算法(如Brute

Force、KMP、ShiftOr、Aho

Corasick、BloomFilter、Wu.Manber、BDM,RF等);基于硬件的各种实现(如“结合字节比较器和存储器的实现”、“基于AC算法的硬件实现”、“基于TCAM的实现”、“基于BloomFilter的硬件实现等”)。但无论采用哪种实现技术,关键词数量的多少都是影响算法性能的一个重要因素,随着关键词规模的增加,算法的资源需求(内存、单位数据的处理时间等)也将迅速增加。尤其需要注意的是,虽然有一些多关键词匹配算法理论上是定速处理,不应随着关键词规模的增大而变慢(如Aho

Corasick算法,即AC算法)。但实际上,因工程实现的限制和存储系统层次的客观制约(如基于x86CPU芯片的计算机),当关键词规模增大时,因为访存范围的增加,必然导致CacheMiss的增加从而增加处理延时,因而导致理论定速匹配的算法在工程实现时依然随着关键词规模的增加而降低处理速度。
[0004]在骨干网数据在线处理领域(如安全检测、合法侦听等),多关键词匹配技术面临如下挑战。
[0005]1.处理速率要求高。随着技术的发展,骨干网的网络速度飞速提高,当前已经全面普及100Gbps级别线路,且下一步将向400Gbps级别线路演进。骨干网数据是典型的“流式数据”,即海量数据像大河一样流过线路,永不停顿,检测系统必须实时或准实时的对这些数据进行分析和处理,才能保证不漏过任何可疑数据,也不至于造成数据堆积。因此这对多关键词匹配的处理速率提出了极高的要求。
[0006]2.关键词容量要求大。在“病毒检测”、“僵木蠕检测”、“敏感信息检测”等
,用户积累了大量的关键词特征(数万至数十万)。为了不遗漏任何可能的目标数据,用户往往需要加载全部或大部分已有的关键词特征规则。这一方面对关键词匹配算法的容量提出了很高的要求,更重要的是另一方面极大得增加了算法实现高处理速率的压力。
[0007]因此,如何在支持大容量关键词集合的情况下进一步提高多关键词匹配的处理速率,是目前有待解决的技术问题。

技术实现思路

[0008]本申请实施例公开了一种多关键词匹配方法和设备,用以在支持大容量关键词集合的情况下进一步提高多关键词匹配的处理速率。
[0009]第一方面,提供一种多关键词匹配方法,所述方法包括:获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各所述初步匹配位置的数据与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。
[0010]第二方面,提供一种多关键词匹配设备,所述设备包括:分词模块,用于获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;简化模块,用于根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;初筛模块,用于基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;确认模块,用于基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。
[0011]通过应用以上技术方案,获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各原始关键词进行分词处理,得到由多个子词组成的子词集合;根据子词集合与关键词集合之间的关联关系以及预设简化条件降低子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和简化集合进行匹配,得到待匹配数据中与简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各初步匹配位置与各原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。通过预筛和匹配确认二级处理流程的结合,在保证了匹配准确性的同时,实现了平均处理速率的提升,从而在支持大容量关键词集合的情况下进一步提高了多关键词匹配的处理速率。
附图说明
[0012]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1示出了本专利技术实施例提出的一种多关键词匹配方法的流程示意图;
[0014]图2示出了本专利技术实施例中分词处理的原理示意图;
[0015]图3示出了本专利技术实施例中二部图的示意图;
[0016]图4示出了本专利技术实施例提出的一种多关键词匹配设备的结构示意图。
具体实施方式
[0017]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0018]本申请实施例提供一种多关键词匹配方法,如图1所示,该方法包括以下步骤:
[0019]步骤S101,获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合。
[0020]本实施例中,由多个原始关键词组成的关键词集合可以是用户输入的,也可以是从数据库或其他服务器获取的。基于预设分词算法对各所述原始关键词进行分词处理,将各原始关键词分成一个或多个子词,分词处理完成后,得到由多个子词组成的子词集合。
[0021]可选的,预设分词算法为包括最大匹配分词算法、dijkstra算法、N

dijkstra算法、n

gram模型算法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多关键词匹配方法,其特征在于,所述方法包括:获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。2.如权利要求1所述的方法,其特征在于,根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合,具体为:根据所述关联关系生成二部图,所述二部图中包括与各所述子词对应的第一节点和与各所述原始关键词对应的第二节点,各所述第一节点和与自身关联的第二节点之间通过边连接;根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合;其中,所述预设简化条件为:所述原始关键词的数量与各所述目标子词的数量的比值不小于预设阈值。3.如权利要求2所述的方法,其特征在于,所述子词包括第一子词、第二子词和第三子词,所述第一子词的字符数量大于所述第二子词的字符数量,所述第二子词的字符数量大于所述第三子词的字符数量,与所述第一节点连接的所述边的数量为度,根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合,具体为:若与当前第一节点对应的子词为所述第一子词或所述第二子词,且所述当前第一节点的度不小于预设阈值,将所述当前第一节点作为目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;若所述二部图中不存在与所述第一子词或所述第二子词对应的第一节点,且与所述当前第一节点对应的子词为所述第三子词,且所述当前第一节点的度为所述二部图中最大的一个,将所述当前第一节点作为所述目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;若所述二部图中不存在所述第二节点,根据各所述目标第一节点生成所述简化集合。4.如权利要求1所述的方法,其特征在于,所述第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置,具体为:将所述简化集合作为输入规则编程加载至所述第一芯片;将所述待匹配数据流式输入所述第一芯片,根据所述第一芯片的输出结果得到多个所述初步匹配位置。5.如权利要求1所述的方法,其特征在于,所述第二预设关键词匹配算法基于TCAM芯片实现,各所述初步匹配位置带有标记信息,基于第二预设关键词匹配算法将各所述初步匹
配位置与各所述原始关键词进行匹配,具体为:将各所述原始关键词作为输入规则编程到所述TCAM芯片;基于各所述...

【专利技术属性】
技术研发人员:李云照
申请(专利权)人:成都卓讯云网科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1