数字转换方法、装置、电子设备及可读存储介质与流程

文档序号:26751957发布日期:2021-09-25 02:46阅读:68来源:国知局
数字转换方法、装置、电子设备及可读存储介质与流程

1.本发明涉及计算机领域,特别是涉及一种数字转换方法、装置、电子设备及可读存储介质。


背景技术:

2.随着大数据时代的来临,在计算机领域中,人们会经常使用到中文数字,然而文本中的中文数字没有阿拉伯数字直观、清晰,通常将文本中的中文数字转换为阿拉伯数字。
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.图1是本发明实施例提供的一种数字转换方法的流程图;
36.图2是本发明实施例提供的一种数字转换方法的整体实施流程图;
37.图3是本发明实施例提供的一种数字转换装置示意图之一;
38.图4是本发明实施例提供的一种数字转换装置示意图之二;
具体实施方式
39.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
40.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
41.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的数字转换方法、装置、电子设备及可读存储介质进行详细地说明。
42.本发明的第一实施方式涉及一种数字转换的方法,其流程图如图1所述,包括:
43.步骤101,预先确定数字单位。
44.需要说明的是,在本实施方式中,预先确定了数字单位,例如:十、百、千、万、亿,包括但不限于这些。需要说明的是,在本实施方式中,获取的中文数字是文本数据中的中文金额信息,这些中文金额信息可以通过正则表达式,用事先定义好的一个规则字符串从文本数据内容中获取我们想要的中文金额信息,所述规则字符串由一些特定字符、及这些特定字符的组合。
45.文本数据中包括大量的文字信息,例如金额、数量等,一些有重要意义和价值的信息显式或隐式地散落在海量的文字中,从而影响人们无法直观,高效地从中找到需要的信息。因此为了使人们能够直观、高效的找到金额的信息,首先要利用正则表达式从文本数据中提取出中文金额信息。本实施方式不对从文本数据中提取出中文金额信息的提取方式进行限定。
46.步骤102,获取需要进行数字格式转换的中文数字。
47.需要说明的是,在本实施方式中,文本数据中包括大量的文字信息,一些有重要意义和价值的信息显式或隐式地散落在海量的文字中,从而影响人们无法直观,高效地从中找到需要的信息。因此为了使人们能够高效的找到我们所需要的中文数字,首先通过正则表达式,用事先定义好的一个规则字符串从文本数据内容中获取我们想要的中文数字,所述规则字符串由一些特定字符、及这些特定字符的组合,从文本数据中提取出中文数字。本实施方式不对从文本数据中提取出中文数字的提取方式进行限定。
48.步骤103,根据预先确定的数字单位,从所述中文数字中获取目标拆分单位。
49.需要说明的是,在本实施方式中,在获取到的中文数字中找到所述中文数字当前的最大单位。如图2所示,例如:“二十三亿四佰零七万九仟一百二十六元”。可以发现,这个中文数字中的当前最大单位是“亿”。
50.步骤104,根据所述目标拆分单位对所述中文数字进行拆分,获取第一子中文数字和第二子中文数字。
51.需要说明的是,在本实施方式中,对获取到的中文数字按照找到的所述中文数字的当前最大单位进行拆分,得到当前最大单位部分数字和最大单位部分数字之后的部分的数字。如图2所示,例如:“二十三亿四佰零七万九仟一百二十六元”。可以发现,按照当前最大单位是“亿”可以拆分为“二十三”和“四佰零七万九仟一百二十六”。之后再分别对当前最大单位部分数字“二十三”和最大单位部分数据之后的部分的数字“四佰零七万九仟一百二十六”进行递归拆分,直到拆分到不能拆分为止。例如:“二十三”按照当前最大单位是“十”可以拆分为“二”和“三”,“四佰零七万九仟一百二十六”按照当前最大单位是“万”可以拆分为“四佰零七”和“九仟一百二十六”,“四佰零七”和“九仟一百二十六”还可以再依此类推进行递归拆分,直到拆分后的数字不能拆分为止。然而传统的将中文金额信息转换为阿拉伯数字金额的方案如下:
52.例如,“九百五十六元”,我们用total表示最终结果,r表示下一个数字的单位:
53.1)六-->6;因为6<10:total=6;
54.2)十-->10;因为10≥10,且不为0:r=10;
55.3)五-->5;因为5<10:total=6+5*10=56;
56.4)百-->100;因为100≥10,且不为0:r=100;
57.5)九-->9;因为9<10:total=56+9*100=956;
58.从个位数字开始看,若遇到的是0到9的数字,就乘以前一位的单位,若遇到新的单位(十、百、千、万)就替换成数字供下一个数字用。这种方案不能够处理所有的中文金额字符串,因为单位从右到左是不断升高的,,但是超过“万”以后,就会出现“百万”、“千万”这种情况,此时小单位“百”和“千”是出现在“万”之前的,也可以理解为此时单位是由多个字符组成的,这种单位嵌套的情况都会导致之前的算法失效出现转换异常的问题,然而要想处理这些异常那么此时程序就需要更加复杂。
59.本技术在传统的中文文本中的中文数字转换为阿拉伯数字的基础上,增加了自然语言对金额数字的表述形式上对内部本身逻辑的考虑,这样就解决了在单位嵌套的情况下出现的转换异常问题。以上示例只是举例说明,本技术对此不做限定。
60.步骤105,将所述第一子中文数字转换成第一子阿拉伯数字,将所述第二子中文数字转换成第二子阿拉伯数字,根据所述第一子阿拉伯数字、第二子阿拉伯数字以及所述目标拆分单位,生成所述中文数字对应的阿拉伯数字。
61.将进行递归拆分得到的中文数字按照最大单位部分之前的数字*单位+最大单位部分之后的部分数字的公式进行运算得到阿拉伯数字。例如:“二十三亿四佰零七万九仟一百二十六元”进行递归拆分最终得到“二”“三”“四”“零七”“九”“一”“二”“六”按照所述公式进行运算得到的阿拉伯数字结果是2304079126.
62.本具体实施例包括以下优点:
63.本具体实施例提供了一种数字转换方法,所述方法包括:预先确定数字单位,获取需要进行数字格式转换的中文数字,根据预先确定的数字单位,从所述中文数字中获取目标拆分单位,根据所述目标拆分单位对所述中文数字进行拆分,获取第一子中文数字和第二子中文数字,将所述第一子中文数字转换成第一子阿拉伯数字,将所述第二子中文数字
转换成第二子阿拉伯数字,根据所述第一子阿拉伯数字、第二子阿拉伯数字以及所述目标拆分单位,生成所述中文数字对应的阿拉伯数字。本具体实施例提供的一种数字转换方法,解决了在中文数字转换成相应的阿拉伯数字出现的转换异常问题,以及处理这种异常,程序就会更加复杂的问题;利用正则表达式从文本数据中获取到中文数字,能够使人们从海量的文字中高效地获取到有重要价值的信息;将所述文本数据中的中文数字转化为阿拉伯数字,可使数字显示直观、清晰。
64.本发明的第二实施方式涉及一种语义识别的装置,参照图3所述,该装置具体可以包括:
65.预设模块301,用于预先确定数字单位;
66.第一获取模块302,用于获取需要进行数字格式转换的中文数字;
67.第二获取模块303,用于根据预先确定的数字单位,从所述中文数字中获取目标拆分单位;
68.拆分模块304,用于将根据目标拆分单位对所述中文数字进行拆分,获取第一子中文数字和第二子中文数字;
69.转换模块305,用于将所述第一子中文数字转换成第一子阿拉伯数字,将所述第二子中文数字转换成第二子阿拉伯数字,根据所述第一子阿拉伯数字、第二子阿拉伯数字以及所述目标拆分单位,生成所述中文数字对应的阿拉伯数字。
70.可选地,如图3所示,所述拆分模块304包括:
71.拆分子模块3041,用于对对所述第一子中文数字和所述第二子中文数字分别进行递归拆分,直到不能拆分,得到多个子中文数字。
72.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
73.本具体实施例包括以下优点:
74.本具体实施例提供的一种数字转换装置,预先确定数字单位,获取需要进行数字格式转换的中文数字,根据预先确定的数字单位,从所述中文数字中获取目标拆分单位,根据所述目标拆分单位对所述中文数字进行拆分,获取第一子中文数字和第二子中文数字,将所述第一子中文数字转换成第一子阿拉伯数字,将所述第二子中文数字转换成第二子阿拉伯数字,根据所述第一子阿拉伯数字、第二子阿拉伯数字以及所述目标拆分单位,生成所述中文数字对应的阿拉伯数字解决了在金额字符串转换成相应的阿拉伯数字出现的转换异常问题,
75.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
76.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、可存储介质和处理器。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
77.在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储
器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
78.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
79.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
80.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
81.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
82.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
83.以上对本发明所提供的一种语义识别方法、装置、可存储介质和处理器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不
应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1