本申请涉及计算机,具体而言,涉及一种基于确定型有限自动机的文本检测方法、装置及设备。
背景技术:
1、随着计算机技术的快速发展,网络入侵、网络攻击等网络安全事件的发生频率也越来越高,为了防止网络安全事件的发生,进行网络安全检测显得尤为重要。目前,正则表达式通常被编译为有限自动机来执行检测任务,有限自动机分为确定型有限自动机(deterministic finite automaton,dfa)及非确定型有限自动机(non-deterministicfinite automaton,nfa)。由于dfa的检测性能更好,因此正则表达式检测匹配引擎通常会将nfa转换为dfa,由dfa对网络数据包(即待检测文本)进行匹配,以实现网络安全检测。
2、然而,在采用dfa对大型文本进行检测时,通常采用以下两种检测方式:一种是串行检测方式,另一种是基于猜测的并行检测方式,其中,串行检测方式存在检测效率低的问题,而基于猜测的并行检测方式的检测效率取决于猜测的准确性。
技术实现思路
1、有鉴于此,本申请的目的在于提供一种基于确定型有限自动机的文本检测方法、装置及设备,以解决现有技术中,检测效率低及检测效率不稳定的问题。
2、第一方面,本申请实施例提供了一种基于确定型有限自动机的文本检测方法,包括:
3、确定待检测文本中当前文本段的字符数量是否符合文本分割要求,当前文本段是基于前一分割字符确定的,前一分割字符为当前文本段之前的前一文本段的结束字符;
4、若符合文本分割要求,则从当前文本段中选取多个候选字符,确定每个候选字符转移为目标状态的次数;
5、根据次数从多个候选字符中选取当前文本段对应的当前分割字符,利用当前分割字符对当前文本段进行分割获得当前分割字符之后的新的当前文本段;
6、将当前分割字符作为新的前一分割字符,返回执行确定待检测文本中当前文本段的字符数量是否符合文本分割要求的步骤,直至确定待检测文本中的所有文本段;
7、利用多线程中设置的多个确定型有限自动机同时对所有文本段进行检测,获得待检测文本的文本检测结果。
8、可选地,确定每个候选字符转移为目标状态的次数,包括:从多个候选字符中选取目标候选字符;将目标候选字符对应的初始状态设置为目标状态,利用确定型有限自动机遍历目标候选字符之后的每个候选字符,获得该目标候选字符对应的状态组,状态组包括除目标候选字符及目标候选字符之前的候选字符外的每个候选字符对应的状态;将目标候选字符的下一个候选字符作为新的目标候选字符,返回执行将目标候选字符对应的初始状态设置为目标状态的步骤,直至所有候选字符均作为目标候选字符;根据所有目标候选字符对应的状态组,确定每个候选字符转移为目标状态的次数。
9、可选地,在获得待检测文本的文本检测结果之后,还包括:从多个文本段中选取目标文本段;确定目标文本段的前一文本段中的最后一个字符对应的状态是否为目标状态;若不是目标状态,则确定目标文本段的检测结果为不正确;将目标文本段对应的初始状态设置为前一文本段中的最后一个字符初始的状态,利用确定型有限自动机重新对目标文本段进行检测;将目标文本段的下一文本段作为目标文本段,返回执行确定目标文本段的前一文本段中的最后一个字符对应的状态是否为目标状态的步骤。
10、可选地,根据次数从多个候选字符中选取当前文本段对应的当前分割字符,包括:将目标状态出现次数最高的候选字符作为当前文本段对应的当前分割字符。
11、可选地,利用当前分割字符对当前文本段进行分割获得当前分割字符之后的新的当前文本段,包括:将当前文本段中的当前分割字符及处于当前分割字符之前的字符对应的文本作为新的前一文本段;将当前文本段中处于当前分割字符之后的字符对应的文本作为新的当前文本段。
12、可选地,在确定目标文本段的前一文本段中的最后一个字符对应的状态是否为目标状态之后,还包括:若是目标状态,则确定目标文本段的检测结果为正确。
13、可选地,若符合文本分割要求,则从当前文本段中选取多个候选字符,包括:选取当前文本段中前第一预设数量的字符之后的多个字符作为候选字符。
14、可选地,多线程的数量与多个文本段的数量相等。
15、第二方面,本申请实施例还提供了一种基于确定型有限自动机的文本检测装置,所述装置包括:
16、分割要求判断模块,用于确定待检测文本中当前文本段的字符数量是否符合文本分割要求,当前文本段是基于前一分割字符确定的,前一分割字符为当前文本段之前的前一文本段的结束字符;
17、转移次数确定模块,用于若符合文本分割要求,则从当前文本段中选取多个候选字符,确定每个候选字符转移为目标状态的次数;
18、文本段分割模块,用于根据次数从多个候选字符中选取当前文本段对应的当前分割字符,利用当前分割字符对当前文本段进行分割获得当前分割字符之后的新的当前文本段;
19、循环执行模块,用于将当前分割字符作为新的前一分割字符,返回执行确定待检测文本中当前文本段的字符数量是否符合文本分割要求的步骤,直至确定待检测文本中的所有文本段;
20、检测结果确定模块,用于利用多线程中设置的多个确定型有限自动机同时对所有文本段进行检测,获得待检测文本的文本检测结果。
21、第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的基于确定型有限自动机的文本检测方法的步骤。
22、本申请实施例带来了以下有益效果:
23、本申请实施例提供的一种基于确定型有限自动机的文本检测方法、装置及设备,能够根据候选字符转移为目标状态的次数来选取分割字符,利用多个分割字符将待检测文本分割为多个文本段,通过多线程同时对多个文本段进行dfa检测,获得整个待检测文本的文本检测结果,与现有技术中的基于确定型有限自动机的文本检测方法相比,解决了检测效率低及检测效率不稳定的问题。
24、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种基于确定型有限自动机的文本检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定每个候选字符转移为目标状态的次数,包括:
3.根据权利要求1所述的方法,其特征在于,在所述获得所述待检测文本的文本检测结果之后,还包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述次数从所述多个候选字符中选取所述当前文本段对应的当前分割字符,包括:
5.根据权利要求1所述的方法,其特征在于,所述利用所述当前分割字符对所述当前文本段进行分割获得所述当前分割字符之后的新的当前文本段,包括:
6.根据权利要求3所述的方法,其特征在于,在所述确定所述目标文本段的前一文本段中的最后一个字符对应的状态是否为目标状态之后,还包括:
7.根据权利要求1所述的方法,其特征在于,所述若符合文本分割要求,则从当前文本段中选取多个候选字符,包括:
8.根据权利要求1所述的方法,其特征在于,所述多线程的数量与多个文本段的数量相等。
9.一种基于确定型有限自动机的文本检测装置,其特征在于,包括:
10.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至8中任一项所述的基于确定型有限自动机的文本检测方法的步骤。