发明内容
针对现有技术存在的问题,本发明实施例提供一种文本匹配处理方法及装置。
本发明实施例提供一种文本匹配处理方法,包括:
获取待匹配文本;
采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
可选地,所述采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,包括:
采用AC自动机对所述待匹配文本进行扫描,获得所述待匹配文本中的定长模式子串,根据所述定长模式子串建立模式串匹配进度的映射关系表,以及根据所述定长模式子串和所述映射关系表获得匹配结果。
可选地,所述根据所述定长模式子串建立模式串匹配进度的映射关系表,以及根据所述定长模式子串和所述映射关系表获得匹配结果,包括:
更新步骤:获得当前的定长模式子串,确定当前的定长模式子串是模式串的首个定长模式子串,建立或更新模式串匹配进度的映射关系表,映射关系表包括模式串和定长模式子串的索引值;
获取步骤:确定当前的定长模式子串对应的模式串存在于所述映射关系表,则获得当前的定长模式子串的索引值;
判断步骤:确定当前定长模式子串的索引值和所述映射关系表中当前定长模式子串对应的模式串对应的索引值是否满足匹配条件,并更新模式串匹配进度的映射关系表;
匹配步骤:重复执行获取步骤和判断步骤,直到对所述待匹配文本扫描完成,确定所述映射关系表中模式串对应的索引值与时定长模式子串对应的最大索引值相同,则确定模式串匹配成功。
可选地,所述匹配条件包括:当前的定长模式子串的索引值与映射关系表中当前的定长模式子串对应的模式串对应的索引值之间的差值为1,其中当前的定长模式子串的索引值大于映射关系表中当前的定长模式子串对应的模式串对应的索引值。
第二方面,本发明实施例提供一种文本匹配处理装置,包括:
获取模块,用于获取待匹配文本;
处理模块,用于采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
可选地,所述处理模块具体用于:
采用AC自动机对所述待匹配文本进行扫描,获得所述待匹配文本中的定长模式子串,根据所述定长模式子串建立模式串匹配进度的映射关系表,以及根据所述定长模式子串和所述映射关系表获得匹配结果。
可选地,所述处理模块包括:
更新单元,用于获得当前的定长模式子串,确定当前的定长模式子串是模式串的首个定长模式子串,建立或更新模式串匹配进度的映射关系表,映射关系表包括模式串和定长模式子串的索引值;
获取单元,用于确定当前的定长模式子串对应的模式串存在于所述映射关系表,则获得当前的定长模式子串的索引值;
判断单元,用于确定当前定长模式子串的索引值和所述映射关系表中当前定长模式子串对应的模式串对应的索引值是否满足匹配条件,并更新模式串匹配进度的映射关系表;
匹配单元,用于对所述待匹配文本扫描完成后,确定所述映射关系表中模式串对应的索引值与定长模式子串对应的最大索引值相同,则确定模式串匹配成功。
可选地,所述匹配条件包括:当前的定长模式子串的索引值与映射关系表中当前的定长模式子串对应的模式串对应的索引值之间的差值为1,其中当前的定长模式子串的索引值大于映射关系表中当前的定长模式子串对应的模式串对应的索引值。
第三方面,本发明实施例一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述文本匹配处理方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述文本匹配处理方法的步骤。
本发明实施例提供的一种文本匹配处理方法及装置,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证信息安全。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在文本搜索技术领域中,一般采用AC(Aho-Corasick automaton)自动机进行多模式精确串匹配。但该自动机的匹配性能不强依赖于模式串集合数量。故当“字符集”及“模式串集合数量”较大时,AC自动机内存空间非常大,生成所有字符集的跳转函数容易发生内存溢出错误,影响文本匹配,进而影响对网络中文本的安全判断。
为此,图1示出了本发明一实施例提供的一种文本匹配处理方法,包括:
S11、获取待匹配文本;
S12、采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
针对步骤S11和步骤S12,需要说明的是,在本发明实施例中,文本是字符串的集合,对文件进行匹配搜索以判断是否能够匹配欲查询的字符串(即模式串)。进行文本匹配需要获取一段文本(即待匹配文本)。为了确定网络中出现的文本是否安全,即判断风险类型是安全还是非安全,故采用抓取方式从网络中获取待匹配文本。
在本发明实施例中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。由此可知,本实施例所述的AC自动机与原有AC自动机不同。由于AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,因此,在对待匹配文本进行匹配过程中,需涉及到定长模式子串、定长模式子串索引值的判断及比较等过程。
在本发明实施例中的进一步实施例中,对原始模式串(即建立AC自动机时所需的模式串)进行划分,划分过程采用定长划分,定长划分是指按预设字符串长度对原始模式串进行划分。如原始模式串为“abcdef”,定长为3个字符长度,则原始模式串划分为两个定长模式子串“abc”和“def”。
对原始模式串进行划分后,会产生定长模式子串集合,根据定长模式子串集合采用现有的AC自动机构建方式可以构建本发明实施例提及的AC自动机。构建过程中,需要同步记录每个定长模式子串在对应的原始模式串中的索引。通常情况下,索引值采用“0、1、2、3、4……”。以上述的原始模式串“abcdef”为例,其两个定长模式子串“abc”和“def”对应的索引值为0和1。
本发明实施例提供的一种文本匹配处理方法,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证信息安全。
图2示出了本发明一实施例提供的一种文本匹配处理方法,包括:
S21、获取待匹配文本;
S22、采用AC自动机对所述待匹配文本进行扫描,获得所述待匹配文本中的定长模式子串,根据所述定长模式子串建立模式串匹配进度的映射关系表,以及根据所述定长模式子串和所述映射关系表获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
针对步骤S21-步骤22,需要说明的是,本发明实施例提及的AC自动机在上述实施例中有详细说明,在此不再赘述。
在本发明实施例中,采用AC自动机对待匹配文本进行扫描,扫描过程中需按字符顺序依次扫描匹配。在待匹配文本中会扫描出定长模式子串,由于定长模式子串会对应不同的模式串,因此,可以根据扫描出的定长模式子串建立模式串匹配进度的映射关系表。在该映射关系表中,既然是记录模式串匹配进度,因此,映射关系表包括模式串和当前匹配到模式串中哪一个定长模式子串的索引值。
例如:模式串为“abcdefhij”,其包括三个定长模式子串“abc”、“def”和“hij”,索引值分别为0、1、2。当该模式串在文本匹配中已匹配到“def”,则映射关系表中有关模式串“abcdefhij”的映射关系是:“abcdefhij”—“1”。
由于映射关系表的存在,当再次扫描到其他定长模式子串后,会根据定长模式子串在映射关系表中进行分析处理,从而得到整个文本匹配过程中是否成功完成对模式串的匹配。
本发明实施例提供的一种文本匹配处理方法,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理,建立模式串匹配进度的映射关系表,并根据扫描出的定长模式子串和映射关系表获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证信息安全。
图3示出了本发明一实施例提供的一种文本匹配处理方法,包括:
S31、获取待匹配文本;
S32、获得当前的定长模式子串,确定当前的定长模式子串是模式串的首个定长模式子串,建立或更新模式串匹配进度的映射关系表,映射关系表包括模式串和定长模式子串的索引值;
S33、确定当前的定长模式子串对应的模式串存在于所述映射关系表,则获得当前的定长模式子串的索引值;
S34、确定当前定长模式子串的索引值和所述映射关系表中当前定长模式子串对应的模式串对应的索引值是否满足匹配条件,并更新模式串匹配进度的映射关系表;
S35、使步骤S33和步骤S34重复执行,直到对所述待匹配文本扫描完成,确定所述映射关系表中模式串对应的索引值与定长模式子串对应的最大索引值相同,则确定模式串匹配成功,以确定所述待匹配文本存在风险;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
针对步骤S31-步骤S35,需要说明的是,本发明实施例提及的AC自动机在上述实施例中有详细说明,在此不再赘述。
对待匹配文件进行字符扫描,当首次获得字符串为一个定长模式子串,确定该定长模式子串是否是某一个模式串的首个定长模式子串,当确定其属于某一个模式串的首个定长模式子串时,则建立模式串匹配进度的映射关系表,映射关系表包括模式串和定长模式子串的索引值,在这里此时的定长模式子串的索引值为该模式串的首个定长模式子串的索引值,即为0。
模式串匹配进度的映射关系表建立之后,当再次获得字符串为一个定长模式子串后,会判断该定长模式子串是否在目前的映射关系表中,当不在映射关系表中,则确定该定长模式子串是否是某一个模式串的首个定长模式子串。若是,则将在映射关系表中添加其对应的模式串及对应的索引值。
在本发明实施例中,判断定长模式子串是否是某一个模式串的首个定长模式子串,则以索引值是否为0为依准。
当该定长模式子串不是某一个模式串的首个定长模式子串,则放弃该定长模式子串,继续对文本中后续的字符进行扫描。
当确定当前的定长模式子串对应的模式串存在于所述映射关系表,则获得当前的定长模式子串的索引值。
确定当前的定长模式子串的索引值和所述映射关系表中当前的定长模式子串对应的模式串对应的索引值满足匹配条件,则更新模式串匹配进度的映射关系表。
在本发明实施例中,匹配条件包括:当前的定长模式子串的索引值与映射关系表中当前的定长模式子串对应的模式串对应的索引值之间的差值为1,其中当前的定长模式子串的索引值大于映射关系表中当前的定长模式子串对应的模式串对应的索引值。该匹配条件能够判断从待匹配文本中扫描到的两个定长模式子串为相邻的两个定长模式子串,从而对模式串匹配进度的映射关系表进行更新。
当满足匹配条件时,更新模式串匹配进度的映射关系表,在这里的更新过程是将模式串对应的索引值更新为当前的定长模式子串的索引值。
继续对文本进行字符扫描,并使步骤S33和步骤S34重复执行,直到对待匹配文本扫描完成,然后确定映射关系表中模式串对应的索引值与模式串划分定长模式子串时定长模式子串对应的最大索引值相同,则确定相应的模式串匹配成功,以确定待匹配文本存在风险。
下面以具体实例对上述过程进行解释说明:
例如模式串分别为“abcdef”、“abclku”、“acdkmn”。
以定长为3个字符,“abcdef”的定长模式子串分别为“abc”和“def”。“abclku”的定长模式子串分别为“abc”和“lku”,“acdkmn”的定长模式子串分别为“acd”和“kmn”。
待匹配文本为“qweabcdefacdopracdkmn”。
对待匹配文件进行字符依次扫描,当扫描到“abc”才会获得定长模式子串,故建立模式串匹配进度的映射关系表,如下:
(“abcdef”—“0”)
(“abclku”—“0”)
继续扫描,当扫描到“def”又获得定长模式子串。经判断,“def”所对应的模式串“abcdef”已出现在映射关系表中,此时获得“def”的索引值为“1”。
“def”的索引值“1”与映射关系表中模式串“abcdef”对应的索引值“0”之间的差值为1。故满足匹配条件,更新模式串匹配进度的映射关系表,如下:
(“abcdef”—“1”)
(“abclku”—“0”)
继续扫描,当扫描到“acd”又获得定长模式子串,经判断,“acd”所对应的模式串“acdkmn”未出现在映射关系表中,此时,判断“acd”的索引值是模式串“acdkmn”的首位定长模式子串的索引值,即为0。故更新模式串匹配进度的映射关系表,如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“acdkmn”—“0”)
继续扫描,当再次扫描到“acd”又获得定长模式子串,经判断,“acd”所对应的模式串“acdkmn”已出现在映射关系表中,此时获得“acd”的索引值为“0”。
“acd”的索引值“0”与映射关系表中模式串“acdkmn”对应的索引值“0”之间的差值为0。故不满足匹配条件,不更新模式串匹配进度的映射关系表,即映射关系表不变,如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“acdkmn”—“0”)
需要说明的是,当扫描过程中一些字符无法组成定长模式子串,则继续扫描后续的字符。直到获得定长模式子串,才会进行上述的处理过程。
图4为本发明实施例所述文本匹配处理方法的具体流程示意图,该图从模式串划分、AC自动机构建到文本匹配整个过程,由于图中过程在上述内容中有详细说明,在此不再结合附图4进行说明。
本发明实施例提供的一种文本匹配处理方法,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理,建立模式串匹配进度的映射关系表,并根据扫描出的定长模式子串和映射关系表获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证信息安全。
图5示出了本发明一实施例提供的一种文本匹配处理装置,包括获取模块51和处理模块52,其中:
获取模块51,用于获取待匹配文本;
处理模块52,用于采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
由于本发明实施例所述装置与上述实施例所述方法的原理相同,对于更加详细的解释内容在此不再赘述。
需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
本发明实施例提供的一种文本匹配处理装置,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证网络安全。
本发明一实施例提供的一种文本匹配处理装置,包括获取模块和处理模块,其中:
获取模块,用于获取待匹配文本;
处理模块,用于采用AC自动机对所述待匹配文本进行扫描,获得所述待匹配文本中的定长模式子串,根据所述定长模式子串建立模式串匹配进度的映射关系表,以及根据所述定长模式子串和所述映射关系表获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
由于本发明实施例所述装置与上述实施例所述方法的原理相同,对于更加详细的解释内容在此不再赘述。
需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
本发明实施例提供的一种文本匹配处理装置,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理,建立模式串匹配进度的映射关系表,并根据扫描出的定长模式子串和映射关系表获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证信息安全。
图6示出了本发明一实施例提供的一种文本匹配处理装置,包括获取模块61和处理模块,所述处理模块包括更新单元621、获取单元622、判断单元623和匹配单元624,其中:
获取模块61,用于获取待匹配文本;
更新单元621,用于获得当前的定长模式子串,确定当前的定长模式子串是模式串的首个定长模式子串,则建立或更新模式串匹配进度的映射关系表,映射关系表包括模式串和定长模式子串的索引值;
获取单元622,用于确定当前的定长模式子串对应的模式串存在于所述映射关系表,则获得当前的定长模式子串的索引值;
判断单元623,用于确定当前定长模式子串的索引值和所述映射关系表中当前的长模式子串对应的模式串对应的索引值是否满足匹配条件,并更新模式串匹配进度的映射关系表;
匹配单元624,用于对所述待匹配文本扫描完成后,确定所述映射关系表中模式串对应的索引值与定长模式子串对应的最大索引值相同,则确定模式串匹配成功,以确定所述待匹配文本存在风险;
其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
由于本发明实施例所述装置与上述实施例所述方法的原理相同,对于更加详细的解释内容在此不再赘述。
需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
本发明实施例提供的一种文本匹配处理装置,通过采用模式串划分得到的定长模式子串集合构建的AC自动机对文本进行匹配处理,建立模式串匹配进度的映射关系表,并根据扫描出的定长模式子串和映射关系表获得匹配结果,然后根据匹配结果确定所述待匹配文件的风险类别,实现建立内存可控的AC自动机,提高模式匹配的可靠性,保证信息安全。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)71、通信接口(Communications Interface)72、存储器(memory)73和通信总线74,其中,处理器71,通信接口72,存储器73通过通信总线74完成相互间的通信。处理器71可以调用存储器73中的逻辑指令,以执行如下方法:获取待匹配文本;采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
此外,上述的存储器73中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:获取待匹配文本;采用AC自动机对所述待匹配文本进行匹配处理获得匹配结果,根据匹配结果确定所述待匹配文件的风险类别;其中,所述AC自动机为采用模式串划分得到的定长模式子串集合构建的AC自动机,记录有定长模式子串在模式串中的索引值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。