CN112463819A - 基于中文表达式的计算方法、装置、设备及存储介质 - Google Patents
基于中文表达式的计算方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112463819A CN112463819A CN202011352143.0A CN202011352143A CN112463819A CN 112463819 A CN112463819 A CN 112463819A CN 202011352143 A CN202011352143 A CN 202011352143A CN 112463819 A CN112463819 A CN 112463819A
- Authority
- CN
- China
- Prior art keywords
- chinese
- expression
- chinese expression
- data
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000014509 gene expression Effects 0.000 title claims abstract description 135
- 238000004364 calculation method Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012795 verification Methods 0.000 claims abstract description 33
- 238000004458 analytical method Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010195 expression analysis Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种基于中文表达式的计算方法、装置、设备及存储介质。该方法包括:接收用户输入中文表达式;对所述中文表达式进行格式合规性验证;验证通过后,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句;利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。上述方法中采用递归下降分析法对用户实时输入公式进行解析,当用户改变业务计算逻辑或新增业务时,无需修改代码仅需维护公式表达式就能达到目的,降低了维护成本提高了***稳定性。
Description
技术领域
本发明涉及计算机数据处理技术领域,具体涉及一种基于中文表达式的计算方法、装置、设备及存储介质。
背景技术
随着智能管理***的发展,越来越多的人事应用***投入使用。人事***不可避免地需要处理各式各样的公式,各种人事应用***内数据的计算公式都是由研发人员通过代码基于用户的业务规则事先定义好,用户可以修改软件计算公式的变量值但不能修改其计算规则。为了在应用***中表达这些形式多样的公式,主流做法是由研发人员提供基于业务现状定义的已知计算逻辑公式库由终端用户选择。
目前当应用***正式上线运行,用户由于企业自身发展需要,某些以前定义的计算公式运算规则将不再适用,这就需要开发人员对原代码程序进行修改升级处理,公式的修改需要开发人员的参与,此种方式极大的降低应用***计算的实时性和灵活性,且由于规则代码的重新编写还可能导致***稳定性大打折扣。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于中文表达式的计算方法、装置、设备及存储介质。
为实现以上目的,本发明采用如下技术方案:
一种基于中文表达式的计算方法,包括:
接收用户输入中文表达式;
对所述中文表达式进行格式合规性验证;
验证通过后,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句;
利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。
可选的,所述对所述中文表达式进行格式合规性验证,包括:
对所述中文表达式进行分析,得到所述中文表达式的运算符号和运算因子;
判断所述运算符号是否满足预设运算符号标准;
若满足预设运算符号标准,判断所述运算因子是否与预设指标信息集合相匹配;
若与预设指标信息集合匹配,则对所有的所述运算因子进行预设数据标注的匹配。
可选的,所述SQL语句包括:字符SQL语句和符号SQL语句;
所述利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句,包括:
对所述中文表达式进行分析,得到公式基本元素;所述公式基本元素包括中文字符元素和运算符号元素;
将所述中文字符元素进行识别并转换成对应的所述字符SQL语句;
将所述运算符号元素进行识别并转换成对应的所述符号SQL语句。
可选的,所述利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果,包括:
创建临时表,将所述中文字符元素存入所述临时表中;
读取预先获取的所述待计算数据存入所述临时表中所述中文字符元素对应的数据字段内;
执行所述SQL语句对所述数据字段的数据进行计算,得到所述计算结果。
可选的,所述预设指标信息集合的属性包括:指标名称;
所述判断所述运算因子是否与预设指标信息集合相匹配,包括:
将所述运算因子与所述预设指标信息集合中的所述指标名称进行匹配;
若得到相匹配的所述指标名称,则判定所述运算因子与所述预设指标信息集合相匹配。
可选的,所述对所有的所述运算因子进行预设数据标注的匹配,包括:
将所有所述运算因子进行数据类型及数据长度的匹配;
若匹配成功,则确定所述运算因子的数据类型;
若所述数据类型为整型,判定所述运算因子间匹配成功;
若所述数据类型为实型,判断所有所述运算因子的小数位长度是否匹配;
若匹配成功,判定所述运算因子间匹配成功。
一种基于中文表达式的计算装置,包括:
中文表达式接收模块,用于接收用户输入中文表达式;
合规性验证模块,用于对所述中文表达式进行格式合规性验证;
SQL语句生成模块,用于验证通过后,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句;
计算模块,用于利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。
可选的,所述合规性验证模块,包括:
中文表达式分析单元,用于对所述中文表达式进行分析,得到所述中文表达式的运算符号和运算因子;
运算符判断单元,用于判断所述运算符号是否满足预设运算符号标准;
指标信息集合匹配单元,用于若满足预设运算符号标准,判断所述运算因子是否与预设指标信息集合相匹配;
运算因子匹配单元,用于若与预设指标信息集合匹配,则对所有的所述运算因子进行预设数据标注的匹配。
一种基于中文表达式的计算设备,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行上述所述的基于中文表达式的计算方法;
所述处理器用于调用并执行所述存储器中的所述计算机程序。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述所述的基于中文表达式的计算方法中各个步骤。
本申请提供的技术方案可以包括以下有益效果:
本申请中公开了一种基于中文表达式的计算方法,包括:接收用户输入中文表达式;对中文表达式进行合规性验证;验证通过后,利用递归下降分析法对中文表达式进行解析,生成中文表达式对应的SQL语句;利用SQL语句结合预先获取的待计算数据进行计算,得到计算结果。上述方法中通过实时接收用户输入的中文表达式,对该中文表达式进行解析,生成中文表达式对应的SQL语句,利用该SQL语句对待计算数据进行计算,得到最终的计算结果。此种方法简单、灵活、高效的通过自然语言定义中文公式实现目标数据的计算,全程无需开发人员人工参与,节省人工成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的基于中文表达式的计算方法流程图;
图2是本发明一实施例提供的生成中文表达式对应的SQL语句的方法流程图;
图3是本发明一实施例提供的基于中文表达式的计算装置模块图;
图4是本发明一实施例提供的基于中文表达式的计算设备结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
当人事***正式上线运行后,用户随着企业自身发展需要的不断变化,导致人事***中以前定义的计算公式运算规则将不再适用用户需求,这就需要开发人员对原代码程序进行修改升级处理,公式的修改需要开发人员的参与。
例如:应发工资=基本工资+奖金+津贴和补贴+加班加点工资-缺勤工资,如果用户由于业务变动,应发工资要追加高温补贴,目前的技术手段需原开发人员通过代码层面来修改此段计算逻辑,如果使用本发明后,用户只需在计算公式编辑页面修改相应的公式加上高温补贴项即可。
如上述的高温补贴需要满足一定条件下才给予发放,工资发放月份是6、7、8月份且是外勤人员,目前需要研发人员定义2个公式来分别计算,旧公式针对不满足条件的人员计算应发工资,新公式则对应满足条件的人员。使用本发明后,用户一个公式就能解决:应发工资=基本工资+奖金+津贴和补贴+加班加点工资-缺勤工资+(若人员类型=’外勤人员’且(月(发薪日期)=6或月(发薪日期)=7或月(发薪日期)=8)那么高温补贴否则0结束)。现在对本申请中计算方法进行更详细地介绍,具体如下。
图1是本发明一实施例提供的基于中文表达式的计算方法流程图。参见图1,一种基于中文表达式的计算方法,包括:
步骤101:接收用户输入中文表达式。本申请中应用场景为用户需要利用新的公式计算数据,此时,用户在本申请方法对应的软件***的用户应用端输入中文的表达式。
步骤102:判断中文表达式的格式是否满足合规性验证条件。此处许对所述中文表达式进行格式合规性验证。当用户输入中文表达式后,在对该中文表达式进行分析前,先对用户输入的中文表达式进行合规性验证,此处的合规性验证即为将中文表达式和预先设定的表达式规则进行比对,验证中文表达式的运算符号和运算元素(因子)是否满足预设规则,若通过验证后,进行中文表达式的分析,若没有通过验证,则提示用户中文表达式规则不符合标准,请重新输入公式。
步骤103:若不满足合规性验证条件,此时提示中文表达式不合规。提示用户重新输入表达式。
步骤104:若满足合规性验证条件,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句。
步骤105:利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。此处的待计算数据需要利用数据统计软件进行统计。当本申请中进行数据计算时,直接调取该数据统计软件内的数据即可。
上述方法中接收用户输入需要使用的中文表达式,对该中文表达式进行格式的合规性验证,当验证通过后,利用递归下降分析法对中文表达式进行解析,得到中文表达式对应的SQL语句,最后利用SQL语句对数据进行计算,得到用户所需的结果。用户可以针对不同业务计算逻辑按计算***提供的规则自行维护中文公式来进行计算,当用户改变业务计算逻辑或新增业务时,无需修改代码仅需维护公式表达式就能达到目的,降低了维护成本提高了***稳定性。
更详细地,步骤102:判断中文表达式的格式是否满足合规性验证条件,具体包括:
对所述中文表达式进行分析,得到所述中文表达式的运算符号和运算因子;
判断所述运算符号是否满足预设运算符号标准。具体的,判断运算符号中是否有括号,若有括号,则判断左右括号数目是否相等,若左右括号数目不相等,则给出报错信息告知用户括号数不匹配;若左右括号数目相等,判断运算符号中的加、减、乘、除和括号是否符合四则运算规则,若符合四则运算规则,判定满足预设运算符号标准,否则向用户提示不符合运算规则,告知公式定义错误。
若满足预设运算符号标准,判断所述运算因子是否与预设指标信息集合相匹配;预设指标信息集合的属性包括:指标名称;具体的匹配过程如下:
将所述运算因子与所述预设指标信息集合中的所述指标名称进行匹配;
若得到相匹配的所述指标名称,则判定所述运算因子与所述预设指标信息集合相匹配。
更进一步地,预设指标信息集合的属性还包括:指标ID、指标类型、指标长度和小数位长度。中文表达式中通过与指标名称进行匹配后,根据指标名称可以在预设指标信息集合中得到该指标名称对应的指标ID、指标类型、指标长度和小数位长度。其中,还需对中文表达式的运算因子的数据类型、数据长度等信息分别与预设指标信息集合中的指标类型、指标长度和小数位长度等进行匹配。当匹配均通过后,表示用户输入的中文表达式的格式满足预设的格式标准。若匹配不通过,则提示用户公式某元素不可解析。
若与预设指标信息集合匹配,则对所有的所述运算因子进行预设数据标注的匹配。当将中文表达式与预设指标信息集合进行格式验证后,还要对中文表达式中的各个元素进行格式的匹配,例如:需要对B+C进行计算,此时需要验证B和C二者之间的数据类型和数据长度是否一致。具体的:将所有所述运算因子进行数据类型及数据长度的匹配;若匹配成功,则确定所述运算因子的数据类型;若所述数据类型为整型,判定所述运算因子间匹配成功;若所述数据类型为实型,判断所有所述运算因子的小数位长度是否匹配;若匹配成功,判定所述运算因子间匹配成功。
更详细地,本申请还对生成SQL语句的过程进行了详细介绍,具体如下:
图2是本发明一实施例提供的生成中文表达式对应的SQL语句的方法流程图。参见图2,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句,包括:
步骤201:对所述中文表达式进行分析,得到公式基本元素;所述公式基本元素包括中文字符元素和运算符号元素;
步骤202:判断运算符号元素中是否包含“且”、“或”标识;
若包含“且”、“或”标识,执行步骤210:将运算符号元素转换成对应的符号SQL语句;
步骤203:若运算符号元素中不包含“且”、“或”标识,判断运算符合元素中是否包含“like”、“in”、“>”、“>=”、“=”、“<”、“<=”标识;
若包含“like”、“in”、“>”、“>=”、“=”、“<”、“<=”标识,执行步骤210;
步骤204:若运算符号元素中不包含“like”、“in”、“>”、“>=”、“=”、“<”、“<=”,判断运算符合元素中是否包含“+”、“-”;
若包含“+”、“-”标识,执行步骤210;
步骤205:若运算符号元素中不包含“+”、“-”,判断运算符合元素中是否包含“*”、“/”、“%”;
若包含“*”、“/”、“%”标识,执行步骤210;
步骤206:若运算符号元素中不包含“*”、“/”、“%”,判断运算符合元素中是否包含“^”;
若包含“^”标识,执行步骤210;
步骤207:若运算符号元素中不包含“^”,判断运算符合元素中是否包含“非”;
若包含“非”标识,执行步骤210;
步骤208:若运算符号元素中不包含“非”,判断运算符合元素中是否包含“(”、“)”;
若包含“(”、“)”标识,执行步骤210;
步骤209:若运算符号元素中不包含“(”、“)”,对中文字符元素进行识别;
步骤211:将中文字符元素转换成对应的字符SQL语句。
其中,本实施例中通过利用递归下降分析法进行SQL语句的生成,递归下降分析法是确定的自上而下分析法,这种分析法要求文法是LL(1)文法。为每个非终结符编制一个递归下降分析函数,每个函数名是相应的非终结符,函数体则是根据规则右部符号串的结构和顺序编写。子程序相互递归调用,分别构造level0,level1,level2,level3,level4,level5,level6,Primitive函数来执行自己的识别功能,根据文法的内容顺序决定函数的识别功能。
具体的,步骤202通过调用level0函数实现,此函数用于识别表达式里的“且”、“或”标识,将公式组装成SQL对应的“AND”、“OR”符号;
步骤203通过调用level1函数实现,此函数用于识别表达式里的“like”、“in”、“>”、“>=”、“=”、“<”、“<=”标识,将公式组装成SQL对应的符号;
步骤204通过调用level2函数实现,此函数用于识别表达式里的“+”、“-”,将公式组装成SQL对应的符号;
步骤205通过调用level3函数实现,此函数用于识别表达式里的“*”、“/”、“%”,将公式组装成SQL对应的符号;
步骤206通过调用level4函数实现,此函数用于识别表达式里的“^”,将公式组装成SQL对应的符号;
步骤207通过调用level5函数实现,此函数用于识别表达式里的“非”,将公式组装成SQL对应的符号;
步骤208通过调用level6函数实现,此函数用于识别表达式里的“(”、“)”,将公式组装成SQL对应的符号;
步骤209通过调用Primitive函数实现,此函数用于识别表达式最基本的元素,数值、字符、日期及指标名称、函数(含如果、那么、取整。。。等),将中文字符元素组装成数据库可识别的SQL语法。
当组装成数据库可识别的SQL语句后,创建临时表,表列信息为中文表达式分析时放入堆栈里的中文字符元素;按预先设置的注册的数据筛选条件和待运算数据表名将待计算数据复制至临时表内;然后执行组装的SQL语句;将执行结果写入临时表的结果字段里,结果字段里的数据即为用户所需的计算结果。
现为了更清楚简单的介绍本申请中计算方法,现举例对上述方法进行介绍:
A用户使用本申请中人事应用***进行工资结算,公司规定实发工资=应发工资-个人所得税,当A用户将中文表达式“实发工资=应发工资-个人所得税”输入本申请***中后,接收到该表达式“实发工资=应发工资-个人所得税”后,对该表达式进行分析,得到该表达式中的运算符号为“=”和“-”,运算因子包括:“实发工资”“应发工资”和“个人所得税”。首先,对运算符号“=”和“-”进行分析,经分析后确定符合四则运算规则。然后将运算因子“实发工资”“应发工资”和“个人所得税”分别与预设指标信息集合中的指标名称进行匹配,例如遍历指标名称中是否有“实发工资”的指标,若有,则表示此运算因子匹配通过,依次对所有的运算因子进行匹配,匹配通过后,将“实发工资”“应发工资”和“个人所得税”三者进行格式的匹配,匹配这三个运算因子的数据类型是否相同,例如“实发工资”为整数类型,“应发工资”和“个人所得税”为实型(浮点数),那此种情况必然会导致“应发工资”和“个人所得税”相加的结果有可能是浮点数,那此时数据类型则与“实发工资”的整数类型不匹配,因此需要确定三者数据类型相同,同时还要保证数据长度也相同。当上述匹配均通过后,利用递归下降分析法进行分析,首先判断“实发工资”均不满足步骤202-208中的判断条件,直接执行步骤209,对“实发工资”进行识别,根据“实发工资”对应的指标名称在预设指标信息集合中调取该指标名称对应的指标ID,将该指标ID作为“实发工资”的SQL语句,例如“实发工资”的指标ID为A5605,同理,得到“应发工资”的指标ID为A5606,“个人所得税”指标ID为A5607。然后根据步骤203识别出运算符号“=”,根据步骤204识别出运算符号“-”,然后得到最终的SQL语句为:A5605=A5606-A5607。然后调取待计算数据,根据该SQL语句计算最终的应发工资的结果。
上述实施例中终端用户可根据业务需要基于中文语义自己灵活编写复杂计算公式,解决了现有技术中需要研发人员参与修改计算逻辑,耗时耗力,在实际生产使用过程中带来极大的便利,随需应变。
对应于本发明实施例提供的一种基于中文表达式的计算方法,本发明实施例还提供一种基于中文表达式的计算装置。请参见下文实施例。
图3是本发明一实施例提供的基于中文表达式的计算装置模块图。参见图3,一种基于中文表达式的计算装置,包括:
中文表达式接收模块301,用于接收用户输入中文表达式;
合规性验证模块302,用于对所述中文表达式进行格式合规性验证;
SQL语句生成模块303,用于验证通过后,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句;
计算模块304,用于利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。
更详细地,合规性验证模块302包括:中文表达式分析单元,用于对所述中文表达式进行分析,得到所述中文表达式的运算符号和运算因子;运算符判断单元,用于判断所述运算符号是否满足预设运算符号标准;指标信息集合匹配单元,用于若满足预设运算符号标准,判断所述运算因子是否与预设指标信息集合相匹配;运算因子匹配单元,用于若与预设指标信息集合匹配,则对所有的所述运算因子进行预设数据标注的匹配。
SQL语句生成模块303具体用于:对所述中文表达式进行分析,得到公式基本元素;所述公式基本元素包括中文字符元素和运算符号元素;将所述中文字符元素进行识别并转换成对应的所述字符SQL语句;将所述运算符号元素进行识别并转换成对应的所述符号SQL语句。
计算模块304具体用于:创建临时表,将所述中文字符元素存入所述临时表中;读取预先获取的所述待计算数据存入所述临时表中所述中文字符元素对应的数据字段内;执行所述SQL语句对所述数据字段的数据进行计算,得到所述计算结果。
上述装置中将不易记忆的数学公式转为方便记忆的中文逻辑基于中文语义编写的公式表达式,采用递归下沉算法实现的公式解析逻辑,并在公式的解析过程中生成与之匹配的数据库SQL脚本,以此实现根据用户的实时输入的中文表达式进行解析,进而实现数据的计算,极大地提高了应用***的实用性及数据计算效率。
为了更清楚地介绍实现本发明实施例的硬件***,对应于本发明实施例提供的一种可燃性气体报警方法,本发明实施例还提供一种基于中文表达式的计算设备。请参见下文实施例。
图4是本发明一实施例提供的基于中文表达式的计算设备结构图。参见图4,一种基于中文表达式的计算设备,包括:
处理器401,以及与所述处理器401相连接的存储器402;
所述存储器402用于存储计算机程序,所述计算机程序至少用于执行上述所述的基于中文表达式的计算方法;
所述处理器401用于调用并执行所述存储器402中的所述计算机程序。
在上述实施例的基础上,本申请中还公开了一种存储介质,该存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述所述的基于中文表达式的计算方法中各个步骤。
用户可以针对不同业务计算逻辑按上述设备提供的规则自行维护中文公式来进行计算,当用户改变业务计算逻辑或新增业务时,无需修改代码仅需维护公式表达式就能达到目的,降低了维护成本提高了***稳定性。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于中文表达式的计算方法,其特征在于,包括:
接收用户输入中文表达式;
对所述中文表达式进行格式合规性验证;
验证通过后,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句;
利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述中文表达式进行格式合规性验证,包括:
对所述中文表达式进行分析,得到所述中文表达式的运算符号和运算因子;
判断所述运算符号是否满足预设运算符号标准;
若满足预设运算符号标准,判断所述运算因子是否与预设指标信息集合相匹配;
若与预设指标信息集合匹配,则对所有的所述运算因子进行预设数据标注的匹配。
3.根据权利要求1所述的方法,其特征在于,所述SQL语句包括:字符SQL语句和符号SQL语句;
所述利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句,包括:
对所述中文表达式进行分析,得到公式基本元素;所述公式基本元素包括中文字符元素和运算符号元素;
将所述中文字符元素进行识别并转换成对应的所述字符SQL语句;
将所述运算符号元素进行识别并转换成对应的所述符号SQL语句。
4.根据权利要求3所述的方法,其特征在于,所述利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果,包括:
创建临时表,将所述中文字符元素存入所述临时表中;
读取预先获取的所述待计算数据存入所述临时表中所述中文字符元素对应的数据字段内;
执行所述SQL语句对所述数据字段的数据进行计算,得到所述计算结果。
5.根据权利要求1所述的方法,其特征在于,所述预设指标信息集合的属性包括:指标名称;
所述判断所述运算因子是否与预设指标信息集合相匹配,包括:
将所述运算因子与所述预设指标信息集合中的所述指标名称进行匹配;
若得到相匹配的所述指标名称,则判定所述运算因子与所述预设指标信息集合相匹配。
6.根据权利要求5所述的方法,其特征在于,所述对所有的所述运算因子进行预设数据标注的匹配,包括:
将所有所述运算因子进行数据类型及数据长度的匹配;
若匹配成功,则确定所述运算因子的数据类型;
若所述数据类型为整型,判定所述运算因子间匹配成功;
若所述数据类型为实型,判断所有所述运算因子的小数位长度是否匹配;
若匹配成功,判定所述运算因子间匹配成功。
7.一种基于中文表达式的计算装置,其特征在于,包括:
中文表达式接收模块,用于接收用户输入中文表达式;
合规性验证模块,用于对所述中文表达式进行格式合规性验证;
SQL语句生成模块,用于验证通过后,利用递归下降分析法对所述中文表达式进行解析,生成所述中文表达式对应的SQL语句;
计算模块,用于利用所述SQL语句结合预先获取的待计算数据进行计算,得到计算结果。
8.根据权利要求7所述的装置,其特征在于,所述合规性验证模块,包括:
中文表达式分析单元,用于对所述中文表达式进行分析,得到所述中文表达式的运算符号和运算因子;
运算符判断单元,用于判断所述运算符号是否满足预设运算符号标准;
指标信息集合匹配单元,用于若满足预设运算符号标准,判断所述运算因子是否与预设指标信息集合相匹配;
运算因子匹配单元,用于若与预设指标信息集合匹配,则对所有的所述运算因子进行预设数据标注的匹配。
9.一种基于中文表达式的计算设备,其特征在于,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行权利要求1-6任一项所述的基于中文表达式的计算方法;
所述处理器用于调用并执行所述存储器中的所述计算机程序。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-6任一项所述的基于中文表达式的计算方法中各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352143.0A CN112463819A (zh) | 2020-11-26 | 2020-11-26 | 基于中文表达式的计算方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352143.0A CN112463819A (zh) | 2020-11-26 | 2020-11-26 | 基于中文表达式的计算方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463819A true CN112463819A (zh) | 2021-03-09 |
Family
ID=74808693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011352143.0A Pending CN112463819A (zh) | 2020-11-26 | 2020-11-26 | 基于中文表达式的计算方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463819A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177094A (zh) * | 2021-04-23 | 2021-07-27 | 远光软件股份有限公司 | 时序数据库的数据处理方法、装置、服务器和存储介质 |
CN113539405A (zh) * | 2021-06-24 | 2021-10-22 | 北京天健源达科技股份有限公司 | 电子病历表格运算控件的处理方法 |
CN114358729A (zh) * | 2021-12-30 | 2022-04-15 | 新开普电子股份有限公司 | 一种公式推荐算法的实现方法及*** |
WO2024114655A1 (zh) * | 2022-11-29 | 2024-06-06 | ***股份有限公司 | 一种规则表达式匹配方法、装置及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120326A1 (en) * | 2006-11-20 | 2008-05-22 | Oracle International Corporation | Query generation |
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通***工程有限公司 | 一种数据库查询语句的转换方法和转换*** |
CN104657439A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 用于自然语言精准检索的结构化查询语句生成***及方法 |
CN104657440A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 结构化查询语句生成***及方法 |
CN109408526A (zh) * | 2018-10-12 | 2019-03-01 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、计算机设备及存储介质 |
CN111104423A (zh) * | 2019-12-18 | 2020-05-05 | 北京百度网讯科技有限公司 | Sql语句生成方法、装置、电子设备和存储介质 |
CN111414380A (zh) * | 2020-03-20 | 2020-07-14 | 华泰证券股份有限公司 | 一种中文数据库sql语句生成方法、设备及存储介质 |
CN111581229A (zh) * | 2020-03-25 | 2020-08-25 | 平安科技(深圳)有限公司 | Sql语句的生成方法、装置、计算机设备及存储介质 |
-
2020
- 2020-11-26 CN CN202011352143.0A patent/CN112463819A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120326A1 (en) * | 2006-11-20 | 2008-05-22 | Oracle International Corporation | Query generation |
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通***工程有限公司 | 一种数据库查询语句的转换方法和转换*** |
CN104657439A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 用于自然语言精准检索的结构化查询语句生成***及方法 |
CN104657440A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 结构化查询语句生成***及方法 |
CN109408526A (zh) * | 2018-10-12 | 2019-03-01 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、计算机设备及存储介质 |
CN111104423A (zh) * | 2019-12-18 | 2020-05-05 | 北京百度网讯科技有限公司 | Sql语句生成方法、装置、电子设备和存储介质 |
CN111414380A (zh) * | 2020-03-20 | 2020-07-14 | 华泰证券股份有限公司 | 一种中文数据库sql语句生成方法、设备及存储介质 |
CN111581229A (zh) * | 2020-03-25 | 2020-08-25 | 平安科技(深圳)有限公司 | Sql语句的生成方法、装置、计算机设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177094A (zh) * | 2021-04-23 | 2021-07-27 | 远光软件股份有限公司 | 时序数据库的数据处理方法、装置、服务器和存储介质 |
CN113539405A (zh) * | 2021-06-24 | 2021-10-22 | 北京天健源达科技股份有限公司 | 电子病历表格运算控件的处理方法 |
CN113539405B (zh) * | 2021-06-24 | 2024-03-19 | 北京天健源达科技股份有限公司 | 电子病历表格运算控件的处理方法 |
CN114358729A (zh) * | 2021-12-30 | 2022-04-15 | 新开普电子股份有限公司 | 一种公式推荐算法的实现方法及*** |
WO2024114655A1 (zh) * | 2022-11-29 | 2024-06-06 | ***股份有限公司 | 一种规则表达式匹配方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112463819A (zh) | 基于中文表达式的计算方法、装置、设备及存储介质 | |
CN107704265B (zh) | 一种面向业务流可配置的规则生成方法 | |
Heckel et al. | Graph Transformation for Software Engineers | |
CN106104472B (zh) | 指定逻辑验证规则并将逻辑验证规则应用于数据 | |
CN109446221B (zh) | 一种基于语义分析的交互式数据探查方法 | |
US20020170042A1 (en) | Method and apparatus for producing software | |
CN109359277B (zh) | 数据监控方法、设备及计算机存储介质 | |
Yin et al. | Natural language to code generation in interactive data science notebooks | |
WO2011035039A1 (en) | Mapping dataset elements | |
CN109697050A (zh) | 一种基于知识图谱面向电商领域的需求描述模型设计方法 | |
Nicholson et al. | Automated verification of design patterns: A case study | |
CN113672781A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
Cánovas Izquierdo et al. | A domain specific language for extracting models in software modernization | |
CN113849162A (zh) | 一种利用模型驱动和深度神经网络相结合的代码生成方法 | |
US20030200534A1 (en) | Mechanism for reformatting a simple source code statement into a compound source code statement | |
Juergens | Why and how to control cloning in software artifacts | |
CN116301795B (zh) | 一种用于页面可视化配置及代码编写的开发平台 | |
CN110989991B (zh) | 检测应用程序中源代码克隆开源软件的方法及*** | |
CN115145584A (zh) | 语法分析器的生成方法、数据处理方法、介质、设备 | |
US20030009744A1 (en) | Source code line counting system and method | |
CN114153990A (zh) | 一种知识生产管线的构建方法、***及装置 | |
CN110928535A (zh) | 衍生变量部署方法、装置、设备及可读存储介质 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN117193781B (zh) | 一种面向simscript语言的抽象语法树构建方法和装置 | |
Zhang et al. | Towards bridging the gap between model-and data-driven tool suites for cyber-physical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |