The application example provides a regular expression matching method, device and system based on a multi fork tree. Through the fusion of the simplified tree of the regular expression, the multi tree is generated. Then, the constant character of each node is extracted from the multi tree, the keyword dictionary is generated, and the target text is based on the keyword dictionary. In the end, according to the result of the target text, the hit path is matched from the multifork tree, and the regular expression corresponding to the hit path is added to the hit set. Among them, the multi tree is clustered into each sub tree in the multi tree, which realizes the reduction of the total number of nodes and the clustering of the homologous expressions. When the hit path is matched, because the root node of each subtree is different, the matching subtree can be quickly located according to the root node. The subsequent matching process will only be carried out in the matched subtree, no longer need to match the regular expression, reduce the matching amount and improve the matching efficiency.
【技术实现步骤摘要】
一种基于多叉树的正则表达式匹配方法、装置及系统
本申请涉及自然语言处理
,尤其涉及一种基于多叉树的正则表达式匹配方法、装置及系统。
技术介绍
在自然语言处理
,正则表达式是用来描述、匹配一系列的匹配某个句法规则的字符串,常被用于文本检索、文本匹配或文本替换。正则表达式由常量字符(也称普通字符)和算子字符(也称为特殊字符、元字符、模式字符等)组成;其中常量字符用于在文本检索、文本匹配或文本替换中匹配文本,算子用于定义常量字符用于匹配文本时的运算规则。现有技术中在进行文本检索、文本匹配或文本替换的过程中,有时会涉及到大量的文本,因此,使用的正则表达式的数量也非常大。在实际应用中,为了从大量的正则表达式中寻找能够匹配某一特定文本表达形式的正则表达式集合,需要对大量的正则表达式进行匹配和分类。图1为现有技术的一种正则表达式匹配方法,从图1可以看出,现有技术在进行正则表达式匹配时,利用能够实现正则表达式匹配的算法,将一段目标文本与所有待匹配的正则表达式逐一进行匹配,如果匹配命中,则命中的正则表达式能够匹配该目标文本对应的表达形式,将命中的正则表达式加入到正则表达 ...
【技术保护点】
一种基于多叉树的正则表达式匹配方法,其特征在于,所述方法包括:获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;从所述多叉树中提取每个节点的常量字符,生成关键词词典;根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。
【技术特征摘要】
1.一种基于多叉树的正则表达式匹配方法,其特征在于,所述方法包括:获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符;将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树;从所述多叉树中提取每个节点的常量字符,生成关键词词典;根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息;根据所述分词结果,获取所述多叉树中与目标文本匹配的命中路径,将所述命中路径对应的正则表达式添加至命中集合。2.根据权利要求1所述的方法,其特征在于,所述获取正则表达式的简化树;所述简化树包含至少一条路径和至少一层节点,每个节点中包含常量字符的步骤,包括:顺序提取正则表达式中的所有常量字符;根据常量字符对应的算子字符,去除常量字符中的非必须字符,以及,确定所述简化树的路径分叉点;根据每个正则表达式去除非必须字符后剩余常量字符的顺序和所述简化树的所述路径分叉点,获取每个正则表达式的所述简化树。3.根据权利要求1所述的方法,其特征在于,所述将所述简化树进行节点融合,生成多叉树,所述多叉树包含多个根节点,每个根节点对应一个子树的步骤,包括:从所有所述简化树中,获取具有相同根节点的同源简化树;从所述同源简化树的根节点逐层向下进行节点匹配;如果被匹配的节点相同,融合节点,并进行下一层节点匹配;如果被匹配的节点不同,将上一层被融合的节点作为所述多叉树的所述路径分叉点。4.根据权利要求1所述的方法,其特征在于,所述从所述多叉树中提取每个节点的常量字符,生成关键词词典的步骤,包括:从所述多叉树的根节点开始,逐层提取每个节点的常量字符;查找当前提取到的常量字符在所述关键词词典中是否存在;如果当前提取到的常量字符在所述关键词词典中不存在,将当前提取到的常量字符添加至所述关键词词典中;如果当前提取到的常量字符在所述关键词词典中存在,放弃当前提取到的常量字符。5.根据权利要求1所述的方法,其特征在于,所述根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信息的步骤,包括:对所述目标文本进行字符分割,生成每个分词中只包含一个字符的分词序列;将所述分词序列中,与所述关键词词典匹配的相邻字符合并为一个分词;根据每个分词在所述分词序列中的位置,获取每个分词的所述位置信息。6.根据权利要求1所述的方法,其特征在于,根据所述关键词词典,获取目标文本的分词结果,所述分词结果包括目标文本的分词序列和每个分词的位置信...
【专利技术属性】
技术研发人员:李德彦,晋耀红,林谡,
申请(专利权)人:中科鼎富北京科技发展有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。