CN108304467B - 用于文本间匹配的方法 - Google Patents

用于文本间匹配的方法 Download PDF

Info

Publication number
CN108304467B
CN108304467B CN201711441800.7A CN201711441800A CN108304467B CN 108304467 B CN108304467 B CN 108304467B CN 201711441800 A CN201711441800 A CN 201711441800A CN 108304467 B CN108304467 B CN 108304467B
Authority
CN
China
Prior art keywords
node
tree structure
text
matched
storage table
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
Application number
CN201711441800.7A
Other languages
English (en)
Other versions
CN108304467A (zh
Inventor
王琪
何东杰
刘为怀
蒋丹妮
叶家炜
宋昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201711441800.7A priority Critical patent/CN108304467B/zh
Publication of CN108304467A publication Critical patent/CN108304467A/zh
Application granted granted Critical
Publication of CN108304467B publication Critical patent/CN108304467B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种用于文本间匹配的方法,包括如下各步骤:基于至少一个标识构建待匹配文本;基于感兴趣信息形成目标文本的集合;将待匹配文本按树结构进行解析;其中,树结构的根节点的每一个子节点对应于待匹配文本的至少一个字符;基于树结构来构建存储表;其中,存储表记录每个标识在树结构中所对应的至少一个节点,以及其中每个节点的节点位置以及节点状态;以及、基于存储表与目标文本的集合进行多模式匹配。其能够显著提升匹配运算的效率,并更高效地确定多个许可证所涉及的风险信息或不兼容信息,为开源软件开发企业提供可靠的风险防范措施。

Description

用于文本间匹配的方法
技术领域
本发明涉及一种用于文本间匹配的方法。
背景技术
在字符串模式匹配技术领域,主要的算法有:BM(Boyer-Moore)、Horspool、Sunday、KMP、KR、AC算法等,其中BM、Horspool、Sunday、KMP都为单模式匹配算法。设文本长度为n,集合P中字符串平均长度为k,单模式匹配最快可以做到O(m+k)的复杂度,但是,在多模式匹配的场合下,则需要O(mn+km)的复杂度;对于KR算法而言,最坏情况下需要O(k*m*n)的复杂度。可见,在多模式匹配的场合中,匹配效率存在恶化的趋势。
另一方面,随着开源软件的不断发展和完善,其地位日益重要,开源软件的许可证也伴随着开源软件而产生。然而,由于对开源软件的不正确使用,产生了许多法律上的问题,给开源软件的开发企业带来了很大的风险或隐患。
同时,许多开源软件都依赖其他的开源软件,而这些彼此依赖的开源软件使用的许可证复杂且不同,而这些许可证之间、及许可条款之间可能又存在各种兼容性问题,这也是使用开源软件的隐患。
发明内容
本发明的目的在于提供一种用于文本间匹配的方法,其能够提高多模式匹配的效率。
为实现上述目的,本发明提供一种技术方案如下:
一种用于文本间匹配的方法,包括如下各步骤:a)、基于至少一个标识构建待匹配文本;b)、基于感兴趣信息形成目标文本的集合;c)、将待匹配文本按树结构进行解析;其中,树结构的根节点的每一个子节点对应于待匹配文本的至少一个字符;d)、基于树结构来构建存储表;其中,存储表记录每个标识在树结构中所对应的至少一个节点,以及其中每个节点的节点位置以及节点状态;以及e)、基于存储表与目标文本的集合进行多模式匹配。
优选地,存储表基于二维数组结构来构建。
优选地,步骤c)中:基于Aho-Corasick算法将待匹配文本按树结构进行解析。
优选地,存储表包括:每个节点对应的节点字符;每个节点所在的数组位置;每个节点的各子节点所在的数组位置;每个节点的各兄弟节点所在的数组位置;每个节点的输出状态;以及每个节点的FAIL节点所在的数字位置。
优选地,树结构按如下方式来定义:根节点的各直接子节点与各标识的首字符一一对应;各标识对应的字符串分别定义为树结构的相应子树。
优选地,标识为开源软件的许可证的键,感兴趣信息为开源软件所涉及的风险信息和/或不兼容信息。
本发明进一步提供一种确定开源软件的许可证是否存在风险或不兼容的方法,其包括:利用如上所述的多模式匹配方法来进行至少一个许可证的键与风险信息和/或不兼容信息之间的匹配。
本发明还公开一种文本间多模式匹配系统,包括:待匹配文本构建单元,用于基于至少一个标识构建待匹配文本;树结构形成单元,与待匹配文本构建单元耦合,用于将待匹配文本按树结构进行解析;其中,树结构的根节点的每一个子节点对应于待匹配文本的至少一个字符;表存储单元,与树结构形成单元耦合,用于基于树结构来构建存储表;其中,存储表记录每个标识在树结构中所对应的至少一个节点,以及其中每个节点的节点位置以及节点状态;以及多模式匹配单元,与表存储单元耦合,用于基于存储表与目标文本的集合进行多模式匹配。
本发明各实施例提供的用于文本间匹配的方法以及文本间多模式匹配系统,在多模式匹配的场合下,能够显著提升匹配运算的效率。在将这种匹配方法或系统应用于验证开源软件的许可证的应用中,能够更高效地确定多个许可证所涉及的风险信息或不兼容信息,为开源软件开发企业提供可靠的风险防范措施。
附图说明
图1示出本发明第一实施例提供的用于文本间匹配的方法的流程示意图。
图2示出本发明第二实施例提供的文本间多模式匹配系统的模块结构示意图。
图3示出根据本发明一实施例的树结构。
图4示出根据本发明一实施例的树结构的有限状态机图。
具体实施方式
在以下描述中提出具体细节,以便提供对本发明的透彻理解。然而,本领域的技术人员将清楚地知道,即使没有这些具体细节也可实施本发明的实施例。在本发明中,可进行具体的数字引用,例如“第一元件”、“第二装置”等。但是,具体数字引用不应当被理解为必须服从于其字面顺序,而是应被理解为“第一元件”与“第二元件”不同。
本发明所提出的具体细节只是示范性的,具体细节可以变化,但仍然落入本发明的精神和范围之内。术语“耦合”定义为表示直接连接到组件或者经由另一个组件而间接连接到组件。
以下通过参照附图来描述适于实现本发明的方法、系统和装置的优选实施例。虽然各实施例是针对元件的单个组合来描述,但是应理解,本发明包括所公开元件的所有可能组合。因此,如果一个实施例包括元件A、B和C,而第二实施例包括元件B和D,则本发明也应被认为包括A、B、C或D的其他剩余组合,即使没有明确公开。
如图1所示,本发明第一实施例提供一种用于文本间匹配的方法,其特别适用于多模式匹配,该方法包括以下各步骤。
步骤S10、基于至少一个标识构建待匹配文本。
不同的标识通常可以不同的字符串来表征。具体地,可以将多个标识的字符串按照一定的顺序拼接在一起,从而构建出待匹配文本。作为示例,待匹配文本中包括4个字符串元素,其中每个字符串表征一个独特的标识。
步骤S12、基于感兴趣信息形成目标文本的集合。
在该步骤中,基于感兴趣信息来形成目标文本的集合,该集合中可以包括多个目标文本。在希望获知风险的场合中,感兴趣信息可以从相应的风险信息中提取,在提取过程中,还可以应用查询、分析、检索、组合等信息处理方式。
步骤S14、将待匹配文本按树结构进行解析。
其中,树结构的根节点的每一个子节点对应于待匹配文本的至少一个字符。
需要说明的是,将待匹配文本按树结构进行解析并非意味着按照树结构来存储或进行后续计算,实际上,待匹配文本是在步骤S16中按照基于数组结构的存储表来存储的。
应理解,在现有技术中,传统的多模式匹配算法可能需要构建树结构,树结构主要包括基于数组和基于链表两种方式,基于数组的多模式匹配算法在构建树时,由于在每个节点保存所有字符的集合,存在着大量的空间浪费,在运算时对于内存要求过高。而基于链表的树结构虽然避免了空间浪费,但是因为查找中需要多次回溯至根节点,所以增加了查询复杂度,造成匹配效率较低。
为克服上述现有技术的缺陷,根据本发明上述实施例,将待匹配文本按树结构来解析,但是按照以下步骤S16中提出的存储表来存储及用于运算。优选情况下,基于Aho-Corasick算法(又称为AC自动机算法,简称AC算法)将待匹配文本按树结构进行解析。
作为示例,经由解析可形成基于AC算法的树结构,这种树结构具有以下特征:(1)、树结构根节点的各直接子节点与各标识的首字符一一对应。(2)、各标识对应的字符串分别定义为树结构的相应子树。
步骤S16、基于树结构来构建存储表。
具体来说,存储表记录每个标识在树结构中所对应的至少一个节点,以及其中每个节点的节点位置以及节点状态,存储表可以采用二维数据结构来表征。
在基于AC算法的应用场景下,在按照树结构进行解析之后,待匹配文本可以按存储表的形式来存储并参与后续的模式匹配运算。
作为示例,在解析形成基于AC算法的树结构的情况下,存储表可以直接包括关于树结构的以下信息:每个节点对应的节点字符;每个节点所在的数组位置;每个节点的各子节点所在的数组位置;每个节点的各兄弟节点所在的数组位置;每个节点的输出状态;以及,每个节点的FAIL节点所在的数字位置。
步骤S18、基于存储表与目标文本的集合进行多模式匹配。
在上述步骤S16中,存储表不仅直接反映了按照树结构来解析的待匹配文本,其中还包括每个字符所处的节点位置、子节点位置、兄弟节点位置,以及每个节点的状态(例如,节点的输出状态为“是”表示该节点能够对应于一个标识的字符串的尾字符),这种包含多种额外信息的数组结构相对于基于链表的树结构、以及基于简单数组结构的树结构,能够为多模式匹配运算带来显著的技术效果。
具体来说,利用存储表来进行多模式匹配运算,相比基于链表的树结构而言,会需要多一些的存储空间,但是,相比基于简单数组的树结构而言,则远远节省了空间;同时,由于查找字符是针对更像数组的存储表来进行,相比于基于链表的树结构,节省了回溯的时间,使得遍历速度更快、查找效率更高。最终,多模式匹配算法能够更高效地执行,在参与匹配的模式数量更多的场合,本发明提供的算法在执行效率上具有相当多的提升。
根据本发明一个实施例,上述用于文本间匹配的算法能够应用于确定开源软件的许可证是否存在风险或不兼容。在这种应用中,本文所述“标识”可以直接来源于开源软件的许可证的一个或多个键,“感兴趣信息”则来源于开源软件所涉及的风险信息和/或不兼容信息。
作为上述实施例的进一步改进,还可进一步地确定每个包含风险信息和/或不兼容信息的许可证的键在待匹配文本中的位置。
作为另一种改进,还可进一步确定各个包含风险信息和/或不兼容信息的许可证的键之间的共性;随之,又可以分析这种共性,进而对许可证的生成机制进行改进。
以下进一步说明上述实施例的一种具体执行方式。
一、假设许可证的键的集合为P{ba、bac、bat、acr},按照AC算法,构建待匹配文本(即许可证的键的集合)的树结构如图3所示。
二、树结构的节点的数据结构定义为:节点位置、节点字符、子节点位置、兄弟节点位置、是否输出、FAIL节点位置。构建基于二维数组结构的GOTO表采用如下具体方法:根节点不存储在数组当中,默认数组1的位置存储根节点的第一个子节点。初始化数组指示位置N=2,依次执行下述步骤:
a)依次拿出集合P中的每个字符串Si,同时将字符串指示位置M=1,初始化当前位置K=1,执行b;
b)查看数组当前位置K的节点字符是否为空,如果为空,则将数组当前位置K进行赋值:节点字符设为Si的第M个字符,令N=N+1,如果M等于Si的长度,则将是否输出设为True,并跳转到a,否则设为False,执行c;如果不为空,则比较Si的第M个字符与位置K保存的节点字符是否相等,如果相等,则执行c,如果不相等,则执行d;
c)查看数组当前位置K保存的子节点位置T是否为空,如果T为空,则设置位置K子节点位置为N,令K=N,M=M+1,执行b;如果T不为空,则令K=T,M=M+1,执行b;
d)查看数组当前位置K保存的兄弟节点位置R是否为空,如果R为空,则设置位置K兄弟节点位置为N,令K=N,执行b;如果R不为空,则令K=R,执行b;
e)重复上述步骤,直到集合P中的所有字符串Si都插入到了数组中,以上图为例,则构建完成后数组如下。
Figure BDA0001526784100000071
三、完成GOTO表后,再为基于AC算法的树结构添加失败路径,可得到有限状态机图(包含GOTO节点和FAIL节点),如图4所示。
其中,FAIL节点位置计算方式如下:
1)将根节点指向的第一个子节点(节点位置1)压入队列,根据第一个子节点(节点位置1)指向的兄弟节点遍历,将根节点所有的子节点压入队列,并将根节点的所有子节点FAIL节点位置全部设为0;
2)按照先进先出的顺序,逐个取出队列中的节点,如果其存在子节点,计算其子节点的FAIL节点位置。一个子节点的FAIL值计算完毕后,便将此节点压入队列。如果不存在子节点,则不需压子节点进队列的操作。
如果此节点的FAIL值为0,则逐个匹配第一层节点,如果存在与此节点相同的字符,则此节点的当前子节点FAIL值等于第一层节点中相同字符的节点位置,如果不存在,则FAIL值等于0;如果此节点的FAIL值不为0,则比较此节点FAIL节点所有子节点的字符和此节点的当前子节点的字符,如果存在相同字符,则此节点的当前子节点FAIL值等于FAIL节点中与其相同字符的位置,如果不同,则查看父节点FAIL值,并进行上述的比较,直到索引到根节点或者找到相同字符。上面的例子中,构建完毕后数组如下:
Figure BDA0001526784100000081
四、计算OUTPUT表。构建GOTO表时,如果一个许可证的键已构建完毕,则将完毕时的当前节点设为输出节点,并将此节点的位置写入OUTPUT表。在计算FAIL值时,如果FAIL值指向的节点的输出状态为“是”,则将该节点的OUTPUT值也写入当前节点的OUTPUT值。OUTPUT表的示例如下:
i output(i)
2 {ba}
3 {ba,bac}
4 {ba,bat}
7 {acr}
五、构建AC算法树后,对于开源软件其中一种风险,通过对许可证的键文本S使用许可证的键集合P构建的AC算法树进行多模式匹配,即可扫描出开源软件中是否包含该风险,以及包含该风险的是哪个许可证(还有许可证的位置)等信息。具体扫描步骤如下:
1)从根节点root的节点位置最小的子节点(节点位置1)开始,进行字符匹配。如果字符相同,则跳到相同字符的子节点继续匹配;如果不相同,则跳到FAIL节点的位置,继续比较所有子节点与下一个字符;
2)如果root子节点(节点位置1)下所有的路径遍历不匹配,则从root子节点(节点位置1)的兄弟节点(节点位置5)开始进行遍历匹配;
3)当节点的标志位为输出节点时,将当前节点的所有OUTPUT值输出,即包含的所有许可证进行输出;
4)继续上述步骤直到许可证的键文本S扫描完毕,如输出许可证,即表示开源软件包含该风险,而包含该风险的许可证即为输出的许可证。
可以理解,为确定许可证是否涉及风险库和不兼容库中的每一类,有必要重复执行上述步骤三至五,以检索出开源软件中包含的所有风险或不兼容,以及所涉及的各许可证,这些许可证的位置或共性。
如图2所示,本发明第二实施例提供一种文本间多模式匹配系统,其包括待匹配文本构建单元201、树结构形成单元202、表存储单元203以及多模式匹配单元204。
具体地,待匹配文本构建单元201基于至少一个标识构建待匹配文本。
树结构形成单元202与待匹配文本构建单元201耦合,其用于将待匹配文本按树结构进行解析。其中,树结构的根节点的每一个子节点对应于待匹配文本的至少一个字符。
表存储单元203与树结构形成单元202耦合,其用于基于树结构来构建存储表。其中,存储表记录每个标识在树结构中所对应的至少一个节点,以及其中每个节点的节点位置以及节点状态。
多模式匹配单元204与表存储单元203耦合,其用于基于存储表与目标文本的集合进行多模式匹配。
该文本间多模式匹配系统采用本发明上述第一实施例中提供的用于文本间匹配的方法将待匹配文本解析为基于AC算法的树结构,进而,利用GOTO表来存储这种树结构,最终,利用包含了多种额外信息的GOTO表来直接进行多模式匹配运算。该系统执行效率高,也不需要大量存储空间,尤其适用于模式数量更多的场合。
在本发明的一些实施例中,上述系统的至少一部分可采用通信网络所连接的一组分布式计算装置来实现,或,基于“云”来实现。在这种系统中,多个计算装置共同操作,以通过使用其共享资源来提供服务。作为示例,待匹配文本构建单元201、树结构形成单元202、表存储单元203设置于本地端,而多模式匹配单元204设置于云端,同时地进行针对多个本地端的多模式匹配。
基于“云”的实现可提供一个或多个优点,包括:开放性、灵活性和可扩展性、可中心管理、可靠性、可缩放性、对计算资源所优化、具有聚合和分析跨多个用户的信息的能力、跨多个地理区域进行连接、以及将多个移动或数据网络运营商用于网络连通性的能力。
根据本发明另一实施例,提供一种计算机存储介质,其上存储有计算机可执行指令,其中,所述计算机可执行指令在由处理器执行时,实现以上第一实施例所公开的方法。
根据本发明又一实施例,提供一种控制器,该控制器在执行储存于存储器中的可执行指令时,执行以上第一实施例所公开的方法的各个步骤。
上述说明仅针对于本发明的优选实施例,并不在于限制本发明的保护范围。本领域技术人员可能作出各种变形设计,而不脱离本发明的思想及附随的权利要求。

Claims (12)

1.一种用于文本间匹配的方法,包括如下各步骤:
a)、基于至少一个标识构建待匹配文本;
b)、基于感兴趣信息形成目标文本的集合;
c)、将所述待匹配文本按树结构进行解析;其中,所述树结构的根节点的每一个子节点对应于所述待匹配文本的至少一个字符;
d)、基于所述树结构来构建存储表;其中,所述存储表记录每个所述标识在所述树结构中所对应的至少一个节点,以及其中每个所述节点的节点位置以及节点状态;以及
e)、利用所述存储表与所述目标文本的集合进行多模式匹配,其中,其中,所述存储表包括:
每个所述节点对应的节点字符;
每个所述节点所在的数组位置;
每个所述节点的各子节点所在的数组位置;
每个所述节点的各兄弟节点所在的数组位置;
每个所述节点的输出状态;以及
每个所述节点的FAIL节点所在的数字位置。
2.根据权利要求1所述的方法,其特征在于,所述存储表基于二维数组结构来构建。
3.根据权利要求2所述的方法,其特征在于,所述步骤c)中:
基于Aho-Corasick算法将所述待匹配文本按树结构进行解析。
4.根据权利要求3所述的方法,其特征在于,所述树结构按如下方式来定义:
所述根节点的各直接子节点与各所述标识的首字符一一对应;
各所述标识对应的字符串分别定义为所述树结构的相应子树。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述标识为开源软件的许可证的键,所述感兴趣信息为所述开源软件所涉及的风险信息和/或不兼容信息。
6.一种确定开源软件的许可证是否存在风险或不兼容的方法,其包括:
利用如权利要求1-5中任一项所述的用于文本间匹配的方法来进行至少一个许可证的键与风险信息和/或不兼容信息之间的匹配。
7.根据权利要求6所述的方法,其特征在于,
所述方法还包括:
确定每个包含所述风险信息和/或不兼容信息的所述许可证的键在待匹配文本中的位置。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
确定各个包含所述风险信息和/或不兼容信息的所述许可证的键之间的共性。
9.一种文本间多模式匹配系统,包括:
待匹配文本构建单元,用于基于至少一个标识构建待匹配文本;
树结构形成单元,与所述待匹配文本构建单元耦合,用于将所述待匹配文本按树结构进行解析;其中,所述树结构的根节点的每一个子节点对应于所述待匹配文本的至少一个字符;
表存储单元,与所述树结构形成单元耦合,用于基于所述树结构来构建存储表;其中,所述存储表记录每个所述标识在所述树结构中所对应的至少一个节点,以及其中每个所述节点的节点位置以及节点状态;以及
多模式匹配单元,与所述表存储单元耦合,用于基于所述存储表与目标文本的集合进行多模式匹配,
其中,所述存储表包括:
每个所述节点对应的节点字符;
每个所述节点所在的数组位置;
每个所述节点的各子节点所在的数组位置;
每个所述节点的各兄弟节点所在的数组位置;
每个所述节点的输出状态;以及
每个所述节点的FAIL节点所在的数字位置。
10.如权利要求9所述的系统,其特征在于,所述系统按照分布式系统来部署。
11.一种控制器,其特征在于,所述控制器在执行储存于存储器中的可执行指令时,执行如权利要求1至5中任一项所述的方法的各个步骤。
12.一种计算机存储介质,其上存储有计算机可执行指令,其中,所述计算机可执行指令在由处理器执行时,实现如权利要求1至5中任一项所述的方法。
CN201711441800.7A 2017-12-27 2017-12-27 用于文本间匹配的方法 Active CN108304467B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711441800.7A CN108304467B (zh) 2017-12-27 2017-12-27 用于文本间匹配的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711441800.7A CN108304467B (zh) 2017-12-27 2017-12-27 用于文本间匹配的方法

Publications (2)

Publication Number Publication Date
CN108304467A CN108304467A (zh) 2018-07-20
CN108304467B true CN108304467B (zh) 2021-08-10

Family

ID=62867521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711441800.7A Active CN108304467B (zh) 2017-12-27 2017-12-27 用于文本间匹配的方法

Country Status (1)

Country Link
CN (1) CN108304467B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110458412A (zh) * 2019-07-16 2019-11-15 阿里巴巴集团控股有限公司 风险监控数据的生成方法和装置
CN111309854B (zh) * 2019-11-20 2023-05-26 武汉烽火信息集成技术有限公司 一种基于文章结构树的文章评价方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1779268A2 (en) * 2004-07-26 2007-05-02 Sourcefire, Inc. Methods and systems for multi-pattern searching
CN102646123A (zh) * 2012-02-23 2012-08-22 北京星网锐捷网络技术有限公司 多模式匹配方法、装置和设备
CN102646115A (zh) * 2012-02-17 2012-08-22 北京星网锐捷网络技术有限公司 Ac状态机的构建方法及装置
CN104869110A (zh) * 2015-03-01 2015-08-26 江西科技学院 一种应用于入侵检测系统的ac算法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1779268A2 (en) * 2004-07-26 2007-05-02 Sourcefire, Inc. Methods and systems for multi-pattern searching
CN102646115A (zh) * 2012-02-17 2012-08-22 北京星网锐捷网络技术有限公司 Ac状态机的构建方法及装置
CN102646123A (zh) * 2012-02-23 2012-08-22 北京星网锐捷网络技术有限公司 多模式匹配方法、装置和设备
CN104869110A (zh) * 2015-03-01 2015-08-26 江西科技学院 一种应用于入侵检测系统的ac算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于跳跃式匹配的多模式匹配算法研究;刘春晖;《cnki》;20150301;全文 *

Also Published As

Publication number Publication date
CN108304467A (zh) 2018-07-20

Similar Documents

Publication Publication Date Title
US9990583B2 (en) Match engine for detection of multi-pattern rules
JP6488009B2 (ja) 特徴的なサブトレースマイニングを使用する、経時的グラフにおける挙動クエリ構築のための方法及びシステム
US8849841B2 (en) Memory circuit for Aho-corasick type character recognition automaton and method of storing data in such a circuit
US9558299B2 (en) Submatch extraction
CN111971931B (zh) 在区块链网络中验证交易的方法以及构成该网络的节点
US10839308B2 (en) Categorizing log records at run-time
CN109635569B (zh) 一种漏洞检测方法及装置
CN106716420A (zh) 消息匹配方法、消息匹配装置及计算机程序产品、电子设备
CN113946546B (zh) 异常检测方法、计算机存储介质及程序产品
CN112115313B (zh) 正则表达式的生成、数据提取方法、装置、设备及介质
Rasool et al. String matching methodologies: A comparative analysis
CN108304467B (zh) 用于文本间匹配的方法
US20200202233A1 (en) Future scenario generating device and method, and computer program
McCreesh et al. Reducing the branching in a branch and bound algorithm for the maximum clique problem
CN113836367B (zh) 一种字符反向匹配的方法及装置
Muggli et al. K ohdista: an efficient method to index and query possible Rmap alignments
CN105279157B (zh) 一种正则查询的方法和装置
Muggli et al. A succinct solution to Rmap alignment
Simiński et al. Towards a practical approach to discover internal dependencies in rule-based knowledge bases
Mahmud et al. An improved hashing approach for biological sequence to solve exact pattern matching problems
CN110209829B (zh) 信息处理方法和装置
Cao et al. A Fast Randomized Algorithm for Finding the Maximal Common Subsequences
CN117978706B (zh) 流量协议识别方法、装置、电子设备及存储介质
WO2019176011A1 (ja) 検索文活用装置および検索文活用方法
US20160188642A1 (en) Incremental update of existing patents with new technology

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