CN116028609B - 一种多关键词匹配方法和设备 - Google Patents
一种多关键词匹配方法和设备 Download PDFInfo
- Publication number
- CN116028609B CN116028609B CN202310111504.XA CN202310111504A CN116028609B CN 116028609 B CN116028609 B CN 116028609B CN 202310111504 A CN202310111504 A CN 202310111504A CN 116028609 B CN116028609 B CN 116028609B
- Authority
- CN
- China
- Prior art keywords
- keyword
- matching
- node
- preset
- subword
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000011218 segmentation Effects 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000012216 screening Methods 0.000 claims description 22
- 238000012790 confirmation Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 241000700605 Viruses Species 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 241000751139 Beauveria bassiana Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多关键词匹配方法和设备,该方法包括:获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各原始关键词进行分词处理,得到由多个子词组成的子词集合;根据子词集合与关键词集合之间的关联关系以及预设简化条件降低子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和简化集合进行匹配,得到待匹配数据中与简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各初步匹配位置与各原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果,从而在支持大容量关键词集合的情况下进一步提高了多关键词匹配的处理速率。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种多关键词匹配方法和设备。
背景技术
在计算机信息处理领域,多关键词匹配是一种基础且广泛应用的技术,但同时也是一项计算开销非常大的技术。特别是在DPI(DeepPacket Inspection,深度包检测)领域,多关键词匹配是关键技术,也是性能瓶颈所在。尤其当关键词增多之后(比如5000个以上),匹配性能更是会快速下降。
多关键词匹配有多种不同的实现平台和实现方法,如基于软件的各种匹配算法(如Brute-Force、KMP、ShiftOr、Aho-Corasick、BloomFilter、Wu.Manber、BDM,RF等);基于硬件的各种实现(如“结合字节比较器和存储器的实现”、“基于AC算法的硬件实现”、“基于TCAM的实现”、“基于BloomFilter的硬件实现等”)。但无论采用哪种实现技术,关键词数量的多少都是影响算法性能的一个重要因素,随着关键词规模的增加,算法的资源需求(内存、单位数据的处理时间等)也将迅速增加。尤其需要注意的是,虽然有一些多关键词匹配算法理论上是定速处理,不应随着关键词规模的增大而变慢(如Aho-Corasick算法,即AC算法)。但实际上,因工程实现的限制和存储系统层次的客观制约(如基于x86CPU芯片的计算机),当关键词规模增大时,因为访存范围的增加,必然导致CacheMiss的增加从而增加处理延时,因而导致理论定速匹配的算法在工程实现时依然随着关键词规模的增加而降低处理速度。
在骨干网数据在线处理领域(如安全检测、合法侦听等),多关键词匹配技术面临如下挑战。
1.处理速率要求高。随着技术的发展,骨干网的网络速度飞速提高,当前已经全面普及100Gbps级别线路,且下一步将向400Gbps级别线路演进。骨干网数据是典型的“流式数据”,即海量数据像大河一样流过线路,永不停顿,检测系统必须实时或准实时的对这些数据进行分析和处理,才能保证不漏过任何可疑数据,也不至于造成数据堆积。因此这对多关键词匹配的处理速率提出了极高的要求。
2.关键词容量要求大。在“病毒检测”、“僵木蠕检测”、“敏感信息检测”等技术领域,用户积累了大量的关键词特征(数万至数十万)。为了不遗漏任何可能的目标数据,用户往往需要加载全部或大部分已有的关键词特征规则。这一方面对关键词匹配算法的容量提出了很高的要求,更重要的是另一方面极大得增加了算法实现高处理速率的压力。
因此,如何在支持大容量关键词集合的情况下进一步提高多关键词匹配的处理速率,是目前有待解决的技术问题。
发明内容
本申请实施例公开了一种多关键词匹配方法和设备,用以在支持大容量关键词集合的情况下进一步提高多关键词匹配的处理速率。
第一方面,提供一种多关键词匹配方法,所述方法包括:获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各所述初步匹配位置的数据与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。
第二方面,提供一种多关键词匹配设备,所述设备包括:分词模块,用于获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;简化模块,用于根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;初筛模块,用于基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;确认模块,用于基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。
通过应用以上技术方案,获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各原始关键词进行分词处理,得到由多个子词组成的子词集合;根据子词集合与关键词集合之间的关联关系以及预设简化条件降低子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和简化集合进行匹配,得到待匹配数据中与简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各初步匹配位置与各原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。通过预筛和匹配确认二级处理流程的结合,在保证了匹配准确性的同时,实现了平均处理速率的提升,从而在支持大容量关键词集合的情况下进一步提高了多关键词匹配的处理速率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种多关键词匹配方法的流程示意图;
图2示出了本发明实施例中分词处理的原理示意图;
图3示出了本发明实施例中二部图的示意图;
图4示出了本发明实施例提出的一种多关键词匹配设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种多关键词匹配方法,如图1所示,该方法包括以下步骤:
步骤S101,获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合。
本实施例中,由多个原始关键词组成的关键词集合可以是用户输入的,也可以是从数据库或其他服务器获取的。基于预设分词算法对各所述原始关键词进行分词处理,将各原始关键词分成一个或多个子词,分词处理完成后,得到由多个子词组成的子词集合。
可选的,预设分词算法为包括最大匹配分词算法、dijkstra算法、N-dijkstra算法、n-gram模型算法、HMM模型算法、判别式模型分词算法、神经网络分词算法等算法中的任一种。
步骤S102,根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合。
本实施例中,对各原始关键词进行分词处理后得到各子词,因此,子词集合与关键词集合之间存在关联关系,根据该关联关系和预设简化条件对子词集合中子词进行筛选,降低子词集合中的子词数量,基于筛选出的各目标子词组成的简化集合。
在本申请一些实施例中,根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合,具体为:
根据所述关联关系生成二部图,所述二部图中包括与各所述子词对应的第一节点和与各所述原始关键词对应的第二节点,各所述第一节点和与自身关联的第二节点之间通过边连接;
根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合;
其中,所述预设简化条件为:所述原始关键词的数量与各所述目标子词的数量的比值不小于预设阈值。
本实施例中,先根据关联关系生成二部图,然后根据二部图和预设简化条件降低子词数量,通过二部图可更加高效的对子词的数量进行调整,从而更加高效的得到简化集合。
二部图中包括与各子词对应的第一节点和与各原始关键词对应的第二节点,各第一节点和与自身关联的第二节点之间通过边连接,预设简化条件为:原始关键词的数量与各目标子词的数量的比值不小于预设阈值,例如,若预设阈值为3,则表示使各目标子词的数量是原始关键词的数量的1/3以下。
在本申请具体的应用场景中,如图3所示为本发明实施例中二部图的示意图,该二部图中,左侧的各节点为与各子词对应的第一节点,右侧各节点为与各原始关键词对应的第二节点,例如,与子词“an”对应的第一节点通过两个边分别连接与原始关键词“Organization”和“enhancement”对应的第二节点,因此,与子词“an”对应的第一节点的度为2。再例如,与子词“er”对应的第一节点通过三个边分别连接与原始关键词“referring”、“Interesting”和“advertisement”对应的第二节点,因此,与子词“er”对应的第一节点的度为3。
在本申请一些实施例中,所述子词包括第一子词、第二子词和第三子词,所述第一子词的字符数量大于所述第二子词的字符数量,所述第二子词的字符数量大于所述第三子词的字符数量,与所述第一节点连接的所述边的数量为度,根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合,具体为:
若与当前第一节点对应的子词为所述第一子词或所述第二子词,且所述当前第一节点的度不小于预设阈值,将所述当前第一节点作为目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在与所述第一子词或所述第二子词对应的第一节点,且与所述当前第一节点对应的子词为所述第三子词,且所述当前第一节点的度为所述二部图中最大的一个,将所述当前第一节点作为所述目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在所述第二节点,根据各所述目标第一节点生成所述简化集合。
本实施例中,每个子词包括一定数量的字符,根据不同的字符数量将各子词划分为第一子词、第二子词和第三子词,第一子词的字符数量大于第二子词的字符数量,第二子词的字符数量大于第三子词的字符数量。先根据字符数量较大的第一子词和第二子词对应的度筛选出目标第一节点,并从二部图中删除与目标第一节点连接的边和第二节点,再根据字符数量最小的第三子词对应的度筛选出目标第一节点,并从二部图中删除与目标第一节点连接的边和第二节点,若二部图中不存在第二节点,说明筛选完成,根据各目标第一节点生成简化集合,从而实现更加高效的生成简化集合。
可选的,第一子词的字符数量为4,第二子词的字符数量为3,第三子词的字符数量为2。
步骤S103,基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置。
本实施例中,基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,对待匹配数据进行初筛,从待匹配数据中得到多个与简化集合匹配初步匹配位置。本领域技术人员可根据实际需要采用现有技术中不同的关键词匹配算法作为第一预设关键词匹配算法,这并不影响本申请的保护范围。
在本申请一些实施例中,所述第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置,具体为:
将所述简化集合作为输入规则编程加载至所述第一芯片;
将所述待匹配数据流式输入所述第一芯片,根据所述第一芯片的输出结果得到多个所述初步匹配位置。
本实施例中,第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,先基于符合BloomFilter算法的预设编程规则将简化集合作为输入规则编程加载至所述第一芯片,然后将待匹配数据流式输入第一芯片,第一芯片可执行将待匹配数据和简化集合进行匹配的过程,第一芯片可依次输出多个初步匹配位置,从而更加高效的得到多个初步匹配位置。
可选的,第一芯片采用多路并行最长前缀匹配(即PLPM)的方式执行将待匹配数据和简化集合进行匹配的过程,从而提高了匹配效率。
步骤S104,基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。
本实施例中,步骤S103中基于简化集合的数据预筛,虽然提高了匹配的速率,但负面影响是可能造成虚警,即所标记的一些初步匹配位置并不是真实的匹配。此外,步骤S103中得到的多个初步匹配位置实现的是与整个简化集合的匹配,而并不能区分具体匹配了哪一条目标子词,更无法确定可能匹配哪一条原始关键词,因此也需要确认过程来确定具体匹配的是哪一条原始关键词。具体的,基于第二预设关键词匹配算法将各初步匹配位置与各原始关键词进行匹配,输出最终匹配位置和与最终匹配位置对应的目标原始关键词,将该最终匹配位置和目标原始关键词作为最终匹配结果。
本领域技术人员可根据实际需要采用现有技术中不同的关键词匹配算法作为第二预设关键词匹配算法,这并不影响本申请的保护范围。
在本申请一些实施例中,所述第二预设关键词匹配算法基于TCAM芯片实现,各所述初步匹配位置带有标记信息,基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,具体为:
将各所述原始关键词作为输入规则编程到所述TCAM芯片;
基于各所述标记信息将各所述初步匹配位置依次输入所述TCAM芯片;
根据所述TCAM芯片的输出结果得到所述最终匹配位置和所述目标原始关键词。
本实施例中,第二预设关键词匹配算法基于TCAM(ternarycontentaddressablememory,三态内容寻址存储器)芯片实现,各初步匹配位置带有标记信息,各标记信息与各初步匹配位置是唯一对应的。在进行匹配时,先将各原始关键词作为输入规则编程到TCAM芯片,然后基于各标记信息将各初步匹配位置依次输入TCAM芯片,TCAM芯片将自动进行匹配,并输出最终匹配位置和对应的目标原始关键词,从而更加高效的得到最终匹配位置和目标原始关键词。
通过应用以上技术方案,获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各原始关键词进行分词处理,得到由多个子词组成的子词集合;根据子词集合与关键词集合之间的关联关系以及预设简化条件降低子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和简化集合进行匹配,得到待匹配数据中与简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各初步匹配位置与各原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果,通过预筛和匹配确认二级处理流程的结合,在保证了匹配准确性的同时,实现了平均处理速率的提升,从而在支持大容量关键词集合的情况下进一步提高了多关键词匹配的处理速率。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本申请实施例提供一种多关键词匹配方法,相应的核心要点如下:
(1)需要对由多个原始关键词组成的关键词集合进行分词,对子词集合与关键词集合之间的关联关系进行统计并生成二部图。
(2)需要依据上述二部图,寻找多个原始关键词的公共子词,用一个子词来代替多个原始关键词,得到简化集合,从而达到减少关键词数量和缩短关键词长度的简化效果。
(3)需要基于简化集合实现快速预筛并对预筛结果进行标记,从而提高处理速率。
(4)需要对标记的预筛结果进行确认,排除虚警,从而保证关键词匹配的正确性。
以下对具体的操作步骤进行说明。
步骤S100,分词与统计。
在本步骤,按照既定格式接受输入的关键词集合,然后进行N-Gram分词,对子词集合与关键词集合之间的关联关系进行统计并生成二部图。步骤S100的具体过程如下:
步骤S110,接收输入关键词集合S,初始化子词集合Ssub为空集,初始化二部图M为空集;
步骤S120,对关键词集合S中的每个原始关键词s(记为s=c1c2c3..cn),进行N-Gram方式的子词生成(仅生成3种子词长度),并入子词集合Ssub=Ssub+{c1c2,c2c3,..,cn-1cn,c1c2c3,c2c3c4,..,cn-2cn-1cn,c1c2c3c4,c2c3c4c5,..,cn-3cn-2cn-1cn};同时将原始关键词s切分生成的每一个子词ssub-x与原始关键词s的关联关系加入二部图M。
步骤S130,在二部图M中,对子词侧的节点进行连接边数的统计(即节点的度),并按照降序进行排序。
步骤S140,任务完成,输出结果为二部图M。
在本申请具体的应用场景中,如图2所示为分词处理的原理示意图,如图3所示为二部图的示意图。
步骤S200,简化集合生成。
本步骤中,需要用户输入一个压缩指导参数c,表示用户期望达到的压缩比(如c=3,表示用户期望简化集合中目标子词的数量是关键词集中原始关键词数量的1/3以下)。二部图M中一个节点p的度用D(p)表示。步骤S200的具体过程如下:
步骤S210,初始化简化集合Starget为空集,接收输入的二部图M。
步骤S220,在当前二部图M中,选择4B子词(即第一子词)中度最高的一个节点(即当前第一节点),记为ssub。若ssub不存在或D(ssub)<c,跳转S240。否则所将该第一子词纳入简化集合Starget=Starget+ssub;在二部图M中删除ssub以及所有和它相连的边和原始关键词。
步骤S230,若当前二部图右侧原始关键词节点数目为零,转步骤S280。否则更新二部图M,并对子词节点按照度重新进行降序排序,转步骤S220;
步骤S240,在当前二部图M中,选择3B子词(即第二子词)中度最高的一个节点(即当前第一节点),记为ssub。若ssub不存在或D(ssub)<c,跳转步骤S250。否则所将该第二子词纳入简化集合Starget=Starget+ssub;在二部图M中删除ssub以及所有和它相连的边和原始关键词。
步骤S250,若当前二部图右侧原始关键词节点数目为零,转步骤S280。否则更新二部图M,并对子词节点按照度重新进行降序排序,转步骤S240;
步骤S260,在当前二部图M中,选择2B子词(即第三子词)中度最高的一个节点(即当前第一节点),记为ssub。将该第三子词纳入简化集合Starget=Starget+ssub;在二部图M中删除ssub以及所有和它相连的边和原始关键词。
步骤S270,若当前二部图M右侧原始关键词节点数目为零,转步骤S280。否则更新二部图M,并对子词节点按照度重新进行降序排序,转步骤S260;
步骤S280,任务结束,输出处理结果:简化集合Starget。
步骤S300,数据预筛。
数据预筛是实现高速筛选匹配的关键所在,可以有多种实现方式。本示例选择基于BloomFilter算法的硬件实现方法,步骤S300的具体过程如下:
步骤S310,以步骤S200过程生成的简化集合Starget为输入规则,接收输入的待匹配数据流Dflow。
步骤S320,使用标准BloomFilter编程过程,将简化集合Starget编程加载至BloomFilter(此处建议选择多路并行最长前缀匹配BlommFilter,即PLPM,含2B/3B/4B四种不同长度的前缀)。
步骤S330,使用PLPM流式处理输入的待匹配数据流Dflow,并对匹配的位置(即初步匹配位置)生成标记信息,结果并入标记信息Dmatchspot;
步骤S340,流水化处理待匹配数据流Dflow,并将标记信息Dmatchspot流水式的向下一个处理过程传递(步骤S400);
步骤S350,输入的待匹配数据流Dflow处理完毕,本流程结束。
步骤S400,匹配确认。
本实施例中,步骤S300描述的基于简化集合的数据预筛,虽然提高了匹配的速率,但负面影响是可能造成虚警,即所标记的一些初步匹配位置并不是真实的匹配。此外,基于BloomFilter过滤器的预筛实现,实现的是与整个简化集合的匹配,而并不能区分具体匹配了哪一条目标子词,更无法确定可能匹配哪一条原始关键词,因此也需要确认过程来确定具体匹配的是哪一条原始关键词。
在实现匹配确认时,有多种方法可以选择。本示例选择基于TCAM芯片的原始关键词确认方法,步骤S400的具体过程如下:
步骤S410,接收关键词集合S,并将关键词集合S中的原始关键词编程进入TCAM芯片。
步骤S420,获取步骤S300过程传递过来的标记信息Dmatchspot,对与第一个标记信息对应的初步匹配位置,按照常规TCAM匹配流程进行匹配,并记录真正匹配的最终匹配位置和与最终匹配位置对应的目标原始关键词,用集合Rmatch表示。
步骤S430,删除标记信息Dmatchspot中的第一个标记信息。
步骤S440,根据下一个标记信息确定新的初步匹配位置,执行步骤S420。
步骤S450,若标记信息Dmatchspot为空且所有输入数据已处理完毕,跳转步骤S470,否则继续。
步骤S460,若标记信息Dmatchspot不为空,跳转步骤S440。
步骤S470,任务结束,输出最终匹配结果:Rmatch。
与现有技术对比,本申请实施例具备以下有益效果:
1、通过对关键词集合进行简化处理,生成的简化集合的规模可以大幅缩小,其数量通常可以达到关键词集合的三分之一以下,最小甚至可以达到百分之十以内。
2、通过使用简化集合代替关键词集合进行预筛,在相同资源消耗(如CPU时间,内存开销,FPGA硬件资源等)的前提下,可以大幅提升预筛的处理速率。例如,在关键词规模为20万条的某个病毒库测试中,简化集合的规模在2万条以内,使用PLPM基于FPGA实现的预筛算法,在相同硬件资源条件下,处理速率提升了10倍。
3、通过预筛和匹配确认二级处理流程的结合,在保证了匹配准确性的同时实现了平均处理速率的提升,达到了更好的综合处理效果。
本申请实施例还提出了一种多关键词匹配设备,如图4所示,所述设备包括:
分词模块401,用于获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;
简化模块402,用于根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;
初筛模块403,用于基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;
确认模块404,用于基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。
在具体的应用场景中,简化模块402,具体用于:
根据所述关联关系生成二部图,所述二部图中包括与各所述子词对应的第一节点和与各所述原始关键词对应的第二节点,各所述第一节点和与自身关联的第二节点之间通过边连接;
根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合;
其中,所述预设简化条件为:所述原始关键词的数量与各所述目标子词的数量的比值不小于预设阈值。
在具体的应用场景中,所述子词包括第一子词、第二子词和第三子词,所述第一子词的字符数量大于所述第二子词的字符数量,所述第二子词的字符数量大于所述第三子词的字符数量,与所述第一节点连接的所述边的数量为度,简化模块402,还具体用于:
若与当前第一节点对应的子词为所述第一子词或所述第二子词,且所述当前第一节点的度不小于预设阈值,将所述当前第一节点作为目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在与所述第一子词或所述第二子词对应的第一节点,且与所述当前第一节点对应的子词为所述第三子词,且所述当前第一节点的度为所述二部图中最大的一个,将所述当前第一节点作为所述目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在所述第二节点,根据各所述目标第一节点生成所述简化集合。
在具体的应用场景中,所述第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,初筛模块403,具体用于:
将所述简化集合作为输入规则编程加载至所述第一芯片;
将所述待匹配数据流式输入所述第一芯片,根据所述第一芯片的输出结果得到多个所述初步匹配位置。
在具体的应用场景中,所述第二预设关键词匹配算法基于TCAM芯片实现,各所述初步匹配位置带有标记信息,确认模块404,具体用于:
将各所述原始关键词作为输入规则编程到所述TCAM芯片;
基于各所述标记信息将各所述初步匹配位置依次输入所述TCAM芯片;
根据所述TCAM芯片的输出结果得到所述最终匹配位置和所述目标原始关键词。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (6)
1.一种多关键词匹配方法,其特征在于,所述方法包括:
获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;
根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;
基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;
基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果;
根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合,具体为:
根据所述关联关系生成二部图,所述二部图中包括与各所述子词对应的第一节点和与各所述原始关键词对应的第二节点,各所述第一节点和与自身关联的第二节点之间通过边连接;
根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合;
其中,所述预设简化条件为:所述原始关键词的数量与各所述目标子词的数量的比值不小于预设阈值;
所述子词包括第一子词、第二子词和第三子词,所述第一子词的字符数量大于所述第二子词的字符数量,所述第二子词的字符数量大于所述第三子词的字符数量,与所述第一节点连接的所述边的数量为度,根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合,具体为:
若与当前第一节点对应的子词为所述第一子词或所述第二子词,且所述当前第一节点的度不小于预设阈值,将所述当前第一节点作为目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在与所述第一子词或所述第二子词对应的第一节点,且与所述当前第一节点对应的子词为所述第三子词,且所述当前第一节点的度为所述二部图中最大的一个,将所述当前第一节点作为所述目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在所述第二节点,根据各所述目标第一节点生成所述简化集合。
2.如权利要求1所述的方法,其特征在于,所述第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置,具体为:
将所述简化集合作为输入规则编程加载至所述第一芯片;
将所述待匹配数据流式输入所述第一芯片,根据所述第一芯片的输出结果得到多个所述初步匹配位置。
3.如权利要求1所述的方法,其特征在于,所述第二预设关键词匹配算法基于TCAM芯片实现,各所述初步匹配位置带有标记信息,基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,具体为:
将各所述原始关键词作为输入规则编程到所述TCAM芯片;
基于各所述标记信息将各所述初步匹配位置依次输入所述TCAM芯片;
根据所述TCAM芯片的输出结果得到所述最终匹配位置和所述目标原始关键词。
4.一种多关键词匹配设备,其特征在于,所述设备包括:
分词模块,用于获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;
简化模块,用于根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;
初筛模块,用于基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;
确认模块,用于基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果;
所述简化模块,具体用于:
根据所述关联关系生成二部图,所述二部图中包括与各所述子词对应的第一节点和与各所述原始关键词对应的第二节点,各所述第一节点和与自身关联的第二节点之间通过边连接;
根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合;
其中,所述预设简化条件为:所述原始关键词的数量与各所述目标子词的数量的比值不小于预设阈值;
所述子词包括第一子词、第二子词和第三子词,所述第一子词的字符数量大于所述第二子词的字符数量,所述第二子词的字符数量大于所述第三子词的字符数量,与所述第一节点连接的所述边的数量为度,所述简化模块,还具体用于:
若与当前第一节点对应的子词为所述第一子词或所述第二子词,且所述当前第一节点的度不小于预设阈值,将所述当前第一节点作为目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在与所述第一子词或所述第二子词对应的第一节点,且与所述当前第一节点对应的子词为所述第三子词,且所述当前第一节点的度为所述二部图中最大的一个,将所述当前第一节点作为所述目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;
若所述二部图中不存在所述第二节点,根据各所述目标第一节点生成所述简化集合。
5.如权利要求4所述的设备,其特征在于,所述第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,所述初筛模块,具体用于:
将所述简化集合作为输入规则编程加载至所述第一芯片;
将所述待匹配数据流式输入所述第一芯片,根据所述第一芯片的输出结果得到多个所述初步匹配位置。
6.如权利要求4所述的设备,其特征在于,所述第二预设关键词匹配算法基于TCAM芯片实现,各所述初步匹配位置带有标记信息,所述确认模块,具体用于:
将各所述原始关键词作为输入规则编程到所述TCAM芯片;
基于各所述标记信息将各所述初步匹配位置依次输入所述TCAM芯片;
根据所述TCAM芯片的输出结果得到所述最终匹配位置和所述目标原始关键词。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111504.XA CN116028609B (zh) | 2023-02-14 | 2023-02-14 | 一种多关键词匹配方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111504.XA CN116028609B (zh) | 2023-02-14 | 2023-02-14 | 一种多关键词匹配方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116028609A CN116028609A (zh) | 2023-04-28 |
CN116028609B true CN116028609B (zh) | 2024-02-27 |
Family
ID=86072274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111504.XA Active CN116028609B (zh) | 2023-02-14 | 2023-02-14 | 一种多关键词匹配方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028609B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398820A (zh) * | 2007-09-24 | 2009-04-01 | 北京启明星辰信息技术有限公司 | 一种大规模关键词匹配方法 |
CN111553156A (zh) * | 2020-05-25 | 2020-08-18 | 支付宝(杭州)信息技术有限公司 | 一种关键词提取方法、装置及设备 |
CN112070550A (zh) * | 2020-09-11 | 2020-12-11 | 汉海信息技术(上海)有限公司 | 基于搜索平台的关键词确定方法、装置、设备及存储介质 |
CN112926310A (zh) * | 2019-12-06 | 2021-06-08 | 北京搜狗科技发展有限公司 | 一种关键词提取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078884B (zh) * | 2019-12-13 | 2023-08-15 | 北京小米智能科技有限公司 | 一种关键词提取方法、装置及介质 |
-
2023
- 2023-02-14 CN CN202310111504.XA patent/CN116028609B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398820A (zh) * | 2007-09-24 | 2009-04-01 | 北京启明星辰信息技术有限公司 | 一种大规模关键词匹配方法 |
CN112926310A (zh) * | 2019-12-06 | 2021-06-08 | 北京搜狗科技发展有限公司 | 一种关键词提取方法及装置 |
CN111553156A (zh) * | 2020-05-25 | 2020-08-18 | 支付宝(杭州)信息技术有限公司 | 一种关键词提取方法、装置及设备 |
CN112070550A (zh) * | 2020-09-11 | 2020-12-11 | 汉海信息技术(上海)有限公司 | 基于搜索平台的关键词确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116028609A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241274B (zh) | 文本聚类方法及装置 | |
US7756535B1 (en) | Lightweight content filtering system for mobile phones | |
JP5265378B2 (ja) | 高性能正規表現パターンマッチングのための方法および装置 | |
Kaukoranta et al. | A fast exact GLA based on code vector activity detection | |
CN112148359B (zh) | 一种基于子块过滤的分布式代码克隆检测与搜索方法、系统及介质 | |
CN101398820A (zh) | 一种大规模关键词匹配方法 | |
US10460041B2 (en) | Efficient string search | |
CN113111178B (zh) | 无监督的基于表示学习的同名作者消歧方法及装置 | |
CN108667678A (zh) | 一种基于大数据的运维日志安全检测方法及装置 | |
US9690873B2 (en) | System and method for bit-map based keyword spotting in communication traffic | |
Pasquadibisceglie et al. | Darwin: An online deep learning approach to handle concept drifts in predictive process monitoring | |
CN116992052B (zh) | 用于威胁情报领域的长文本摘要方法、装置和电子设备 | |
US8606772B1 (en) | Efficient multiple-keyword match technique with large dictionaries | |
CN116028609B (zh) | 一种多关键词匹配方法和设备 | |
CN112612810A (zh) | 慢sql语句识别方法及系统 | |
Wang et al. | Discerning edge influence for network embedding | |
CN116257601A (zh) | 一种基于深度学习的违法词库构建方法及系统 | |
Alghushairy et al. | An efficient local outlier factor for data stream processing: a case study | |
US11244156B1 (en) | Locality-sensitive hashing to clean and normalize text logs | |
Le et al. | Optimizing genetic algorithm in feature selection for named entity recognition | |
CN114332745A (zh) | 一种基于深度神经网络的近重复视频大数据清洗方法 | |
Chen et al. | Enhancing Cyber Threat Intelligence with Named Entity Recognition Using BERT-CRF | |
CN109241124A (zh) | 一种快速检索相似字符串的方法及系统 | |
WO2021072892A1 (zh) | 基于神经网络混合模型的法律条文检索方法及相关设备 | |
KR101881797B1 (ko) | 멀티 패턴 정책 탐지 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |