基于人工智能的字符串处理方法及相关设备转让专利

申请号 : CN202010610790.0

文献号 : CN111797594B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董润华徐国强

申请人 : 深圳壹账通智能科技有限公司

摘要 :

本申请涉及人工智能技术领域,提供一种基于人工智能的字符串处理方法,所述方法包括:接收输入的多个因子;从区块链中获取与所述多个因子匹配的多个字符串;从所述多个字符串的多个子串中,将所述多个字符串均包含的子串确定为公共子串;通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型;将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串;将所述公共子串与所述规则字符串进行拼接,以构建正则表达式。本发明可应用于智慧政务场景中,从而推动智慧城市的建设。

权利要求 :

1.一种基于人工智能的字符串处理方法,其特征在于,所述基于人工智能的字符串处理方法包括:接收输入的多个因子,其中,所述因子为需要从文本中提取的字段;

从区块链中获取与所述多个因子匹配的多个字符串,其中,每个所述字符串包括多个子串;

从所述多个字符串的多个子串中,将所述多个字符串均包含的子串确定为公共子串;

通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型,其中,所述非公共子串为所述多个子串中不同于所述公共子串的子串;

将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串,包括:获取所述非公共子串在每个位置的字符类型对应的字符标识,针对每个位置的所述字符标识,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符,将所有位置的规则字符进行组合,获得所述规则字符串;

将所述公共子串与所述规则字符串进行拼接,以构建正则表达式。

2.根据权利要求1所述的基于人工智能的字符串处理方法,其特征在于,所述通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型包括:根据所述公共子串,从每个所述字符串中获得非公共子串;

按照位置先后顺序,依次通过开发语言判断所有所述非公共子串在每个位置的字符的字符类型;

将所有位置的字符类型进行组合,获得所有所述非公共子串的字符所属的字符类型。

3.根据权利要求1所述的基于人工智能的字符串处理方法,其特征在于,所述将所述公共子串与所述规则字符串进行拼接,以构建正则表达式包括:获取所述公共子串在所述多个字符串中的第一位置;

获取所述规则字符串对应的非公共子串在所述多个字符串中的第二位置;

将所述公共子串与所述规则字符串按照所述第一位置和所述第二位置的衔接关系进行拼接,获得正则表达式。

4.根据权利要求1至3中任一项所述的基于人工智能的字符串处理方法,其特征在于,所述基于人工智能的字符串处理方法还包括:获取多篇测试文档以及多个测试因子;

使用人工定义的预设正则表达式从所述多篇测试文档中提取第一因子;

使用构建的所述正则表达式从所述多篇测试文档中提取第二因子;

从所述第一因子和所述第二因子中,确定所述第一因子和所述第二因子均包含的相同因子;

根据所述相同因子的数量以及所述多个测试因子的数量,计算准确率;

若所述准确率高于预设阈值,确定构建的所述正则表达式符合要求。

5.根据权利要求4所述的基于人工智能的字符串处理方法,其特征在于,所述基于人工智能的字符串处理方法还包括:若所述准确率低于预设阈值,确定构建的所述正则表达式不符合要求;

对构建的所述正则表达式进行优化。

6.根据权利要求1所述的基于人工智能的字符串处理方法,其特征在于,所述基于人工智能的字符串处理方法还包括:接收输入的目标文档;

将所述目标文档与所述正则表达式进行匹配,以抽取所述目标文档中的目标因子,其中,所述目标因子的字符类型与所述多个因子的字符类型相同。

7.一种字符串处理装置,其特征在于,所述字符串处理装置包括:接收模块,用于接收输入的多个因子,其中,所述因子为需要从文本中提取的字段;

获取模块,用于从区块链中获取与所述多个因子匹配的多个字符串,其中,每个所述字符串包括多个子串;

确定模块,用于从所述多个字符串的多个子串中,将所述多个字符串均包含的子串确定为公共子串;

所述确定模块,还用于通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型,其中,所述非公共子串为所述多个子串中不同于所述公共子串的子串;

映射模块,用于将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串,包括:获取所述非公共子串在每个位置的字符类型对应的字符标识,针对每个位置的所述字符标识,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符,将所有位置的规则字符进行组合,获得所述规则字符串;

拼接模块,用于将所述公共子串与所述规则字符串进行拼接,以构建正则表达式。

8.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至6中任意一项所述的基于人工智能的字符串处理方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至6任意一项所述的基于人工智能的字符串处理方法。

说明书 :

基于人工智能的字符串处理方法及相关设备

技术领域

[0001] 本发明涉及人工智能技术领域,尤其涉及一种基于人工智能的字符串处理方法及相关设备。

背景技术

[0002] 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,既使用“规律字符串”提取因子。
[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] 图1是本发明公开的一种基于人工智能的字符串处理方法的较佳实施例的流程图。
[0049] 图2是本发明公开的一种字符串处理装置的较佳实施例的功能模块图。
[0050] 图3是本发明实现基于人工智能的字符串处理方法的较佳实施例的电子设备的结构示意图。

具体实施方式

[0051] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052] 本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0053] 需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
[0054] 所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述电子设备还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA等。
[0055] 请参见图1,图1是本发明公开的一种基于人工智能的字符串处理方法的较佳实施例的流程图。其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0056] S11、接收输入的多个因子。
[0057] 其中,在文本标签化这个任务中,需要提取的字段叫做因子,把字段值叫做因子值,比如说:从某个通知书中提取截止日期,截止日期叫做因子,提取到的具体的值叫做因子值。
[0058] S12、从区块链中获取与所述多个因子匹配的多个字符串。
[0059] 其中,每个所述字符串包括多个子串。
[0060] S13、从所述多个字符串的多个子串中,将所述多个字符串均包含的子串确定为公共子串。
[0061] 具体的,可以用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0,然后求出对角线最长的1的序列,对应的位置就是最长匹配子串的位置,n个字符串的最长子串就是两两相比拿到两个字符串的子串后和下一个字符串在比,比如:字符串ABC、AABC、BCD,先求出ABC、AABC的最长子串是ABC,再拿ABC和BCD相比,提出BC。
[0062] S14、通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型。
[0063] 其中,开发语言比如python语言、JAVA语言、C++语言等。
[0064] 其中,所述非公共子串为所述多个子串中不同于所述公共子串的子串。
[0065] 其中,字符类型可以包括但不限于中文、英文、阿拉伯数字、符号、空格等等。
[0066] 具体的,所述通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型包括:
[0067] 根据所述公共子串,从每个所述字符串中获得非公共子串;
[0068] 按照位置先后顺序,依次通过开发语言判断所有所述非公共子串在每个位置的字符的字符类型;
[0069] 将所有位置的字符类型进行组合,获得所有所述非公共子串的字符所属的的字符类型。
[0070] 其中,基于正则语法规则,可以把字符串在每个位置的字符的字符类型分为如下几种情况:数字、小写英文、大写英文、小写英文或者大写英文、小写英文或者数字、大写英文或者数字、中文、大写英文或者小写英文或者数字、任何字符、换行空格。
[0071] 举例来说,两个非公共子串分别为:“一123aaa”和“二1AAba”,按照位置先后顺序,第一个字符串在第一个位置的字符为“一”,第二个字符串在第一个位置的字符为“二”,可以确定第一个位置的字符的字符类型为中文,后面字符以此类推,又比如,第一个字符串在第三个位置的字符为“2”,第二个字符串在第三个位置的字符为“A”,可以确定第三个位置的字符的字符类型为数字或大写英文,又比如,第一个字符串在第七个位置的字符为“a”,第二个字符串在第七个位置的字符不存在,可以确定第七个位置的字符的字符类型为任何字符。
[0072] S15、将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串。
[0073] 其中,在正则表达式中“\d”表达数字,在python语言中可以用isinstance(1,int)来判断是否是阿拉伯数字,如果判断某个字符是阿拉伯数字,就会隐射成“\d”。
[0074] 具体的,所述将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串包括:
[0075] 获取所述非公共子串在每个位置的字符类型对应的字符标识;
[0076] 针对每个位置的所述字符标识,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符;
[0077] 将所有位置的规则字符进行组合,获得规则字符串。
[0078] 其中,字符标识用于唯一标识每个位置的字符类型,该字符标识可以用数字表示,比如,使用“1”来标识字符类型“数字”,使用“2”来标识字符类型“小写英文”,使用“3”来标识字符类型“大写英文”……使用“9”来标识字符类型“任何字符”,使用“10”来标识字符类型“换行空格”。
[0079] 其中,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符,比如字符标识“1”标识字符类型“数字”,“数字”在正则语法中可以映射成“\d”。
[0080] S16、将所述公共子串与所述规则字符串进行拼接,以构建正则表达式。
[0081] 具体的,所述将所述公共子串与所述规则字符串进行拼接,以构建正则表达式包括:
[0082] 获取所述公共子串在所述多个字符串中的第一位置;
[0083] 获取所述规则字符串对应的非公共子串在所述多个字符串中的第二位置;
[0084] 将所述公共子串与所述规则字符串按照所述第一位置和所述第二位置的衔接关系进行拼接,获得正则表达式。
[0085] 所述方法还包括:
[0086] 获取多篇测试文档以及多个测试因子;
[0087] 使用人工定义的预设正则表达式从所述多篇测试文档中提取第一因子;
[0088] 使用构建的所述正则表达式从所述多篇测试文档中提取第二因子;
[0089] 从所述第一因子和所述第二因子中,确定所述第一因子和所述第二因子均包含的相同因子;
[0090] 根据所相同因子的数量以及所述多个测试因子的数量,计算准确率;
[0091] 若所述准确率高于预设阈值,确定构建的所述正则表达式符合要求。
[0092] 其中,正则表达式的准确率需要达到80%,即预设阈值为80%,如果低于这个值,就表明构建的正则表达式不符合要求,如果高于这个值,就表明构建的正则表达式符合要求。
[0093] 所述方法还包括:
[0094] 若所述准确率低于预设阈值,确定构建的所述正则表达式不符合要求;
[0095] 对构建的所述正则表达式进行优化。
[0096] 其中,如果准确率低于预设阈值,需要对构建的正则表达式进行优化,即需要重新构建正则表达式,比如,重新提取公共子串,重新进行字符串的映射等。
[0097] 所述方法还包括:
[0098] 接收输入的目标文档;
[0099] 将所述目标文档与所述正则表达式进行匹配,以抽取所述目标文档中的目标因子,其中,所述目标因子的字符类型与所述多个因子的字符类型相同。
[0100] 其中,在生成正则表达式之后,就可以直接使用该正则表达式来提取因子了。该提取的目标因子与构建正则表达式中所使用的多个因子的字符类型是相同的。
[0101] 所述方法还包括:
[0102] 从所述目标文档中,对包括所述目标因子的目标字符串进行定位;
[0103] 输出所述目标字符串的下标位置;
[0104] 根据所述下标位置,输出与所述目标字符串相邻的上下文的文档。
[0105] 其中,通过这种方式返回下标位置以及上下文的文档,可以方便其他用户(比如业务人员)很方便的找到当前的目标因子在目标文档中的所在地。
[0106] 在图1所描述的方法流程中,不需要人工预定义“规则字符串”,不会因为格式的多变修改“规则字符串”,通过逆向流程,根据输入的多个因子,来自动生成匹配的正则表达式,可扩展性高。
[0107] 以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
[0108] 请参见图2,图2是本发明公开的一种字符串处理装置的较佳实施例的功能模块图。
[0109] 在一些实施例中,所述字符串处理装置运行于电子设备中。所述字符串处理装置可以包括多个由程序代码段所组成的功能模块。所述字符串处理装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的基于人工智能的字符串处理方法中的部分或全部步骤。
[0110] 本实施例中,所述字符串处理装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、获取模块202、确定模块203、映射模块204及拼接模块205。
[0111] 本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在本实施例中详述。
[0112] 接收模块201,用于接收输入的多个因子,其中,所述因子为需要从文本中提取的字段。
[0113] 其中,在文本标签化这个任务中,需要提取的字段叫做因子,把字段值叫做因子值,比如说:从某个通知书中提取截止日期,截止日期叫做因子,提取到的具体的值叫做因子值。
[0114] 获取模块202,用于从区块链中获取与所述多个因子匹配的多个字符串。
[0115] 其中,每个所述字符串包括多个子串。
[0116] 确定模块203,用于从所述多个字符串的多个子串中,将所述多个字符串均包含的子串确定为公共子串。
[0117] 具体的,可以用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0,然后求出对角线最长的1的序列,对应的位置就是最长匹配子串的位置,n个字符串的最长子串就是两两相比拿到两个字符串的子串后和下一个字符串在比,比如:字符串ABC、AABC、BCD,先求出ABC、AABC的最长子串是ABC,再拿ABC和BCD相比,提出BC。
[0118] 所述确定模块203,还用于通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型。
[0119] 其中,开发语言比如python语言、JAVA语言、C++语言等。
[0120] 其中,所述非公共子串为所述多个子串中不同于所述公共子串的子串。
[0121] 其中,字符类型可以包括但不限于中文、英文、阿拉伯数字、符号、空格等等。
[0122] 具体的,所述通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型包括:
[0123] 根据所述公共子串,从每个所述字符串中获得非公共子串;
[0124] 按照位置先后顺序,依次通过开发语言判断所有所述非公共子串在每个位置的字符的字符类型;
[0125] 将所有位置的字符类型进行组合,获得所有所述非公共子串的字符所属的的字符类型。
[0126] 其中,基于正则语法规则,可以把字符串在每个位置的字符的字符类型分为如下几种情况:数字、小写英文、大写英文、小写英文或者大写英文、小写英文或者数字、大写英文或者数字、中文、大写英文或者小写英文或者数字、任何字符、换行空格。
[0127] 举例来说,两个非公共子串分别为:“一123aaa”和“二1AAba”,按照位置先后顺序,第一个字符串在第一个位置的字符为“一”,第二个字符串在第一个位置的字符为“二”,可以确定第一个位置的字符的字符类型为中文,后面字符以此类推,又比如,第一个字符串在第三个位置的字符为“2”,第二个字符串在第三个位置的字符为“A”,可以确定第三个位置的字符的字符类型为数字或大写英文,又比如,第一个字符串在第七个位置的字符为“a”,第二个字符串在第七个位置的字符不存在,可以确定第七个位置的字符的字符类型为任何字符。
[0128] 映射模块204,用于将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串。
[0129] 其中,在正则表达式中“\d”表达数字,在python语言中可以用isinstance(1,int)来判断是否是阿拉伯数字,如果判断某个字符是阿拉伯数字,就会隐射成“\d”。
[0130] 具体的,所述将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串包括:
[0131] 获取所述非公共子串在每个位置的字符类型对应的字符标识;
[0132] 针对每个位置的所述字符标识,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符;
[0133] 将所有位置的规则字符进行组合,获得规则字符串。
[0134] 其中,字符标识用于唯一标识每个位置的字符类型,该字符标识可以用数字表示,比如,使用“1”来标识字符类型“数字”,使用“2”来标识字符类型“小写英文”,使用“3”来标识字符类型“大写英文”……使用“9”来标识字符类型“任何字符”,使用“10”来标识字符类型“换行空格”。
[0135] 其中,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符,比如字符标识“1”标识字符类型“数字”,“数字”在正则语法中可以映射成“\d”。
[0136] 拼接模块205,用于将所述公共子串与所述规则字符串进行拼接,以构建正则表达式。
[0137] 具体的,所述将所述公共子串与所述规则字符串进行拼接,以构建正则表达式包括:
[0138] 获取所述公共子串在所述多个字符串中的第一位置;
[0139] 获取所述规则字符串对应的非公共子串在所述多个字符串中的第二位置;
[0140] 将所述公共子串与所述规则字符串按照所述第一位置和所述第二位置的衔接关系进行拼接,获得正则表达式。
[0141] 在图2所描述的字符串处理装置中,不需要人工预定义“规则字符串”,不会因为格式的多变修改“规则字符串”,通过逆向流程,根据输入的多个因子,来自动生成匹配的正则表达式,可扩展性高。
[0142] 如图3所示,图3是本发明实现基于人工智能的字符串处理方法的较佳实施例的电子设备的结构示意图。所述电子设备3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
[0143] 本领域技术人员可以理解,图3所示的示意图仅仅是所述电子设备3的示例,并不构成对所述电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备3还可以包括输入输出设备、网络接入设备等。
[0144] 所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述电子设备3的控制中心,利用各种接口和线路连接整个电子设备3的各个部分。
[0145] 所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子设备3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备3的使用所创建的数据(比如音频数据)等。此外,存储器31可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
[0146] 结合图1,所述电子设备3中的所述存储器31存储多个指令以实现一种基于人工智能的字符串处理方法,所述处理器32可执行所述多个指令从而实现:
[0147] 接收输入的多个因子,其中,所述因子为需要从文本中提取的字段;
[0148] 从区块链中获取与所述多个因子匹配的多个字符串,其中,每个所述字符串包括多个子串;
[0149] 从所述多个字符串的多个子串中,将所述多个字符串均包含的子串确定为公共子串;
[0150] 通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型,其中,所述非公共子串为所述多个子串中不同于所述公共子串的子串;
[0151] 将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串;
[0152] 将所述公共子串与所述规则字符串进行拼接,以构建正则表达式。
[0153] 在一个实施方式中,述通过开发语言确定所述多个字符串中的非公共子串的字符所属的字符类型包括:
[0154] 根据所述公共子串,从每个所述字符串中获得非公共子串;
[0155] 按照位置先后顺序,依次通过开发语言判断所有所述非公共子串在每个位置的字符的字符类型;
[0156] 将所有位置的字符类型进行组合,获得所有所述非公共子串的字符所属的的字符类型。
[0157] 在一个实施方式中,所述将所述非公共子串所属的字符类型映射成与所述字符类型匹配的规则字符串包括:
[0158] 获取所述非公共子串在每个位置的字符类型对应的字符标识;
[0159] 针对每个位置的所述字符标识,根据正则语法映射关系,将所述字符标识进行映射,获得每个位置的规则字符;
[0160] 将所有位置的规则字符进行组合,获得规则字符串。
[0161] 在一个实施方式中,所述将所述公共子串与所述规则字符串进行拼接,以构建正则表达式包括:
[0162] 获取所述公共子串在所述多个字符串中的第一位置;
[0163] 获取所述规则字符串对应的非公共子串在所述多个字符串中的第二位置;
[0164] 将所述公共子串与所述规则字符串按照所述第一位置和所述第二位置的衔接关系进行拼接,获得正则表达式。
[0165] 具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
[0166] 在图3所描述的电子设备3中,不需要人工预定义“规则字符串”,不会因为格式的多变修改“规则字符串”,通过逆向流程,根据输入的多个因子,来自动生成匹配的正则表达式,可扩展性高。
[0167] 所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器以及只读存储器(ROM,Read‑Only Memory)。
[0168] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0169] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0170] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中的方案的目的。
[0171] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用应用程序功能单元的形式实现。
[0172] 所述集成的单元如果以应用程序功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以应用程序产品的形式体现出来,该计算机应用程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173] 需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、物品或者方法中还存在另外的相同要素。
[0174] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。