一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

正则表达式的生成方法及电子设备与流程

2022-07-13 10:29:31 来源:中国专利 TAG:


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


背景技术:

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


技术实现要素:

5.本技术实施例的目的在于提供一种正则表达式的生成方法及电子设备,用于自动化生成正则表达式。
6.一方面,本技术提供了一种正则表达式的生成方法,包括:
7.获取对应于目标知识的多个源字符串;
8.从所述多个源字符串中提取出若干目标公共子串;
9.将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;
10.根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;
11.基于所述匹配结果与所述若干目标公共子串,确定与所述目标知识对应的正则表达式。
12.在一实施例中,所述从所述多个源字符串中提取出若干目标公共子串,包括:
13.从所述多个源字符串中确定若干公共子串;
14.确定每一公共子串在各个源字符串中对应的多个长度占比;
15.判断所述多个长度占比是否满足预设占比条件,若是,确定所述多个长度占比对应的公共子串为目标公共子串。
16.在一实施例中,所述判断所述多个长度占比是否满足预设占比条件,包括:
17.判断所述多个长度占比的平均值是否达到预设占比阈值。
18.在一实施例中,所述判断所述多个长度占比是否满足预设占比条件,包括:
19.判断多个长度占比中的每一个长度占比是否均达到预设占比阈值。
20.在一实施例中,所述字符映射表包括多个字符映射表项,每一字符映射表项包括字符类型与正则语法的映射关系,所述多个字符映射表项预配置不同优先级;
21.所述根据字符映射表对所述多个指定字符串进行匹配处理,包括:
22.将所述多个指定字符串中相同位置的字符作为一个字符组合,获得多个字符组合;
23.针对每一字符组合,在所述字符映射表中按照优先级从高到低的顺序,查找第一个与所述字符组合内所有字符的字符类型匹配的正则语法,作为与所述字符组合内所有字符对应的正则语法。
24.在一实施例中,在所述查找第一个与所述字符组合内所有字符的字符类型匹配的正则语法之前,所述方法还包括:
25.如果任一字符组合内所有字符为相同汉字,确定所述字符组合内所有字符匹配所述汉字。
26.在一实施例中,所述获得匹配结果,包括:
27.针对每一指定字符串,将所述指定字符串内各字符对应的正则语法或汉字,按照各字符在所述指定字符串中排列顺序进行排序,获得所述指定字符串对应的子匹配结果;
28.将所有指定字符串对应的子匹配结果进行合并,得到所述匹配结果。
29.在一实施例中,所述将所有指定字符串对应的子匹配结果进行合并,获得所述匹配结果,包括:
30.当多个子匹配结果的长度不同时,将多个子匹配结果的长度对齐至最长子匹配结果的长度;其中,任一子匹配结果在延长时,在新增位置填入与最长子匹配结果中对应位置的正则语法,且所述新增位置上正则语法数量为零;
31.依据多个经过长度对齐的子匹配结果,逐个位置确定当前位置正则语法的正则语法数量最大值和最小值;
32.根据所述最长子匹配结果的长度上各位置的正则语法,以及正则语法数量最大值和最小值,确定所述匹配结果。
33.在一实施例中,所述方法还包括:
34.在确定所述匹配结果之后,对所述匹配结果中相邻的至少两个相同正则语法,以所述正则语法和正则语法数量的组合形式来表示。
35.在一实施例中,在所述根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果之前,所述方法还包括:
36.响应于针对多个字符类型的自定义指令,构建包含字符类型和正则语法的字符映射表项,获得多个字符映射表项;
37.响应于优先级配置指令,分别为每一字符映射表项配置优先级;
38.根据多个已配置优先级的字符映射表项,构建所述字符映射表。
39.在一实施例中,所述方法还包括:
40.在获得与所述目标知识对应的正则表达式之后,根据所述正则表达式对非结构化
字符串进行匹配,获得所述非结构化字符串中对应于所述目标知识的目标字符串。
41.进一步的,本技术提供了一种电子设备,所述电子设备包括:
42.处理器;
43.用于存储处理器可执行指令的存储器;
44.其中,所述处理器被配置为执行上述正则表达式的生成方法。
45.进一步的,本技术提供了一种正则表达式的生成装置,包括:
46.获取模块,用于获取对应于目标知识的多个源字符串;
47.提取模块,用于从所述多个源字符串中提取出若干目标公共子串;
48.剔除模块,用于将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;
49.匹配模块,用于根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;
50.确定模块,用于基于所述匹配结果与所述若干目标公共子串,确定与所述目标知识对应的正则表达式。
51.此外,本技术提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述正则表达式的生成方法。
52.本技术方案,从目标知识对应的多个源字符串中提取目标公共子串后,将每一源字符串剔除目标公共子串以获得指定字符串,根据字符映射表对多个指定字符串进行匹配处理,获得匹配结果,从而以匹配结果和目标公共子串构建目标知识的正则表达式;
53.由于正则表达式根据源字符串自动化生成,无需开发人员人工处理,因此节省了人力成本和时间成本,且提高了正则表达式的生成效率。
附图说明
54.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
55.图1为本技术一实施例提供的正则表达式的生成方法的应用场景示意图;
56.图2为本技术一实施例提供的电子设备的结构示意图;
57.图3为本技术一实施例提供的正则表达式的生成方法的流程示意图;
58.图4为本技术一实施例提供的图3中步骤320的细节流程示意图;
59.图5为本技术一实施例提供的确定公共子串的示意图;
60.图6为本技术一实施例提供的图3中步骤340的细节流程示意图;
61.图7为本技术另一实施例提供的图3中步骤340的细节流程示意图;
62.图8为本技术一实施例提供的字符映射表的构建方法的流程示意图;
63.图9为本技术一实施例提供的生成正则表达式的示意图;
64.图10为本技术另一实施例提供的生成正则表达式的示意图;
65.图11为本技术一实施例提供的正则表达式的生成装置的框图。
具体实施方式
66.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
67.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
68.图1为本技术实施例提供的正则表达式的生成方法的应用场景示意图。如图1所示,该应用场景包括客户端20和服务端30;客户端20可以是主机、手机、平板电脑等用户终端,用于向服务端30发送与目标知识对应的多个源字符串;服务端30可以是服务器、服务器集群或云计算中心,可以响应于对多个源字符串进行处理,得到目标知识对应的正则表达式。
69.如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是上述服务端30,用于执行正则表达式的生成方法。
70.存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable red-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
71.本技术还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本技术提供的正则表达式的生成方法。
72.参见图3,为本技术一实施例提供的正则表达式的生成方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤350。
73.步骤310:获取对应于目标知识的多个源字符串。
74.其中,目标知识为需要从非结构化数据(本技术方案中,非结构化数据即为非结构化字符串)中提取的知识。不同领域的非结构化数据,可以具有不同的目标知识,根据需求自定义。
75.源字符串是用于学习目标知识的抽取规则的字符串。源字符串可由业务领域的专家提供。示例性的,为学习提取特定公司名称的抽取规则,源字符串可以包括“公司名称:阿里巴巴股份有限公司”、“公司名称:中国平安智能科技有限公司”等。这里,特定公司名称可以是字符串“公司名称:”所在位置的公司名称。
76.步骤320:从多个源字符串中提取出若干目标公共子串。
77.其中,公共子串为多个字符串中共同具有的字符串;目标公共子串为直接作为目标知识对应的正则表达式一部分的公共子串。
78.电子设备可以根据多个源字符串确定若干公共子串,并从中提取出若干目标公共子串。
79.步骤330:将剔除若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串。
80.电子设备可以从每一源字符串中剔除上述若干目标公共子串,并将剔除目标公共
子串的源字符串作为指定字符串,从而得到多个指定字符串。之类,指定字符串为需要进一步处理的字符串。
81.示例性的,源字符串“公司名称:阿里巴巴股份有限公司”、“公司名称:中国平安智能科技有限公司”中的目标公共子串为“公司名称:”、“有限公司”,将源字符串剔除目标公共子串,可以得到指定字符串“阿里巴巴股份”和“中国平安智能科技”。
82.步骤340:根据字符映射表对多个指定字符串进行匹配处理,获得匹配结果。
83.其中,字符映射表包括多种字符类型与正则语法之间的映射关系。示例性的,字符类型为“数字类型”,对应的正则语法为“\d”;字符类型为“小写字母类型”,对应的正则语法为“[a-z]”;字符类型为“大写字母类型”,对应的正则语法为“[a-z]”;字符类型为“中文字符类型”,对应的正则语法为“[\u4e00-\u9fa5]”;字符类型为“小写字母类型或数字类型”,对应的正则语法为“[a-z,0-9]”等。
[0084]
电子设备可以对多个指定字符串的每一字符,在字符映射表中进行匹配处理,从而得到与字符的字符类型相匹配的正则语法。根据多个字符对应的正则语法,确定最终的匹配结果。这里,匹配结果为多个指定字符串均匹配的多个正则语法和/或汉字的组合。
[0085]
步骤350:基于匹配结果与若干目标公共子串,确定与目标知识对应的正则表达式。
[0086]
电子设备可以将匹配结果与若干目标公共子串进行组合,从而得到与目标知识对应的正则表达式。在获得该正则表达式之后,后续可以通过该正则表达式从非结构化字符串中抽取出属于目标知识的字符串。
[0087]
通过上述措施,可以根据目标知识对应的多个源字符串,自动化生成目标知识对应的正则表达式,无需开发人员人工处理,节省了人力成本和时间成本,提高了正则表达式的生成效率。
[0088]
在一实施例中,参见图4,为本技术一实施例提供的图3中步骤320的细节流程示意图,如图4所示,该步骤可以包括步骤321-步骤323。
[0089]
步骤321:从多个源字符串中确定若干公共子串。
[0090]
电子设备可以逐个比对多个源字符串的字符,从而确定相同字符所构成的公共子串。示例性的,如有两个源字符串,电子设备可以两个源字符串展开成矩阵形式,行元素为第一个源字符串的字符,列元素为第二个源字符串的字符,比较每行元素与每列元素是否相同,若相同,则记为1,否则记为0。这种情况下,矩阵中对角线为1所对应的字符序列,记为公共子串。
[0091]
参见图5,为本技术一实施例提供的确定公共子串的示意图,如图5所示,源字符串“公司名称:阿里巴巴股份有限公司”的字符作为行元素,源字符串“公司名称:中国平安智能科技有限公司”的字符作为列元素,经比对行元素和列元素,可以确定公共子串为“公司名称:”、“公司”、“公司”、“有限公司”。
[0092]
步骤322:确定每一公共子串在各个源字符串中对应的多个长度占比。
[0093]
电子设备可以以任一公共子串中字符数量,以及任一源字符串的字符总量,确定该公共子串在该源字符串对应的长度占比。对每一公共子串进行计算后,可以获得每一公共子串在每一源字符串中对应的长度占比。
[0094]
示例性的,对于源字符串“公司名称:阿里巴巴股份有限公司”和“公司名称:中国
平安智能科技有限公司”的公共子串“公司名称:”,其在“公司名称:阿里巴巴股份有限公司”对应的长度占比为33.33%,在“公司名称:中国平安智能科技有限公司”对应的长度占比为29.41%。
[0095]
步骤323:判断多个长度占比是否满足预设占比条件,若是,确定多个长度占比对应的公共子串为目标公共子串。
[0096]
其中,占比条件为预定义用于筛选目标公共子串的条件。
[0097]
针对每一公共子串,在获得该公共子串在每个源字符串对应的长度占比后,电子设备可以判断该公共子串对应的多个长度占比是否满足占比条件。一方面,若否,确定该公共子串并非目标公共子串。另一方面,若是,可以确定该公共子串为目标公共子串。
[0098]
对每个公共子串进行判断后,可以从若干公共子串中确定出目标公共子串。示例性的,源字符串“公司名称:阿里巴巴股份有限公司”和“公司名称:中国平安智能科技有限公司”的公共子串为“公司名称:”、“公司”、“公司”、“有限公司”,目标公共子串为“公司名称:”、“有限公司”。
[0099]
在一实施例中,电子设备在判断每一公共子串在多个源字符串对应的长度占比,是否满足占比条件时,可以判断多个长度占比的平均值是否达到预设占比阈值。这里,占比阈值可以是经验值(比如:20%)。一方面,若公共子串对应的多个长度占比的平均值,达到占比阈值,可以确定该公共子串是目标公共子串。另一方面,若公共子串对应的多个长度占比的平均值,未达到占比阈值,可以确定该公共子串不是目标公共子串。
[0100]
通过该措施,可以筛选出属于正则表达式的目标公共子串。
[0101]
在一实施例中,电子设备在判断每一公共子串在多个源字符串对应的长度占比,是否满足占比条件时,可以针对每一公共子串,判断其在多个源字符串中对应的每一个长度占比,是否均达到预设占比阈值。电子设备可以逐个比较长度占比是否达到占比阈值。一方面,若公共子串在任一源字符串的长度占比未达到占比阈值,可以确定该公共子串不是目标公共子串。另一方面,若公共子串在所有源字符串的长度占比均达到占比阈值,可以确定该公共子串为目标公共子串。
[0102]
通过该措施,以更严苛的占比条件进行筛选,从而更准确地确定属于正则表达式的目标公共子串。
[0103]
在一实施例中,字符映射表包括多个字符映射表项,每一字符映射表项包括字符类型与正则语法的映射关系,且字符映射表项预配置不同优先级。一般,对于同一字符类型对应的多个字符映射表项,字符映射表项中正则语法所指示的字符类型越具体,则该字符映射表项的优先级越高。示例性的,字符类型“数字类型”可以对应于正则语法“\d”和正则语法“[a-z,0-9]”,此时,正则语法“\d”所在的字符映射表项的优先级更高。这说明匹配过程中优先匹配指示含义更具体的正则语法。
[0104]
字符映射表中各个字符映射表项可以通过排列顺序来表示优先级大小,排序越靠前,优先级越大。此时,按排列顺序对各表项进行匹配时,可以实现以优先级大小的顺序确定的匹配过程。示例性的,字符映射表可以包括如下字符映射表项:
[0105]
第一,“\d”#匹配“数字类型”;
[0106]
第二,“[a-z]”#匹配“小写字母类型”;
[0107]
第三,“[a-z]”#匹配“大写字母类型”;
[0108]
第四,“[a-z,0-9]”#匹配“小写字母类型”或“数字类型”;
[0109]
第五,“\w”#匹配“大小写字母类型”或“数字类型”或“英文符号”;
[0110]
第六,“[\u4e00-\u9fa5]”#匹配“中文字符类型”;
[0111]
第七,“.”#匹配任意字符类型。第一到第七条字符映射表项的优先级依次降低。
[0112]
参见图6,为本技术一实施例提供的图3中步骤340的细节流程示意图,如图6所示,步骤340在执行时可以包括步骤341-步骤342。
[0113]
步骤341:将多个指定字符串中相同位置的字符作为一个字符组合,获得多个字符组合。
[0114]
电子设备可以将多个指定字符串中相同位置的字符划分到同一字符组合,从而得到多个字符组合。示例性的,源字符串“公司名称:阿里巴巴股份有限公司”剔除目标公共子串后,得到指定字符串“阿里巴巴股份”;源字符串“公司名称:中国平安智能科技有限公司”剔除目标公共子串后,得到指定字符串“中国平安智能科技”。将“阿里巴巴股份”和“中国平安智能科技”中同一位置的字符划分到字符组合,可以得到字符组合1“阿”和“中”、字符组合2“里”和“国”、字符组合3“巴”和“平”、字符组合4“巴”和“安”、字符组合5“股”和“智”、字符组合6“份”和“能”。为便于描述,在不同指定字符串的长度不同时,将较长的指定字符串内单一字符也划分至字符组合。因此,还得到字符组合7“科”、字符组合8“技”。
[0115]
步骤342:针对每一字符组合,在字符映射表中按照优先级从高到低的顺序,查找第一个与字符组合内所有字符的字符类型匹配的正则语法,作为与字符组合内所有字符对应的正则语法。
[0116]
获得多个字符组合后,针对每一个字符组合,电子设备可以在字符映射表中按照优先级从高到低的顺序,查找与字符组合内所有字符的字符类型匹配的正则语法。当查到第一个与所有字符的字符类型匹配的正则语法时,由于该正则语法的优先级大于未匹配的正则语法的优先级,无需继续匹配,可以确定该正则语法为所有字符对应的正则语法。
[0117]
示例性的,对于上述字符组合1“阿”和“中”,两个字符所匹配的正则语法均为“[\u4e00-\u9fa5]”,因此,字符组合1内所有字符对应的正则语法为“[\u4e00-\u9fa5]”。
[0118]
在一实施例中,匹配过程中,在查找第一个与字符组合内所有字符的字符类型匹配的正则语法之前,电子设备可以检查该字符组合内所有字符是否为相同汉字。一方面,如果任一字符组合内所有字符为相同汉字,电子设备可以直接确定字符组合内所有字符匹配该汉字,而无需在字符映射表中查找相匹配的正则语法。示例性的,若字符组合内所有的字符均为汉字“云”,则该字符组合内所有字符匹配该汉字“云”,而无需匹配到正则语法“[\u4e00-\u9fa5]”。另一方面,如果字符组合内所有字符并非相同汉字,电子设备可以继续执行步骤342的匹配过程。
[0119]
在一实施例中,对多个指定字符串的字符进行匹配处理后,可以得到匹配结果。参见图7,为本技术另一实施例提供的图3中步骤340的细节流程示意图,可以通过如下步骤343-步骤344得到匹配结果。
[0120]
步骤343:针对每一指定字符串,将指定字符串内各字符对应的正则语法或汉字,按照各字符在指定字符串中排列顺序进行排序,获得指定字符串对应的子匹配结果。
[0121]
对于任一指定字符串,经过上述匹配处理后,可以得到各字符对应的正则语法或汉字。电子设备可以根据各字符在指定字符串中排列顺序,对各字符对应的正则语法或汉
z]的最大值为1,最小值为0。
[0134]
电子设备可以根据最长子匹配结果的长度上各个位置的正则语法,以及正则语法数量的最大值和最小值,确定匹配结果。电子设备可以保留最长子匹配结果各位置的正则语法,并以前述确定的正则语法数量最大值和最小值,指示各个位置正则语法可能的数量,得到匹配结果。
[0135]
示例性的,对于上述子匹配结果[\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5]\d\d[a-z][a-z],以及经过长度对齐的子匹配结果[\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5]{0}\d{0}\d{0}[a-z]{0}[a-z]{0},匹配结果可以记为:[\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5]{0,1}\d{0,1}\d{0,1}[a-z]{0,1}[a-z]{0,1}。该匹配结果表示前三个位置为中文字符,第四个位置可以有0到1个中文字符,第五个位置可以有0到1个数字字符,第六个位置可以有0到1个数字字符,第七个位置可以有0到1个小写字母字符,第八个位置可以有0到1个大写字母字符。
[0136]
通过上述措施,在多个子匹配结果长度不同时,可以对多个子匹配结果进行合并处理,从而得到兼容多个子匹配结果的匹配结果。
[0137]
在一实施例中,在确定匹配结果之后,对匹配结果中相邻的至少两个相同正则语法,电子设备可以以正则语法和正则语法数量的组合形式来表示,从而精简匹配结果的表现形式。
[0138]
示例性的,对于上述匹配结果:[\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5][\u4e00-\u9fa5]{0,1}\d{0,1}\d{0,1}[a-z]{0,1}[a-z]{0,1},以组合形式精简表示后,可记为:[\u4e00-\u9fa5]{3,4}\d{0,2}[a-z]{0,1}[a-z]{0,1}。
[0139]
在获得匹配结果之后,电子设备可以依据匹配结果对应的字符与目标公共子串在源字符串的排列顺序,将匹配结果与目标公共子串进行组合,从而得到目标知识对应的正则表达式。示例性的,对于源字符串“公司名称:阿里巴巴股份有限公司”、“公司名称:中国平安智能科技有限公司”,组合得到的正则表达式为“公司名称:[\u4e00-\u9fa5]{6,8}有限公司”。
[0140]
在一实施例中,参见图8,为本技术一实施例提供的字符映射表的构建方法的流程示意图,如图8所示,该方法可以包括如下步骤810-步骤830。
[0141]
步骤810:响应于针对多个字符类型的自定义指令,构建包含字符类型和正则语法的字符映射表项,获得多个字符映射表项。
[0142]
其中,与各字符类型对应的自定义指令,用于指示与字符类型对应的正则语法。自定义指令也可以对多个字符类型指定对应的正则语法。
[0143]
电子设备可以响应于接收到的多个自定义指令,构建多个字符映射表项。
[0144]
步骤820:响应于优先级配置指令,分别为每一字符映射表项配置优先级。
[0145]
其中,优先级配置指令,用于配置各字符映射表项的优先级。示例性的,优先级配置指令可以指示各字符映射表项对应的表示优先级的数值;或者,优先级配置指令可以是对字符映射表项的拖动指令,根据拖动指令对各字符映射表项拖动后,字符映射表项之间的先后顺序可以表示相互之间的优先级大小关系。
[0146]
电子设备可以响应于接收到的优先级配置指令,为已构建的多个字符映射表项配
置优先级。
[0147]
步骤830:根据多个已配置优先级的字符映射表项,构建字符映射表。
[0148]
在获得多个字符映射表项,并确定各字符映射表项的优先级之后,电子设备可以构建出字符映射表。
[0149]
在一实施例中,在获得与目标知识对应的正则表达式之后,电子设备可以根据正则表达式对非结构化字符串进行匹配,从而获得非结构化字符串中对应于目标知识的目标字符串。
[0150]
其中,非结构化字符串为需要进行结构化处理,以抽取目标知识的字符串。电子设备可以在获取多个源字符串时,同时获取待处理的非结构化字符串;或者,电子设备可以在依据多个源字符串处理得到正则表达式之后,获取待处理的非结构化字符串。
[0151]
示例性的,正则表达式为“公司名称:[\u4e00-\u9fa5]{6,8}有限公司”;非结构化字符串为:
[0152]
(一)原始权益人概况
[0153]
公司名称:合肥市国正小额贷款有限公司
[0154]
统一社会信用代码:913401****36186347
[0155]
注册资本:70000万元
[0156]
法定代表人:卜xx
[0157]
住所:安徽省n市h路999号z大厦第四层东半部
[0158]
类型:有限责任公司(非自然人投资或控股的法人独资)
[0159]
营业期限:自2008年12月24日至长期
[0160]
(二)信用增级机构概况
[0161]
公司名称:正奇安徽金融控股有限公司
[0162]
统一社会信用代码:913401****4499919h
[0163]
注册资本:278708.948413万元
[0164]
法定代表人:俞xx
[0165]
住所:安徽省f市t区s路169号xx大厦12-15层
[0166]
类型:其他有限责任公司
[0167]
营业期限:自2012年10月10日至2062年10月9日
[0168]
通过正则表达式进行匹配抽取,获得对应于目标知识的目标字符串“公司名称:合肥市国正小额贷款有限公司”、“公司名称:正奇安徽金融控股有限公司”。
[0169]
参见图9,为本技术一实施例提供的生成正则表达式的示意图,如图9所示,在相关技术中,由业务专家提供领域知识和待处理的非结构化数据。开发人员根据领域知识构建正则表达式。以正则表达式抽取非结构化数据的字符串后,由业务专家检验准确率,以此判断正则表达式是否合格。若不合格,则继续提供领域知识,以供开发人员修正正则表达式。在准确率不达标的情况下,往往需要经历多次开发流程才可验收正则表达式。这个过程会耗费大量人力成本和时间成本。
[0170]
参见图10,为本技术另一实施例提供的生成正则表达式的示意图,如图10所示,在本技术方案中,由业务专家提供领域知识(即源字符串)和非结构化数据。本方案根据源字符串自动化生成“规则字符串”(即正则表达式),并可通过正则表达式抽取非结构化数据的
字符串。由业务专家检验准确率,以此判断正则表达式是否合格。若不合格,则继续提供领域知识,进一步自动化修正正则表达式。通过若干次自动化流程后,可以生成正则表达式,降低了人力成本和时间成本,提高了生成效率。
[0171]
下面以两个实施例说明正则表达式的生成过程:
[0172]
预定义的字符映射表可以包括如下字符映射表项:
[0173]
第一,“\d”#匹配“数字类型”;
[0174]
第二,“\w”#匹配“数字类型”或str字符;
[0175]
第三,“[a-z]”#匹配“小写字母类型”;
[0176]
第四,“[a-z]”#匹配“大写字母类型”;
[0177]
第五,“[a-z,0-9]”#匹配“小写字母类型”或“数字类型”;
[0178]
第六,“[\u4e00-\u9fa5]”#匹配“中文字符类型”;
[0179]
第七,(?:.?)#匹配任意字符类型。第一到第七条字符映射表项的优先级依次降低。
[0180]
实施例1,获得源字符串31f5dn6nb和c5c39ea46ad。这两个源字符串并不存在公共子串,因此,两个源字符串本身可作为两个指定字符串进行匹配处理,获得正则表达式:[a-z,0-9]\d[a-z]\d[a-z,0-9][a-z][a-z,0-9]{3}[a-z]{0,2}。
[0181]
实施例2,获得源字符串“2014-2016年,公司总收入分别为2.64亿元、3.48亿元和3.45亿元;利润总额分别为1.69亿元、1.97亿元和2.11亿元;”、“2017-2019年,公司总收入分别为4.29亿元、5.57亿元和5.63亿元;利润总额分别为2.23亿元、2.16亿元和2.23亿元;”。从两个源字符串中无法提取出目标公共子串,以两个源字符串本身作为指定字符串进行匹配处理。在匹配过程中,“年”、“公司总收入分别为”、“亿元”、“利润总额分别为”、“亿元和”是相同位置的相同汉字,因此被保留。在匹配之后,获得正则表达式:\d{4}\w\d{4}年\w公司总收入分别为\d\w\d{2}亿元\w\d\w\d{2}亿元和\d\w\d{2}亿元\w利润总额分别为\d\w\d{2}亿元\w\d\w\d{2}亿元和\d\w\d{2}亿元\w。
[0182]
图11是本发明一实施例的一种正则表达式的生成装置的框图,如图11所示,该装置可以包括:
[0183]
获取模块1110,用于获取对应于目标知识的多个源字符串;
[0184]
提取模块1120,用于从所述多个源字符串中提取出若干目标公共子串;
[0185]
剔除模块1130,用于将剔除所述若干目标公共子串的每一源字符串作为指定字符串,获得多个指定字符串;
[0186]
匹配模块1140,用于根据字符映射表对所述多个指定字符串进行匹配处理,获得匹配结果;
[0187]
确定模块1150,用于基于所述匹配结果与所述若干目标公共字符串,确定与所述目标知识对应的正则表达式。
[0188]
上述装置中各个模块的功能和作用的实现过程具体详见上述正则表达式的生成方法中对应步骤的实现过程,在此不再赘述。
[0189]
在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。
在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0190]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0191]
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献