CN107992481B - 一种基于多叉树的正则表达式匹配方法、装置及系统 - Google Patents
一种基于多叉树的正则表达式匹配方法、装置及系统 Download PDFInfo
- Publication number
- CN107992481B CN107992481B CN201711425017.1A CN201711425017A CN107992481B CN 107992481 B CN107992481 B CN 107992481B CN 201711425017 A CN201711425017 A CN 201711425017A CN 107992481 B CN107992481 B CN 107992481B
- Authority
- CN
- China
- Prior art keywords
- tree
- node
- word segmentation
- matching
- path
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本申请实施例提供了一种基于多叉树的正则表达式匹配方法、装置及系统,通过对正则表达式的简化树进行节点融合,生成多叉树;然后,从多叉树中提取每个节点的常量字符,生成关键词词典,并根据关键词词典对目标文本进行分词;最后,根据目标文本的分词结果,从多叉树中匹配出命中路径,并将命中路径对应的正则表达式添加至命中集合。其中,多叉树将单独存在正则表达式聚类到了多叉树中的各个子树中,实现了节点总量的减少和同源表达式的聚类。在匹配命中路径时,由于每个子树的根节点不同,根据根节点能迅速定位到待匹配的子树,使后续的匹配过程仅会在待匹配的子树中进行,不再需要对正则表达式进行逐条匹配,减小了匹配量,提高了匹配效率。
Description
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种基于多叉树的正则表达式匹配方法、装置及系统。
背景技术
在自然语言处理技术领域,正则表达式是用来描述、匹配一系列的匹配某个句法规则的字符串,常被用于文本检索、文本匹配或文本替换。正则表达式由常量字符(也称普通字符)和算子字符(也称为特殊字符、元字符、模式字符等)组成;其中常量字符用于在文本检索、文本匹配或文本替换中匹配文本,算子用于定义常量字符用于匹配文本时的运算规则。
现有技术中在进行文本检索、文本匹配或文本替换的过程中,有时会涉及到大量的文本,因此,使用的正则表达式的数量也非常大。在实际应用中,为了从大量的正则表达式中寻找能够匹配某一特定文本表达形式的正则表达式集合,需要对大量的正则表达式进行匹配和分类。
图1为现有技术的一种正则表达式匹配方法,从图1可以看出,现有技术在进行正则表达式匹配时,利用能够实现正则表达式匹配的算法,将一段目标文本与所有待匹配的正则表达式逐一进行匹配,如果匹配命中,则命中的正则表达式能够匹配该目标文本对应的表达形式,将命中的正则表达式加入到正则表达式集合中。但是,在实际应用中,待匹配的正则表达式的数量非常大,甚至能够达到数十万之多,而在正则表达式集合中,对应某个目标文本的正则表达式的数量通常只有几十个,因此,现有技术中的逐一匹配正则表达式的方法,在匹配过程中的数据匹配量巨大,匹配效率低下,无法满足实际应用需求。
因此,如何能够提高正则表达式在匹配分类过程中的匹配效率,成为本领域技术人员亟待解决的技术问题。
发明内容
本申请实施例提供了一种基于多叉树的正则表达式匹配方法、装置及系统,以解决现有技术中存在的问题。
第一方面,本申请实施例提供了一种基于多叉树的正则表达式匹配方法,所述方法包括:获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;从所述多叉树中提取每个节点的常量字符,生成关键词词典;根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
第二方面,本申请实施例提供了一种基于多叉树的正则表达式匹配装置,所述装置包括:获取模块,用于获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;融合模块,用于将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;取词模块,用于从所述多叉树中提取每个节点的常量字符,生成关键词词典;分词模块,用于根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;匹配模块,用于根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
第三方面,本申请实施例提供了一种基于多叉树的正则表达式匹配系统,所述系统包括:存储器和处理器;所述存储器用于存储所述处理器的可执行程序;所述处理器被配置为:获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;从所述多叉树中提取每个节点的常量字符,生成关键词词典;根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
由以上技术方案可知,本申请实施例提供了一种基于多叉树的正则表达式匹配方法、装置及系统,通过对正则表达式进行节点融合,生成多叉树;然后,从多叉树中提取每个节点的常量字符,生成关键词词典,并根据关键词词典对目标文本进行分词;最后,根据目标文本的分词结果,从多叉树中匹配出命中路径,并将命中路径对应的正则表达式添加至命中集合。其中,多叉树将单独存在正则表达式聚类到了多叉树中的各个子树中,实现了节点总量的减少和同源表达式的聚类。在匹配命中路径时,由于每个子树的根节点不同,根据根节点能迅速定位到待匹配的子树,使后续的匹配过程仅会在待匹配的子树中进行,不再需要对正则表达式进行逐条匹配,从而极大地减小了匹配量,使匹配效率得到极大地提高。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的一种正则表达式匹配方法;
图2为本申请实施例提供的一种基于多叉树的正则表达式匹配方法的流程图;
图3为本申请实施例提供的一种简化树的示意图;
图4为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S110的流程图;
图5为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S120的流程图;
图6为本申请实施例示出的多个同源简化树的结构示意图;
图7为本申请实施例示出的一种多叉树的结构示意图;
图8为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S130的流程图;
图9为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S140的流程图;
图10为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S150的流程图;
图11为本申请实施例示出的一种基于多叉树的正则表达式匹配方法步骤S153的流程图;
图12为本申请实施例提供的一种基于多叉树的正则表达式匹配装置框图;
图13为本申请实施例提供的一种基于多叉树的正则表达式匹配系统框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
正则表达式又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression),正则表达式是一个计算机学概念,在自然语言处理技术领域,正则表达式是用来描述、匹配一系列的匹配某个句法规则的单个字符串,常被用于文本检索、文本匹配或文本替换。正则表达式由常量字符(也称普通字符)和算子字符(也称为特殊字符、元字符、模式字符等)组成;其中普通字符用于在文本检索、文本匹配或文本替换中匹配文本,算子用于定义普通字符用于匹配文本时的运算规则。
正则表达式通过常量字符和算子字符的组成匹配逻辑,能够形成丰富的表达方式。
示例地,一个正则表达式如下所示:
\d+号还了一个\d+.{0,2}元.{0,4}本[一个]{0,2}[月期].{0,3}\d+.{0,2}还掉\d+.{0,2}了
其中,“号还了一个”“元”等汉字为常量字符;“\d”“+”“.”“{n,m}”“[]”等均为算子字符,定义了常量字符用于匹配文本时的运算规则,例如:“\d”表示匹配一个数字字符;“+”表示匹配前面的子表达式一次或多次,“\d”与“+”表示匹配数字字符一次或多次;“.”表示匹配一个除换行符以外的任何单个字符;“{n,m}”中m和n均为非负整数,其中n<=m,“{n,m}”表示前面的子表达式最少匹配n次且最多匹配m次;“[xyz]”为字符集合,匹配其所包含的任意一个字符;“[xyz]”与“{n,m}”表示“[xyz]”中的任意一个字符最少匹配n次且最多匹配m次。
正则表达式中通过设计不同的常量字符和算子字符能够实现不同的匹配目的。正则表达式在进行匹配时采用从前向后的顺序匹配,在匹配过程中,只有正则表达式中位于靠前位置的常量字符和算子字符组成的匹配逻辑与被匹配文本匹配成功时,才会继续向后匹配,一旦有匹配逻辑匹配不成功,那么,整个表达式就匹配失败。当正则表达式中有“或”逻辑时,例如“[xyz]”就是一个“或”逻辑,则说明正则表达式中出现了分支,如果被匹配文本能够匹配上其中一个分支,则表示该被匹配文本匹配上了这个表达式。
本申请实施例提供了一种基于多叉树的正则表达式匹配方法,图2为本申请实施例提供的一种基于多叉树的正则表达式匹配方法的流程图,如图2所示,所述方法包括以下步骤:
步骤S110,获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符。
本申请中,正则表达式的简化树是根据正则表达式的匹配逻辑,将正则表达式以常量字符树的形式表达的一种简化的树状结构。其中,简化树中的节点为正则表达式中的常量字符,节点按照常量字符在正则表达式中的前后位置和分支情况被分成多个层级,如果没有出现分叉,每个层级上只有一个节点,如果某个层级出现了分叉(由表达式中的“或”逻辑产生),则该层级中可能包含两个或更多并列的节点。将层级之间的单个节点依次连接,就能形成一条路径,分叉越多,形成的路径也就越多。
图3为本申请实施例提供的一种简化树的示意图。
需要说明的是,在简化树中,节点的常量字符中仅包含匹配逻辑中表示必须出现的常量字符对于那些在被匹配文本中可出现也可不出现的常量字符,不应出现在简化树的节点中,本申请实施例中将不应出现在简化树节点中的字符成为非必须字符。以一个例子来说明:上述示例的正则表达式中,“[一个]{0,2}”构成一个匹配逻辑,表示在被匹配文本中,“一个”中的任何一个字符最少可出现0次,最多可出现2次,这说明“一个”中任何一个字符可出现可不出现,因此,如果对上述示例的正则表达式生成简化树,不应该出现“一个”中任何一个字符对应的节点。
图4为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S110的流程图,如图4所示,在一种可选择的实施方式中,步骤S110可以包括以下步骤:
步骤S111,顺序提取正则表达式中的所有常量字符。
在正则表达式中,常量字符是用于文本检索、文本匹配或文本替换的不具有运算规则的字符串。常量字符在简化树中构成了简化树的节点。示例地,从本实施例上文中示出的正则表达式中获取的常量字符有:号还了一个、元、本、一、个、月、期、还掉、了。
步骤S112,根据常量字符对应的算子字符,去除常量字符中的非必须字符,以及,确定所述简化树的路径分叉点。
在正则表达式中,常量字符是否为非必须字符可根据常量字符对应的算子字符判断。首先,获取每个常量字符与对应的算子字符形成的匹配逻辑(如果有),然后,根据匹配逻辑判断常量字符是否为非必须字符。
例如,常量字符“一”“个”的匹配逻辑为:[一个]{0,2},表示“一”“个”中的任何一个字符在被匹配文本中最少可出现0次(即不出现),最多可出现2次,由于“一”“个”中任何一个字符可不出现,所以常量字符“一”“个”为非必须字符。
又例如,常量字符“月”“期”的匹配逻辑为:[月期],表示被匹配文本应匹配到“月”“期”中的任意一个字符“月”或“期”,所以常量字符“月”“期”为必须字符。
此外,根据常量字符与算子字符是否构成“或”逻辑,可确定简化树的路径分叉点。例如,匹配逻辑“[xyz]”表示匹配其所包含的任意一个字符,就是一个“或”逻辑,因此,对于示例中的正则表达式来说,其生成的简化树应在位置形成“月”和“期”两个并列的节点,则“月”和“期”的上一层节点就是简化树的路径分叉点,以形成两子条路径。
示例地,从本实施例示出的正则表达式中获取的常量字符,确定的非必须字符和简化树的路径分叉点的结果为:
常量字符 | 是否为非必须字符? | 是否作为路径分叉点 |
号还了一个 | 否 | 否 |
元 | 否 | 否 |
本 | 否 | 是 |
一 | 是 | 去除(不在简化树中) |
个 | 是 | 去除(不在简化树中) |
月 | 否 | 否(上一层节点为路径分叉点) |
期 | 否 | 否 |
还掉 | 否 | 否 |
了 | 否 | 否 |
步骤S113,根据每个正则表达式去除非必须字符后剩余常量字符的顺序和所述简化树的所述路径分叉点,获取每个正则表达式的所述简化树。
在步骤S113中,根据剩余常量字符的顺序,可确定每个常量字符在简化树中的节点次序和层级,然后根据节点的次序、层级,以及已确定的路径分叉点,生成正则表达式的简化树。简化树的示意结构如图3所示。
本申请在步骤S110中,可获取大量正则表达式的简化树,其中,大量的正则表达式来源于进行文本匹配所需要的正则表达式集合,正则表达式集合中的正则表达式数量多、对应的文本表达形式多,因此,有分类需求。
本申请中的简化树,将正则表达式从字符串的形式简化地表示成具有节点的简化树的形式,简化树能够以节点为操作对线进行合并、删除、替换等操作,因此,简化树能够适应更多的使用需求。
步骤S120,将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树。
由于,在大量的正则表达式中,有些表达式的内容比较相似,其对应的简化树在前几层节点中,常量字符的顺序和字符内容完全相同,这类简化树可进行融合,从而将多个简化树融合在一起,形成多叉树的一个子树。在多叉树中每个简化树的下层不相同节点形成的路径作为分叉树上的子路径存在。
图5为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S120的流程图,如图5所示,在一种可选择的实施方式中,步骤S120可以包括以下步骤:
步骤S121,从所有所述简化树中,获取具有相同根节点的同源简化树。
在步骤S121中,可选中一个简化树,确定该简化树的根节点,然后,遍历所有简化树的根节点,将所有根节点相同的简化树提取出来,作为同源简化树,每一组根节点相同的同源简化树,最终会形成一个子树,从而实现对同源简化树的聚类。
示例地,图6为本申请实施例示出的多个同源简化树的结构示意图。从图6可以看出,同源简化树具有相同的根节点。
步骤S122,从所述同源简化树的根节点逐层向下进行节点匹配。
本申请在对简化树进行节点匹配时,可先取一个同源简化树作为基准树,在进行节点匹配时,以该基准树中的每层节点作为匹配的基准,在进行节点融合时,将其他同源简化树融合至基准树中,并最终形成多叉树中的一个分支。
以图6中示出的同源简化树为例,在S122中,从同源简化树的根节点逐层向下进行匹配,在匹配过程中,以同源简化树1作为基准树。由于同源简化树的根节点相同,可跳过根节点的匹配,直接从第二层节点开始匹配;在匹配过程中,根据匹配结果执行步骤S123或S124,步骤S123和步骤S124分别为:
步骤S123,如果被匹配的节点相同,融合节点,并进行下一层节点匹配。
步骤S124,如果被匹配的节点不同,将上一层被融合的节点作为所述多叉树的所述路径分叉点,生成新路径。
下面以图6中示出的同源简化树为例,具体说明步骤S122-步骤S124中,节点融合生成多叉树的过程。
图6中示出了三个同源简化树,其中,以同源简化树1为基准树,从第二层节点开始匹配,三个同源简化树的第二层节点均为“元”,即被匹配的节点相同,执行步骤S123,融合节点,并进行下一层节点匹配。需要说明的是,融合节点的过程也可在所有层次的节点匹配完成之后进行,在匹配过程中,可先对满足融合条件的常量字符相同的节点进行标记,匹配结束后,根据标记的结果对同源简化树进行节点融合。
第二层节点匹配结束后,对第三层节点进行匹配。在同源简化树1中,第三层节点为“本”,同源简化树3的第三层节点也为“本”,因此,对同源简化树1和同源简化树2的节点“本”可执行步骤S123,融合节点。但是,由于同源简化树2第二层节点为路径分叉点,有两个第三层节点,位于路径分叉点形成的两个子路径上,这种情况下,当同源简化树中某一层的节点为多个时,要分别将每个节点与基准树中的节点比较,具体为:同源简化树2的两个第三层节点分别为“今”和“当”,与同源简化树1的第三层节点“本”均不同,执行步骤S124,将同源简化树1的第二层节点“元”作为多叉树的路径分叉点,将同源简化树2的子路径“-今-日-入账”和“-当-日-入账”合并到同源简化树1中,分别作为同源简化树1的第二层节点“元”下的两个子路径。
第三层节点匹配结束后,对第四层节点进行匹配。由于,在前序的节点匹配中,同源简化树2的节点“元”下的子路径已合并到同源简化树1中,作为同源简化树1的子路径存在,因此,在对第四层节点和后续的节点匹配中,就不需匹配上述已合并路径中的节点。在不考虑上述已合并路径后,第四层节点匹配中,仅需将同源简化树1的第四层节点与同源简化树3的第四层节点进行节点匹配。由于同源简化树1和同源简化树3均存在两个第四层节点,在匹配时,可依次将同源简化树3的其中一个节点与同源简化树1的两个节点作分别匹配,并根据匹配结果分别执行步骤S123或步骤S124,即:同源简化树1和同源简化树3的节点“月”相同,执行步骤S123,将节点“月”融合,同源简化树1和同源简化树3的节点“期”相同,执行步骤S124,将节点“期”融合。后序的节点匹配流程与前序匹配流程相同,本示例中不在具体赘述,图7为本申请实施例示出的一种多叉树的结构示意图,本示例根据图6中的简化树生成的多叉树可参见图7所示。
要补充说明的是,以图6中示出的同源简化树为例,说明步骤S122-步骤S124中,节点融合生成多叉树子树的过程,仅作为将简化树进行节点融合并生成多叉树的一种实施方式,本领域技术人员在本申请实施例的技术启示或技术构思下,还可以使用其他方式对简化树进行节点融合以生成多叉树,均落在本申请实施例公开的范围内。
本申请实施例中,将大量正则表达式的简化树进行节点融合、路径合并,整合成多个具有根节点的多叉树。在整合过程中,多个同源简化树被整合在一个根节点之下,形成子树,减少了根节点的数量,实现了简化树的聚类。在利用多叉树进行节点匹配时,就能够根据根节点迅速定位到待匹配的子树,从而后续的匹配中只需使用该子树进行匹配,能够大幅减少利用多叉树进行节点匹配时的工作量,提高匹配速度。
步骤S130,从所述多叉树中提取每个节点的常量字符,生成关键词词典。
本申请实施例中,关键词词典中包含了多叉树中所有节点的常量字符,在从多叉树中提取节点的常量字符时,相同的常量字符只提取一次,保证关键词词典中的常量字符不重复。
图8为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S130的流程图,如图8所示,在一种可选择的实施方式中,步骤S130包括以下步骤:
步骤S131,从所述多叉树的根节点开始,逐层提取每个节点的常量字符。
以图9中示出的多叉树为例,从根节点开始,首先提取第一层节点的常量字符“日还款”,然后执行步骤S132,并根据步骤S132的结果执行步骤S133或S134,从而确定是否将提取到的常量字符“日还款”添加进关键词词典中。然后按照上述方法,逐层向下提取,直到提取完多叉树所有节点的常量字符。
步骤S132,查找当前提取到的常量字符在所述关键词词典中是否存在。
通过对当前提取到的常量字符与关键词词典中已有关键词的比较,以判断当前提取到的常量词字符在关键词词典中是否存在。以图7中示出的多叉树为例,在一次提取中,提取了子路径“-当-日-入账”中的节点“日”,查找“日”节点的常量字符在关键词词典中是否存在,如果关键词词典中已经存在了“日”(关键词词典中的“日”可来自于子路径“-今-日-入账”中),则执行步骤S134,如果关键词词典中不存在“日”则执行步骤S133,步骤S133和步骤S134为:
步骤S133,如果当前提取到的常量字符在所述关键词词典中不存在,将当前提取到的常量字符添加至所述关键词词典中。
步骤S134,如果当前提取到的常量字符在所述关键词词典中存在,放弃当前提取到的常量字符。
对每个在步骤S131中提取的常量字符均执行步骤S132-S134,从而使多叉树中的每个不同的字符常量均包含在生成的关键词词典中。
本申请实施例中,通过从根节点逐层提取每个节点的常量字符,能够使本申请实施例生成的关键词词典中的关键词不出现遗漏。同时,在每提取到一个常量字符,都会查找该常量字符在关键词词典中是否已经存在,如果存在,放弃当前提取到的常量字符,开始提取下一个常量字符,如果不存在,将当前的常量字符添加至关键词词典中,从而,能够保证关键词词典中的不出现重复的关键词。
步骤S140,根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息。
本申请实施例中,目标文本用于从大量的正则表达式中匹配出与目标文本匹配的正则表达式,从而,通过特定的目标文本可以实现从大量的正则表达式中抽取特定的正则表达式,实现对正则表达式进行分类。
在步骤S140中,由于关键词词典中的关键词来自于多叉树的节点,因此,如果根据关键词词典对目标文本分词,那么,目标文本的分词结果中,分词会与多叉树的节点在构词上具有很高的一致性,例如:如果关键词词典中存在“今”和“日”,当目标文本中出现“今日”时,“今日”就会被分成“今”和“日”两个词,而不会被分成“今日”,从而与多叉树中的“-今-日-”保持一致。目标文本的分词结果与多叉树的节点保持一致,在文本匹配中非常重要,能够通过一致性保证文本匹配的准确性。
由于,正则表达式在匹配时采用从前向后的顺序匹配,在匹配过程中,只有当前匹配到的分词在目标文本中的位置位于前一个匹配到的分词之后,才能认为匹配成功。因此,本申请实施例中,分词结果除了包含目标文本的分词以外,还包括每个分词的位置信息。根据每个分词的位置信息可以确定目标文本中分词的排列顺序和分词之间的相对位置。
图9为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S140的流程图,如图9所示,在一种可选择的实施方式中,步骤S140包括:
步骤S141,对所述目标文本进行字符分割,生成每个分词中只包含一个字符的分词序列。
示例地,目标文本为:
2日还款300元,本月剩余应还150元
在进行字符分割时,可去除文本中的停用词或标点符号,得到分词序列为:
[2/日/还/款/3/0/0/元/本/月/剩/余/应/还/1/5/0/元]
步骤S142,将所述分词序列中,与所述关键词词典匹配的相邻字符合并为一个分词。
示例地,由图9示出的多叉树生成的关键词词典为:
[日还款元今本当日月期入账还清剩余应还了元]
因此,对于步骤S141示例中的分词序列,合并与关键词词典匹配的相邻字符的结果为:
[2/日还款/3/0/0/元/本/月/剩余应还/1/5/0/元]
步骤S143,根据每个分词在所述分词序列中的位置,获取每个分词的所述位置信息。
本申请实施例中,定义分词序列中首个字符的位置为“0”,每个字符占据一个位置,从而能够确定每个分词在分词序列中的位置,此外,每个分词的位置信息由分词的起始位置和结束位置组成。
示例地,分词“日还款”位置信息为[7,9],表示起始位置为7,结束位置为9。
本申请实施例中,分词的位置信息包括起始位置和结束位置,能够精确地确定分词在分词序列中的位置,以及分词的词长,从而在分词匹配中,判断分词之间的相互位置提供了精确的判断依据。
在一种可选择的实施方式中,步骤S140之后还可以包括:
步骤S149,根据所述分词结果中所述目标文本的分词和每个分词的所述位置信息,创建分词与所述位置信息的映射表。
示例地,一种映射表可以为:
本申请实施例中创建的映射表,完整地影射了分词与位置信息之间的对应关系,可用于在步骤S150中获取与节点匹配分词的位置信息,提高获取效率。
步骤S150,根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
首先,根据分词结果,对目标文本的分词与多叉树进行节点匹配,从而,可根据匹配结果,从多叉树的众多路径中获取与目标文本匹配的命中路径。本申请实施例中的命中路径是指在根节点至叶子节点形成的一条路径中,所有的节点都能够匹配到目标文本的分词,并且,目标文本中被匹配的分词的排列顺序与路径中节点的顺序相同(指从根节点至叶子节点的顺序)。然后,将命中路径对应的正则表达式添加至命中集合。本申请通过使用目标文本的分词与多叉树进行节点匹配,能够得到与目标文本匹配的正则表达式集合,由于多叉树是正则表达式的简化树历经节点融合、路径合并而得到的,实现了节点总量的减少和同源表达式的聚类,并且,单独存在正则表达式被聚类到了多叉树中的各个子树中,由于每个子树的根节点不同,在进行节点匹配时,一旦确定了匹配的根节点,后续的匹配过程就仅会在匹配的根节点对应的子树中进行,从而极大地减小了匹配量,使匹配效率得到极大地提高。
图10为本申请实施例提供的一种基于多叉树的正则表达式匹配方法步骤S150的流程图,如图10所示,在一种可选择的实施方式中,步骤S150包括以下步骤:
步骤S151,根据所述分词结果,从所述多叉树的所述子树中获取与目标文本匹配的目标子树。
从前向后逐一将目标文本分词序列中的分词与多叉树中每个子树的根节点匹配,直至匹配到根节点,将匹配的根节点对应的子树作为目标子树。
以步骤S142中分词序列和图7所示的多叉树为例,子树2为目标子树,匹配到的分词为“日还款”。
步骤S152,从根节点开始,逐层查找所述目标子树的节点是否与所述目标文本的分词存在分词匹配。
在步骤S152中,从目标子树的根节点开始,沿目标子树的第一层节点、第二层节点,直到叶子层节点,逐层逐节点地与目标文本分词序列中的分词进行匹配。
步骤S153,如果存在所述分词匹配,根据分词的所述位置信息分析是否继续查找。
由于,正则表达式在匹配时采用从前向后的顺序匹配,在匹配过程中,只有当前匹配到的分词在目标文本中的位置位于在先匹配到的分词之后,才能认为匹配成功,因此,即使存在分词匹配,也要通过根据分词的位置信息分析匹配是否成功,如果成功,再继续查找。
图11为本申请实施例示出的一种基于多叉树的正则表达式匹配方法步骤S153的流程图,如图11所示,在一种可选择的实施方式中,步骤S153包括以下步骤:
步骤S1531,如果存在所述分词匹配,根据所述位置信息,分析当前匹配到的分词与在先匹配到的分词的位置关系。
示例地,以步骤S142中分词序列和图7所示的多叉树为例,在先匹配的过程中,根节点“日还款”匹配到了分词:日还款[1,3];第二层节点“元”匹配到了分词:元[7,7];在当前匹配过程中,第三层节点“剩余应还”匹配到了分词:剩余应还[10,13];则根据分词的位置信息:[1,3]-[7,7]-[10,13],可以确定当前匹配到的分词位于在先匹配到的分词之后。
示例地,如果某个目标文本的分词序列中存在分词:日还款[1,3]、今[7,7]、元[11,11],以图7所示的多叉树为例,在先匹配的过程中,根节点“日还款”匹配到了分词:日还款[1,3];第二层节点“元”匹配到了分词:元[11,11];在当前匹配过程中,第三层节点“今”匹配到了分词:今[7,7];则根据分词的位置信息:[1,3]-[11,11]-[7,7],可以确定当前匹配到的分词位于在先匹配到的分词之前。
步骤S1532,如果当前匹配到的分词位于在先匹配到的分词之后,则沿当前节点所在路径上继续查找。
如果当前匹配到的分词位于在先匹配到的分词之后,说明节点匹配成功,当前被匹配的节点所在的路径可能是命中路径,在该路径上继续匹配,以确定是否为命中路径。
步骤S1533,如果当前匹配到的分词位于在先匹配到的分词之前,则终止在当前节点所在路径上的查找。
如果当前匹配到的分词位于在先匹配到的分词之前,说明节点匹配不成功,当前被匹配的节点所在的路径不可能是命中路径,终止在该路径上继续查找。
由此可见,本申请在获取命中路径的过程中,会根据节点匹配的结果,随时终止在非命中路径上的查找,使查找范围不断收敛,查找量不断减少,从而提高查找的效率。
步骤S154,如果查找成功抵达叶子节点,获取从根节点抵达叶子节点的路径,作为所述命中路径。
如果能够成功抵达叶子节点,说明从根节点到叶子节点能够形成一条匹配目标文本的路径,该路径中的节点能够顺序匹配目标文本的分词,因此,这个路径即为命中路径。
步骤S155,将所述命中路径对应的正则表达式添加至所述命中集合。
由于,多叉树是由正则表达式的简化树历经节点融合、路径合并而来,多叉树中的每一条路径都对应了一个正则表达式,因此,命中路径对应的正则表达式即为能够匹配目标文本的正则表达式,本申请在步骤S155中,将命中路径对应的正则表达式添加至所述命中集合,从而目标集合中包含了与目标文本匹配的正则表达式。
由以上技术方案可知,本申请实施例提供了一种基于多叉树的正则表达式匹配方法,通过对正则表达式进行节点融合,生成多叉树;然后,从多叉树中提取每个节点的常量字符,生成关键词词典,并根据关键词词典对目标文本进行分词;最后,根据目标文本的分词结果,从多叉树中匹配出命中路径,并将命中路径对应的正则表达式添加至命中集合。其中,多叉树将单独存在正则表达式聚类到了多叉树中的各个子树中,实现了节点总量的减少和同源表达式的聚类。在匹配命中路径时,由于每个子树的根节点不同,能够根据根节点迅速定位到待匹配的子树,使后续的匹配过程就仅会在待匹配的子树中进行,不再需要对正则表达式进行逐条匹配,从而极大地减小了匹配量,使匹配效率得到极大地提高。
本申请实施例还提供了一种基于多叉树的正则表达式匹配装置,图12为本申请实施例提供的一种基于多叉树的正则表达式匹配装置框图,如图12所示,所述装置包括:
获取模块210,用于获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符。
融合模块220,用于将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树。
取词模块230,用于从所述多叉树中提取每个节点的常量字符,生成关键词词典。
分词模块240,用于根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息。
匹配模块250,用于根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
由以上技术方案可知,本申请实施例提供了一种基于多叉树的正则表达式匹配装置,通过对正则表达式进行节点融合,生成多叉树;然后,从多叉树中提取每个节点的常量字符,生成关键词词典,并根据关键词词典对目标文本进行分词;最后,根据目标文本的分词结果,从多叉树中匹配出命中路径,并将命中路径对应的正则表达式添加至命中集合。其中,多叉树将单独存在正则表达式聚类到了多叉树中的各个子树中,实现了节点总量的减少和同源表达式的聚类。在匹配命中路径时,由于每个子树的根节点不同,能够根据根节点迅速定位到待匹配的子树,使后续的匹配过程就仅会在待匹配的子树中进行,不再需要对正则表达式进行逐条匹配,从而极大地减小了匹配量,使匹配效率得到极大地提高。
本申请实施例还提供了一种基于多叉树的正则表达式匹配系统,图13为本申请实施例提供的一种基于多叉树的正则表达式匹配系统框图,如图13所示,所述系统包括:
存储器310和处理器320;
所述存储器310用于存储所述处理器320的可执行程序;
所述处理器320被配置为:
获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;
将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;
从所述多叉树中提取每个节点的常量字符,生成关键词词典;
根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;
根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
由以上技术方案可知,本申请实施例提供了一种基于多叉树的正则表达式匹配系统,通过对正则表达式进行节点融合,生成多叉树;然后,从多叉树中提取每个节点的常量字符,生成关键词词典,并根据关键词词典对目标文本进行分词;最后,根据目标文本的分词结果,从多叉树中匹配出命中路径,并将命中路径对应的正则表达式添加至命中集合。其中,多叉树将单独存在正则表达式被聚类到了多叉树中的各个子树中,实现了节点总量的减少和同源表达式的聚类。在匹配命中路径时,由于每个子树的根节点不同,在利用多叉树进行节点匹配时,能够根据根节点迅速定位到待匹配的子树,使后续的匹配过程就仅会在待匹配的子树中进行,不再需要对正则表达式进行逐条匹配,从而极大地减小了匹配量,使匹配效率得到极大地提高。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于多叉树的正则表达式匹配方法,其特征在于,所述方法包括:
获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;
将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;
从所述多叉树中提取每个节点的常量字符,生成关键词词典;
根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;
根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
2.根据权利要求1所述的方法,其特征在于,所述获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符的步骤,包括:
顺序提取正则表达式中的所有常量字符;
根据常量字符对应的算子字符,去除常量字符中的非必须字符,以及,确定所述简化树的路径分叉点;
根据每个正则表达式去除非必须字符后剩余常量字符的顺序和所述简化树的所述路径分叉点,获取每个正则表达式的所述简化树。
3.根据权利要求2所述的方法,其特征在于,所述将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树的步骤,包括:
从所有所述简化树中,获取具有相同根节点的同源简化树;
从所述同源简化树的根节点逐层向下进行节点匹配;
如果被匹配的节点相同,融合节点,并进行下一层节点匹配;
如果被匹配的节点不同,将上一层被融合的节点作为所述多叉树的所述路径分叉点。
4.根据权利要求1所述的方法,其特征在于,所述从所述多叉树中提取每个节点的常量字符,生成关键词词典的步骤,包括:
从所述多叉树的根节点开始,逐层提取每个节点的常量字符;
查找当前提取到的常量字符在所述关键词词典中是否存在;
如果当前提取到的常量字符在所述关键词词典中不存在,将当前提取到的常量字符添加至所述关键词词典中;
如果当前提取到的常量字符在所述关键词词典中存在,放弃当前提取到的常量字符。
5.根据权利要求1所述的方法,其特征在于,所述根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息的步骤,包括:
对所述目标文本进行字符分割,生成每个分词中只包含一个字符的分词序列;
将所述分词序列中,与所述关键词词典匹配的相邻字符合并为一个分词;
根据每个分词在所述分词序列中的位置,获取每个分词的所述位置信息。
6.根据权利要求1所述的方法,其特征在于,根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息的步骤之后,还包括:
根据所述分词结果中所述目标文本的分词和每个分词的所述位置信息,创建分词与所述位置信息的映射表。
7.根据权利要求1所述的方法,其特征在于,所述根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合的步骤,包括:
根据所述分词结果,从所述多叉树的所述子树中获取与目标文本匹配的目标子树;
从根节点开始,逐层查找所述目标子树的节点是否与所述目标文本的分词存在分词匹配;
如果存在所述分词匹配,根据分词的所述位置信息分析是否继续查找;
如果查找成功抵达叶子节点,获取从根节点抵达叶子节点的路径,作为所述命中路径;
将所述命中路径对应的正则表达式添加至所述命中集合。
8.根据权利要求7所述的方法,其特征在于,所述如果存在所述分词匹配,根据分词的所述位置信息分析是否继续查找的步骤,包括:
如果存在所述分词匹配,根据所述位置信息,分析当前匹配到的分词与在先匹配到的分词的位置关系;
如果当前匹配到的分词位于在先匹配到的分词之后,则沿当前节点所在路径上继续查找;
如果当前匹配到的分词位于在先匹配到的分词之前,则终止在当前节点所在路径上的查找。
9.一种基于多叉树的正则表达式匹配装置,其特征在于,所述装置包括:
获取模块,用于获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;
融合模块,用于将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;
取词模块,用于从所述多叉树中提取每个节点的常量字符,生成关键词词典;
分词模块,用于根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;
匹配模块,用于根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
10.一种基于多叉树的正则表达式匹配系统,其特征在于,所述系统包括:
存储器和处理器;
所述存储器用于存储所述处理器的可执行程序;
所述处理器被配置为:
获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;
将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;
从所述多叉树中提取每个节点的常量字符,生成关键词词典;
根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;
根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711425017.1A CN107992481B (zh) | 2017-12-25 | 2017-12-25 | 一种基于多叉树的正则表达式匹配方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711425017.1A CN107992481B (zh) | 2017-12-25 | 2017-12-25 | 一种基于多叉树的正则表达式匹配方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992481A CN107992481A (zh) | 2018-05-04 |
CN107992481B true CN107992481B (zh) | 2021-05-04 |
Family
ID=62042442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711425017.1A Active CN107992481B (zh) | 2017-12-25 | 2017-12-25 | 一种基于多叉树的正则表达式匹配方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992481B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740165A (zh) * | 2019-01-09 | 2019-05-10 | 网易(杭州)网络有限公司 | 字典树构建方法、语句搜索方法、装置、设备及存储介质 |
CN109933973B (zh) * | 2019-01-24 | 2024-01-19 | 平安科技(深圳)有限公司 | 密码校验方法、装置、计算机设备及存储介质 |
CN112187700A (zh) * | 2019-07-02 | 2021-01-05 | 网宿科技股份有限公司 | 一种waf安全规则匹配方法、设备及存储介质 |
CN112540979A (zh) * | 2019-09-23 | 2021-03-23 | 北京国双科技有限公司 | 表达式的存储方法及装置 |
CN111191421B (zh) * | 2019-12-30 | 2023-09-12 | 出门问问创新科技有限公司 | 一种文本处理方法和装置、计算机存储介质和电子设备 |
WO2021227059A1 (zh) | 2020-05-15 | 2021-11-18 | 深圳市世强元件网络有限公司 | 一种基于多叉树的搜索词推荐方法及系统 |
CN111737986A (zh) * | 2020-05-15 | 2020-10-02 | 深圳市世强元件网络有限公司 | 一种基于多叉树的搜索词推荐方法及系统 |
CN112131378A (zh) * | 2020-08-20 | 2020-12-25 | 彭涛 | 用于识别民生问题类别的方法、装置及电子设备 |
CN112115313B (zh) * | 2020-09-08 | 2023-07-28 | 北京百度网讯科技有限公司 | 正则表达式的生成、数据提取方法、装置、设备及介质 |
CN112989798B (zh) * | 2021-03-23 | 2024-02-13 | 中南大学 | 中文词库的构建方法、中文词库及应用 |
CN113268485B (zh) * | 2021-06-02 | 2024-02-09 | 电信科学技术第十研究所有限公司 | 数据表关联分析方法、装置、设备及存储介质 |
CN114078469B (zh) * | 2022-01-19 | 2022-05-10 | 广州小鹏汽车科技有限公司 | 语音识别方法、装置、终端和存储介质 |
WO2024124409A1 (zh) * | 2022-12-13 | 2024-06-20 | 杭州数梦工场科技有限公司 | 一种正则表达式的生成方法、装置、电子设备和存储介质 |
CN116383655B (zh) * | 2023-04-07 | 2024-01-05 | 北京百度网讯科技有限公司 | 样本生成方法、模型训练方法、文本处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442535A (zh) * | 2008-12-19 | 2009-05-27 | 中山大学 | 一种基于关键词序列的应用识别与跟踪方法 |
CN101609984A (zh) * | 2008-06-16 | 2009-12-23 | 上海申瑞电力科技股份有限公司 | 用于数据采集与监视控制系统的快速辅助建模方法 |
CN102411580A (zh) * | 2010-09-20 | 2012-04-11 | 腾讯科技(深圳)有限公司 | 可扩展标记语言文档的检索方法及装置 |
CN102799596A (zh) * | 2011-05-27 | 2012-11-28 | 广州明朝网络科技有限公司 | 基于网络应用的关键词过滤方法及系统 |
CN103455754A (zh) * | 2013-09-05 | 2013-12-18 | 上海交通大学 | 一种基于正则表达式的恶意搜索关键词识别方法 |
CN104899264A (zh) * | 2015-05-21 | 2015-09-09 | 东软集团股份有限公司 | 一种多模式正则表达式匹配方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130112A1 (en) * | 2005-06-30 | 2007-06-07 | Intelligentek Corp. | Multimedia conceptual search system and associated search method |
-
2017
- 2017-12-25 CN CN201711425017.1A patent/CN107992481B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609984A (zh) * | 2008-06-16 | 2009-12-23 | 上海申瑞电力科技股份有限公司 | 用于数据采集与监视控制系统的快速辅助建模方法 |
CN101442535A (zh) * | 2008-12-19 | 2009-05-27 | 中山大学 | 一种基于关键词序列的应用识别与跟踪方法 |
CN102411580A (zh) * | 2010-09-20 | 2012-04-11 | 腾讯科技(深圳)有限公司 | 可扩展标记语言文档的检索方法及装置 |
CN102799596A (zh) * | 2011-05-27 | 2012-11-28 | 广州明朝网络科技有限公司 | 基于网络应用的关键词过滤方法及系统 |
CN103455754A (zh) * | 2013-09-05 | 2013-12-18 | 上海交通大学 | 一种基于正则表达式的恶意搜索关键词识别方法 |
CN104899264A (zh) * | 2015-05-21 | 2015-09-09 | 东软集团股份有限公司 | 一种多模式正则表达式匹配方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于二元组的简单正则表达式的快速检索算法;潘志铂;《数字通信》;20140325;71-75 * |
Also Published As
Publication number | Publication date |
---|---|
CN107992481A (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992481B (zh) | 一种基于多叉树的正则表达式匹配方法、装置及系统 | |
CN109492077B (zh) | 基于知识图谱的石化领域问答方法及系统 | |
CN108460014B (zh) | 企业实体的识别方法、装置、计算机设备及存储介质 | |
CN103514183B (zh) | 基于交互式文档聚类的信息检索方法及系统 | |
CN110390006B (zh) | 问答语料生成方法、装置和计算机可读存储介质 | |
CN111190900B (zh) | 一种云计算模式下json数据可视化优化方法 | |
CN103324609A (zh) | 文本校对装置和文本校对方法 | |
US20150006528A1 (en) | Hierarchical data structure of documents | |
CN107392143A (zh) | 一种基于svm文本分类的简历精确解析方法 | |
CN106557777B (zh) | 一种基于SimHash改进的Kmeans文档聚类方法 | |
CN107357777B (zh) | 提取标签信息的方法和装置 | |
CN112115232A (zh) | 一种数据纠错方法、装置及服务器 | |
CN106844482B (zh) | 一种基于搜索引擎的检索信息匹配方法及装置 | |
CN108304382A (zh) | 基于制造过程文本数据挖掘的质量分析方法与系统 | |
CN104778157A (zh) | 一种多文档摘要句的生成方法 | |
Leonandya et al. | A semi-supervised algorithm for Indonesian named entity recognition | |
CN115982390B (zh) | 一种产业链构建和迭代扩充开发方法 | |
CN108475265B (zh) | 获取未登录词的方法与装置 | |
CN102982063A (zh) | 一种基于关系关键词扩展的元组精化的控制方法 | |
CN114090722B (zh) | 查询内容自动补全的方法及装置 | |
CN113449063B (zh) | 一种构建文档结构信息检索库的方法及装置 | |
KR101268503B1 (ko) | 특허지도 생성 시스템 및 그 방법 | |
JP2011175497A (ja) | データ抽出装置、データ抽出方法、及びプログラム | |
CN109101480A (zh) | 一种企业名称的切分方法、装置及计算机可读存储介质 | |
Yang et al. | Research on improvement of text processing and clustering algorithms in public opinion early warning system |
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 | ||
CB02 | Change of applicant information |
Address after: 230000 zone B, 19th floor, building A1, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province Applicant after: Dingfu Intelligent Technology Co., Ltd Address before: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing Applicant before: DINFO (BEIJING) SCIENCE DEVELOPMENT Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |