一种基于自然语言设计的计费引擎[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202010638765.3
(22)申请日 2020.07.03
(71)申请人 广州翰智软件有限公司
地址 510075 广东省广州市越秀区先烈中
路83号510自编之十二房号
(72)发明人 彭源林 
(74)专利代理机构 广州三环专利商标代理有限
公司 44202
代理人 郭浩辉 麦小婵
(51)Int.Cl.
G06F  8/20(2018.01)
G06F  8/41(2018.01)
(54)发明名称一种基于自然语言设计的计费引擎(57)摘要本发明公开了一种基于自然语言设计的计费引擎,包括有:规则配置文件,用于自然语言的规则订制;自定义语法约定,用于解析规则配置,提供解析规范;动态语言模板,用于将内置算子和扩展算子、规则语言合并进行计费运算,并返回结果;自定义算子,用于计费引擎的扩展算子定义单元,负责针对不同计费需求的扩展;ANTLR 解析器,根据输入自动生成语法树并可视化的显示出来的开源语法分析器;动态语言编译器,用于将语言脚本转换成java字节码,并将转换好的java字节码,通过java类加载器加载到JVM虚拟机中执行,完成自然语言定义的计费规则,通过ANTLR解析器转换为语言脚本,并最终转换为java字节码的完整转换。本发明实现了通过自然
语言进行费用计算规则的定制。权利要求书1页  说明书6页  附图1页CN 111913692 A 2020.11.10
C N  111913692
A
1.一种基于自然语言设计的计费引擎,其特征在于,包括有:规则配置文件,用于客户系统管理员、项目实施、开发人员、其他相关人员进行简单的自然语言的规则订制;
自定义语法约定,用于解析规则配置,提供标准的解析规范,由ANTLR进行解析;
动态语言模板,用于计费引擎的标准接口和运算处理单元,将内置算子和扩展算子、规则语言合并一起进行计费运算,并返回结果;
自定义算子,用于计费引擎的扩展算子定义单元,负责针对不同计费需求的扩展,其格式遵循动态语言的语法约定;
ANTLR解析器,根据输入自动生成语法树并可视化的显示出来的开源语法分析器;为包括Java、C++、C#的语言提供一个通过语法描述来自动构造自定义言的识别器recognizer,编译器parser和解释器translator的框架;
语言编译器,用于将语言脚本转换成java字节码;并将转换好的java字节码,通过java 类加载器加载到JVM虚拟机中执行,从而完成自然语言定义的计费规则,通过ANTLR解析器转换为语言脚本,并最终转换为java字节码的完整转换。
2.一种基于自然语言设计的计费引擎的实施方法,基于上述权利要求1所述的基于自然语言设计的计费引擎,其特征在于,包括有:
S1、建立自然语言规则库,自然语言规则库包括规则配置文件、自定义语法约定、自定义算子,用于客户或者对外系统的使用的计费规则的定义,描述针对不同费用的运算准则;
S2、对应自然语言规则库设定计费问题,外部调用程序或者外部系统针对规则设定的基本问题参数,然后交传入计费引擎中,由计费引擎识别计算;
S3、计费引擎中的计费规则定义文件和计费问题转化为动态语言语法结构代码,通过语言编译器编译成JVM虚拟机识别的Byte字节,再通过计费元素的定义值,按照规则进行计算获取最终费用结果;
S4、运算单元计算得出并输出结果。
3.根据权利要求1或2所述一种基于自然语言设计的计费引擎的方法,其特征在于,所述动态语言采用Groovy语言;所述语言编译器采用Groovy脚本。
4.根据权利要求3所述一种基于自然语言设计的计费引擎的方法,其特征在于,所述语法约定包括称呼算子、变量、宏定义变量、子函数定义。
5.根据权利要求4所述一种基于自然语言设计的计费引擎的方法,其特征在于,所述变量包括普通变量和局部变量。
权 利 要 求 书1/1页CN 111913692 A
一种基于自然语言设计的计费引擎
技术领域
[0001]本发明涉及分组业务计费技术领域,具体涉及一种基于自然语言设计的计费引擎。
背景技术
[0002]目前市面上大部分计费引擎的开发与使用主要集中在电信计费业务、物流管理软件和供应链管理软件中、以及物业收费中等经济活动中。为了解决这个问题,一般都是开发一套规则引擎来适配各种复杂场景的规则定制。计费引擎具体可解释为,是指在企业信息化管理软件中涉及到的根据企业自身特点,自定义各种计费规则、计费类型而达到系统自动提取符合业务计费要求的费用值,从而实现自动计费功能。
[0003]通过规则计费引擎定制各种复杂多样的业务计费规则,并结合特有的复杂计费细则,实现了企业经营活动中数据处理的全面控制,全面协调整个经营活动的控制和管理能力,实现了计费简易化、可视化、集成化及规范化,达到规范计费管理。但业务规则随着业务发展变得越来越复杂,规则的定义变得复杂,为了简化用户的操作步骤和降低用户的使用门槛,需要一种能根据自然语言匹配进行计费的计费引擎。
发明内容
[0004]本发明的目的就在于提供一种基于自然语言设计的计费引擎,能实现通过自然语言完成业务分类计费。
[0005]为实现上述目的,本发明提供了以下技术方案:
[0006]本发明提供的一种基于自然语言设计的计费引擎,包括有:规则配置文件,用于客户系统管理员、项目实施、开发人员、其他相关人员进行简单的自然语言的规则订制;提供规则配置器,覆盖行业的规则库和拓展库,随时可以直接使用于配置,简单的拖拽的操作方式即可完成计费规则定制。
[0007]自定义语法约定,用于解析规则配置,提供标准的解析规范,由ANTLR进行解析。[0008]动态语言模板,用于计费引擎的标准接口和运算处理单元,将内置算子和扩展算子、规则语言合并一起进行计费运算,并返回结果。
[0009]自定义算子,用于计费引擎的扩展算子定义单元,负责针对不同计费需求的扩展,其格式遵循动态语言的语法约定;
[0010]ANTLR解析器,根据输入自动生成语法树并可视化的显示出来的开源语法分析器;为包括Java、C++、C#的语言提供一个通过语法描述来自动构造自定义语言的识别器recognizer,编译器parser和解释器translator的框架;
[0011]语言编译器,用于将语言脚本转换成java字节码;并将转换好的java字节码,通过java类加载器加载到JVM虚拟机中执行,从而完成自然语言定义的计费规则,通过ANTLR解析器转换为语言脚本,并最终转换为java字节码的完整转换。
[0012]一种基于自然语言设计的计费引擎的实施方法,基于上述基于自然语言设计的计
费引擎,包括以下步骤:
[0013]S1、建立自然语言规则库,自然语言规则库包括规则配置文件、自定义语法约定、自定义算子,用于客户或者对包括物业收费系统、电信计费系统、运输计费系统的使用的计费规则的定义,描述针对不同费用的运算准则;
[0014]S2、对应自然语言规则库设定计费问题,外部调用程序或者外部系统针对规则设定的基本问题参
数,然后交传入计费引擎中,由计费引擎识别计算;
[0015]S3、计费引擎中的计费规则定义文件和计费问题转化为动态语言语法结构代码,通过语言编译器编译成JVM虚拟机识别的Byte字节,再通过计费元素的定义值,按照规则进行计算获取最终费用结果;
[0016]S4、运算单元计算得出并输出结果。
[0017]进一步地,所述动态语言采用Groovy语言;所述语言编译器采用Groovy脚本。[0018]进一步地,所述语法约定包括用于定义某类变换的名称的称呼算子;用于中间变量定义的变量、用于规则中有效标识函数的宏定义变量、用于定义函数名的子函数定义;子函数定义包括函数名、参数、函数执行体,其与程序语言中函数定义一致,返回类型为Map。[0019]进一步地,所述变量包括普通变量和局部变量;普通变量即返回变量,指规则配置中等号左边的变量名定义;局部变量:指规则配置中等号左边加了$符号的变量名定义。[0020]与现有技术相比较:
[0021]为了解决能让计费规则定义的终端用户,方便的定制出各种复杂场景的计费细则;本发明采用一种基于自然语言配置的行业模块计费引擎设计;将自然语言翻译成计算机语言,通过中间件或者其他工具作为语言翻译的桥梁。而在Java生态里,针对Java的语法的过于规范性产生了许多脚本语言,如Groovy、JRbuy、grails,而其中Groovy是比较接近Java原始语法规范的,并且本身具有大多数弱语言的特性,它可以方便的把自然语言描述的规则转化为Java编译器可以识别的语法规范描述。
[0022]对于自然语言定义的规则要转化为Groovy的语法还通过语法分析器进行分析。词法分析lexical analysis是计算机科学中将字符序列转换为单词Token序列的过程。进行词法分析的程序或者函数叫作词法分析器Lexical analyzer,词法分析器以函数的形式存在,供语法分析器调用。针对词法和语法分析的领域工具,在本发明中我们使用开源的ANTLR来自定义语法规则来解析自然语言,实现词文语言描述的接收,并能产生识别这些语言的语句。
附图说明
[0023]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本发明基于自然语言设计的计费引擎的结构图;
[0025]图2是本发明基于自然语言设计的计费引擎的计费框架图。
具体实施方式
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领
域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
[0027]参见图1所示,本发明提供了一种基于自然语言设计的计费引擎,包括有:[0028]规则配置文件,用于客户系统管理员、项目实施、开发人员、其他相关人员进行简单的自然语言的规则订制;提供规则配置器,覆盖行业的规则库和拓展库,随时可以直接使用于配置,简单的拖拽的操作方式即可完成计费规则定制。
[0029]自定义语法约定,用于解析规则配置,提供标准的解析规范,由ANTLR进行解析。[0030]动态语言模板,用于计费引擎的标准接口和运算处理单元,将内置算子和扩展算子、规则语言合并一起进行计费运算,并返回结果。
[0031]自定义算子,用于计费引擎的扩展算子定义单元,负责针对不同计费需求的扩展,其格式遵循动态语言的语法约定;
[0032]ANTLR解析器,根据输入自动生成语法树并可视化的显示出来的开源语法分析器;为包括Java、C++、C#的语言提供一个通过语法描述来自动构造自定义语言的识别器recognizer,编译器parser和解释器translator的框架;
[0033]语言编译器,用于将语言脚本转换成java字节码;并将转换好的java字节码,通过java类加载器加载到JVM虚拟机中执行,从而完成自然语言定义的计费规则,通过ANTLR解析器转换为语言脚本,并最终转换为java字节码的完整转换。
[0034]参见图2所示,一种基于自然语言设计的计费引擎的实施方法,基于上述基于自然语言设计的计费引擎,包括以下步骤:
[0035]步骤1、建立自然语言规则库,自然语言规则库包括规则配置文件、自定义语法约定、自定义算子,用于客户或者对包括物业收费系统、电信计费系统、运输计费系统的使用的计费规则的定义,描述针对不同费用的运算准则;
[0036]如:物业公共设施保险费用=(保险费率×投保总金额)/保险受惠物业的总面积;[0037]步骤2、对应自然语言规则库设定计费问题,外部调用程序或者外部系统针对规则设定的基本问题参数,然后交传入计费引擎中,由计费引擎识别计算;
[0038]如:投保总金额--表示外部系统传到计费引擎中的因子值。
[0039]保险费率—表示通过查费率表得到结果。
[0040]步骤3、计费引擎中的计费规则定义文件和计费问题转化为Groovy语法结构代码,通过GroovyC
编译器编译成JVM虚拟机识别的Byte字节,再通过计费元素的定义值,按照规则进行计算获取最终费用结果;
[0041]步骤4、运算单元计算得出并输出结果。
[0042]进一步地,所述动态语言采用Groovy语言;所述语言编译器采用Groovy脚本。[0043]进一步地,所述语法约定包括用于定义某类变换的名称的称呼算子,如:面积数-直接使用某个计费问题中传入的参数值;
[0044]用于中间变量定义的变量,如:$绿化工具费-表示绿化工具费不用返回给外部系统;

本文发布于:2024-09-20 17:23:24,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/761901.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计费   规则   语言
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议