正则表达式的生成方法及电子设备技术

技术编号:34135319 阅读:8 留言:0更新日期:2022-07-14 16:28
本申请提供一种正则表达式的生成方法及电子设备,方法包括:获取对应于目标知识的多个源字符串;从所述多个源字符串中提取出若干目标公共子串;将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;基于所述匹配结果与所述若干目标公共子串,确定与所述目标知识对应的正则表达式。本申请方案,实现了自动化生成正则表达式,节省了人工成本和时间成本。节省了人工成本和时间成本。节省了人工成本和时间成本。

【技术实现步骤摘要】
正则表达式的生成方法及电子设备


[0001]本申请涉及自然语言处理中结构化数据领域,特别涉及一种正则表达式的生成方法及电子设备。

技术介绍

[0002]工业界将非结构化数据转换为结构化数据的常用方式包括:命名实体识别提取(Named Entity Recognition,NER)、正则表达式提取。命名实体提取相比正则表达式提取的优势在于泛化性很高,但准确率却较低。工业界往往追求的是准确率,因此正则表达式提取的方式应用更为广泛。
[0003]正则表达式是对字符串操作的一种逻辑公式,即用预定义的一些特定字符构造组合,得到一个“规则字符串”。这个“规则字符串”用于表达对字符串的一种匹配规律,以该匹配规律从字符串中提取特定的字符。使用正则表达式结构化数据的前提是预定义每种知识的正则表达式。不同知识的格式不同,需要由相应领域的专家提供真实案例,并以真实案例定义知识对应的规则。例如:在金融领域的《募集说明书》中提取“原始权益人”、“担保机构”、“托管人”等专用知识,需要该领域专家提供这些知识在《募集说明书》的格式、所在句子、所在段落等各种特征。开发人员根据各种特征构造各种知识的正则表达式。
[0004]然而,实际应用时不同领域存在大量需结构化的知识,而在知识之间差别较大的情况下,正则表达式不易复用,定制化程度极高,需要耗费大量人力成本和时间成本。

技术实现思路

[0005]本申请实施例的目的在于提供一种正则表达式的生成方法及电子设备,用于自动化生成正则表达式。
[0006]一方面,本申请提供了一种正则表达式的生成方法,包括:
[0007]获取对应于目标知识的多个源字符串;
[0008]从所述多个源字符串中提取出若干目标公共子串;
[0009]将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;
[0010]根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;
[0011]基于所述匹配结果与所述若干目标公共子串,确定与所述目标知识对应的正则表达式。
[0012]在一实施例中,所述从所述多个源字符串中提取出若干目标公共子串,包括:
[0013]从所述多个源字符串中确定若干公共子串;
[0014]确定每一公共子串在各个源字符串中对应的多个长度占比;
[0015]判断所述多个长度占比是否满足预设占比条件,若是,确定所述多个长度占比对应的公共子串为目标公共子串。
[0016]在一实施例中,所述判断所述多个长度占比是否满足预设占比条件,包括:
[0017]判断所述多个长度占比的平均值是否达到预设占比阈值。
[0018]在一实施例中,所述判断所述多个长度占比是否满足预设占比条件,包括:
[0019]判断多个长度占比中的每一个长度占比是否均达到预设占比阈值。
[0020]在一实施例中,所述字符映射表包括多个字符映射表项,每一字符映射表项包括字符类型与正则语法的映射关系,所述多个字符映射表项预配置不同优先级;
[0021]所述根据字符映射表对所述多个指定字符串进行匹配处理,包括:
[0022]将所述多个指定字符串中相同位置的字符作为一个字符组合,获得多个字符组合;
[0023]针对每一字符组合,在所述字符映射表中按照优先级从高到低的顺序,查找第一个与所述字符组合内所有字符的字符类型匹配的正则语法,作为与所述字符组合内所有字符对应的正则语法。
[0024]在一实施例中,在所述查找第一个与所述字符组合内所有字符的字符类型匹配的正则语法之前,所述方法还包括:
[0025]如果任一字符组合内所有字符为相同汉字,确定所述字符组合内所有字符匹配所述汉字。
[0026]在一实施例中,所述获得匹配结果,包括:
[0027]针对每一指定字符串,将所述指定字符串内各字符对应的正则语法或汉字,按照各字符在所述指定字符串中排列顺序进行排序,获得所述指定字符串对应的子匹配结果;
[0028]将所有指定字符串对应的子匹配结果进行合并,得到所述匹配结果。
[0029]在一实施例中,所述将所有指定字符串对应的子匹配结果进行合并,获得所述匹配结果,包括:
[0030]当多个子匹配结果的长度不同时,将多个子匹配结果的长度对齐至最长子匹配结果的长度;其中,任一子匹配结果在延长时,在新增位置填入与最长子匹配结果中对应位置的正则语法,且所述新增位置上正则语法数量为零;
[0031]依据多个经过长度对齐的子匹配结果,逐个位置确定当前位置正则语法的正则语法数量最大值和最小值;
[0032]根据所述最长子匹配结果的长度上各位置的正则语法,以及正则语法数量最大值和最小值,确定所述匹配结果。
[0033]在一实施例中,所述方法还包括:
[0034]在确定所述匹配结果之后,对所述匹配结果中相邻的至少两个相同正则语法,以所述正则语法和正则语法数量的组合形式来表示。
[0035]在一实施例中,在所述根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果之前,所述方法还包括:
[0036]响应于针对多个字符类型的自定义指令,构建包含字符类型和正则语法的字符映射表项,获得多个字符映射表项;
[0037]响应于优先级配置指令,分别为每一字符映射表项配置优先级;
[0038]根据多个已配置优先级的字符映射表项,构建所述字符映射表。
[0039]在一实施例中,所述方法还包括:
[0040]在获得与所述目标知识对应的正则表达式之后,根据所述正则表达式对非结构化
字符串进行匹配,获得所述非结构化字符串中对应于所述目标知识的目标字符串。
[0041]进一步的,本申请提供了一种电子设备,所述电子设备包括:
[0042]处理器;
[0043]用于存储处理器可执行指令的存储器;
[0044]其中,所述处理器被配置为执行上述正则表达式的生成方法。
[0045]进一步的,本申请提供了一种正则表达式的生成装置,包括:
[0046]获取模块,用于获取对应于目标知识的多个源字符串;
[0047]提取模块,用于从所述多个源字符串中提取出若干目标公共子串;
[0048]剔除模块,用于将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;
[0049]匹配模块,用于根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;
[0050]确定模块,用于基于所述匹配结果与所述若干目标公共子串,确定与所述目标知识对应的正则表达式。
[0051]此外,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述正则表达式的生成方法。
[0052]本申请方案,从目标知识对应的多个源字符串中提取目标公共子串后,将每一源字符串剔除目标公共子串以获得指定字符串,根据字符映本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种正则表达式的生成方法,其特征在于,包括:获取对应于目标知识的多个源字符串;从所述多个源字符串中提取出若干目标公共子串;将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;基于所述匹配结果与所述若干目标公共子串,确定与所述目标知识对应的正则表达式。2.根据权利要求1所述的方法,其特征在于,所述从所述多个源字符串中提取出若干目标公共子串,包括:从所述多个源字符串中确定若干公共子串;确定每一公共子串在各个源字符串中对应的多个长度占比;判断所述多个长度占比是否满足预设占比条件,若是,确定所述多个长度占比对应的公共子串为目标公共子串。3.根据权利要求2所述的方法,其特征在于,所述判断所述多个长度占比是否满足预设占比条件,包括:判断所述多个长度占比的平均值是否达到预设占比阈值。4.根据权利要求2所述的方法,其特征在于,所述判断所述多个长度占比是否满足预设占比条件,包括:判断多个长度占比中的每一个长度占比是否均达到预设占比阈值。5.根据权利要求1所述的方法,其特征在于,所述字符映射表包括多个字符映射表项,每一字符映射表项包括字符类型与正则语法的映射关系,所述多个字符映射表项预配置不同优先级;所述根据字符映射表对所述多个指定字符串进行匹配处理,包括:将所述多个指定字符串中相同位置的字符作为一个字符组合,获得多个字符组合;针对每一字符组合,在所述字符映射表中按照优先级从高到低的顺序,查找第一个与所述字符组合内所有字符的字符类型匹配的正则语法,作为与所述字符组合内所有字符对应的正则语法。6.根据权利要求5所述的方法,其特征在于,在所述查找第一个与所述字符组合内所有字符的字符类型匹配的正则语法之前,所述方法还包括:如果任一字符组合内所有字符为相同汉字,确定所述字符组合内所有字符匹配所述汉字。7.根据权利要求6所述的方法,其特征在于,所述获得匹配结果...

【专利技术属性】
技术研发人员:董润华张晓程
申请(专利权)人:上海弘玑信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1