本发明涉及计算机技术领域,尤其涉及一种业务规则的生成方法、电子装置及可读存储介质。
背景技术:
目前,在信用卡额度调整、保险核保等场景中,会涉及到规则引擎系统中大量的业务规则应用,由于业务规则需编写代码,现有的业务规则均由专业的开发人员人工编写及管理,人力成本较高,且效率低下
技术实现要素:
本发明的目的在于提供一种业务规则的生成方法、电子装置及可读存储介质,旨在简单高效地生成业务规则。
为实现上述目的,本发明提供一种电子装置,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的业务规则的生成系统,所述业务规则的生成系统被所述处理器执行时实现如下步骤:
获取用户编写的自然语言规则;
提取出所述自然语言规则中的预设标识词汇及预设关键词汇;
根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;
将填充后的java规则模板进行编译生成可执行java规则。
优选地,所述预设标识词汇包括如果、那么、否则,对应的java规则模板为if规则模板、then规则模板、else规则模板。
优选地,所述将填充后的java规则模板进行编译生成可执行java规则的步骤包括:
将预先设定的数据承载对象bom与填充后的java规则模板进行编译生成可执行java规则;
所述处理器还用于执行所述业务规则的生成系统,以实现以下步骤:
在业务系统利用生成的可执行java规则进行业务规则运算时,接收所述业务系统发送的业务数据;
通过所述可执行java规则中的数据承载对象bom来承载所述业务系统的业务数据,并运行所述可执行java规则来针对承载的业务数据进行业务规则运算。
优选地,所述处理器还用于执行所述业务规则的生成系统,以实现以下步骤:
将生成的可执行java规则与应用的业务系统进行关联,并将生成的可执行java规则进行标号后加入至预设的应用规则标准库;所述业务系统包括信用卡审核系统、保险核保系统;
当接收到业务系统发出的业务规则调用标号时,从所述预设的应用规则标准库中找到与业务规则调用标号对应的可执行java规则,并利用找出的可执行java规则进行业务规则运算,将运算结果返回至所述业务系统。
此外,为实现上述目的,本发明还提供一种业务规则的生成方法,所述业务规则的生成方法包括:
获取用户编写的自然语言规则;
提取出所述自然语言规则中的预设标识词汇及预设关键词汇;
根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;
将填充后的java规则模板进行编译生成可执行java规则。
优选地,所述预设标识词汇包括如果、那么、否则,对应的java规则模板为if规则模板、then规则模板、else规则模板。
优选地,所述将填充后的java规则模板进行编译生成可执行java规则的步骤包括:
将预先设定的数据承载对象bom与填充后的java规则模板进行编译生成可执行java规则。
优选地,该方法还包括:
在业务系统利用生成的可执行java规则进行业务规则运算时,接收所述业务系统发送的业务数据;
通过所述可执行java规则中的数据承载对象bom来承载所述业务系统的业务数据,并运行所述可执行java规则来针对承载的业务数据进行业务规则运算。
优选地,该方法还包括:
将生成的可执行java规则与应用的业务系统进行关联,并将生成的可执行java规则进行标号后加入至预设的应用规则标准库;所述业务系统包括信用卡审核系统、保险核保系统;
当接收到业务系统发出的业务规则调用标号时,从所述预设的应用规则标准库中找到与业务规则调用标号对应的可执行java规则,并利用找出的可执行java规则进行业务规则运算,将运算结果返回至所述业务系统。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有业务规则的生成系统,所述业务规则的生成系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的业务规则的生成方法的步骤。
本发明提出的业务规则的生成方法、电子装置及可读存储介质,通过提取出用户编写的自然语言规则中的预设标识词汇及预设关键词汇;根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;将填充后的java规则模板进行编译生成可执行java规则。由于能将用户编写的自然语言规则自动转换、编译成可执行java规则,无需用户编写代码,即无需由专业的开发人员人工编写代码,人力成本更低,且提高了生成业务规则的效率。
附图说明
图1为本发明业务规则的生成系统较佳实施例的运行环境示意图;
图2为本发明业务规则的生成系统一实施例的应用示意图;
图3为本发明业务规则的生成方法一实施例的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明提供一种业务规则的生成系统。请参阅图1,是本发明业务规则的生成系统10较佳实施例的运行环境示意图。
在本实施例中,所述的业务规则的生成系统10安装并运行于电子装置1中。该电子装置1可包括,但不仅限于,存储器11、处理器12及显示器13。图1仅示出了具有组件11-13的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器11为至少一种类型的可读计算机存储介质,所述存储器11在一些实施例中可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。所述存储器11在另一些实施例中也可以是所述电子装置1的外部存储设备,例如所述电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括所述电子装置1的内部存储单元也包括外部存储设备。所述存储器11用于存储安装于所述电子装置1的应用软件及各类数据,例如所述业务规则的生成系统10的程序代码等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或处理数据,例如执行所述业务规则的生成系统10等。
所述显示器13在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器13用于显示在所述电子装置1中处理的信息以及用于显示可视化的用户界面,例如用户编写的自然语言规则、最终生成的可执行java规则等。所述电子装置1的部件11-13通过系统总线相互通信。
业务规则的生成系统10包括至少一个存储在所述存储器11中的计算机可读指令,该至少一个计算机可读指令可被所述处理器12执行,以实现本申请各实施例。
其中,上述业务规则的生成系统10被所述处理器12执行时实现如下步骤:
步骤s1,获取用户编写的自然语言规则;
步骤s2,提取出所述自然语言规则中的预设标识词汇及预设关键词汇;
步骤s3,根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;
步骤s4,将填充后的java规则模板进行编译生成可执行java规则。
本实施例中,业务规则的生成系统接收用户发出的业务规则生成请求,例如,接收用户通过手机、平板电脑、自助终端设备等终端发送的业务规则生成请求,如接收用户在手机、平板电脑、自助终端设备等终端中预先安装的客户端上发送来的业务规则生成请求,或接收用户在手机、平板电脑、自助终端设备等终端中的浏览器系统上发送来的业务规则生成请求。
在收到用户发出的业务规则生成请求后,可获取用户编写的自然语言规则;提取出所述自然语言规则中的预设标识词汇(例如“如果”、“那么”、“否则”等)及预设关键词汇(例如“年龄”、“金额”等);根据预先确定的预设标识词汇与java规则模板(例如if规则模板、then规则模板、else规则模板等)之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,例如,将预设关键词汇“年龄”转换为对应的代码“age”。将转换的代码填充至确定的java规则模板中的对应位置;将填充后的java规则模板进行编译生成可执行java规则。如可将预先设定的数据承载对象bom与填充后的java规则模板进行编译生成可执行java规则。在业务系统利用生成的可执行java规则进行业务规则运算时,接收所述业务系统发送的业务数据;通过所述可执行java规则中的数据承载对象bom来承载所述业务系统的业务数据,并运行所述可执行java规则来针对承载的业务数据进行业务规则运算。
本实施例中,支持用户使用自然语言编写规则,将用户编写的自然语言规则自动转换、编译成java程序语言,该java程序语言为可执行的业务规则文件,将该可执行的业务规则文件与对应的业务系统(如信用卡审核系统、保险核保系统等)进行关联配置,并将该可执行的业务规则文件存储在内存中。在业务系统如信用卡审核系统、保险核保系统等请求使用业务规则时,传入业务代号,即可在内存中查找是否存有与该业务系统相关联对应的业务规则文件,若有,则该业务系统可调用内存中对应的业务规则文件进行业务规则运算,否则返回调用失败。本实施例中将业务规则的编写和运算分离,可支持自然语言规则自动转换、编译成java程序语言,无需用户编写代码,即无需由专业的开发人员人工编写代码,人力成本更低。
首先,接收用户编写的自然语言规则,如在收到用户发出的业务规则生成请求后,可提供一输入界面供用户编写自然语言规则,用户编写完成后可上传编写好的自然语言规则,当然,用户也可将其已编写好的自然语言规则直接上传。将用户上传的自然语言规则转换编译成可执行的业务规则文件,具体的,根据用户上传的自然语言规则即规则集irl启动解析,进行词法配置、语法配置,将用户上传的自然语言规则中的预设关键词汇包装进数据结构,词法配置时可将自然语言规则中的预设关键词汇转换成对应的代码名词,如自然语言规则中的预设关键词汇“年龄”可转换成对应的代码名词“age”,自然语言规则中的预设标识词汇“如果”可转换成对应的代码名词“if”,语法配置时可将各个预设关键词汇的位置进行配置,以形成程序语言中的语法结构。本实施例中可根据自然语言规则中的预设标识词汇将用户上传的自然语言规则分为if、then、else三类,在进行词法配置、语法配置后,即可将用户上传的自然语言规则转换成为prl文件即内存数据结构,进一步的,将prl文件加载进对应的模板即可生成java规则,其中,由于预先分为if、then、else三类,因此,将prl文件加载进对应类别的模板即可生成java规则,再将预先设定的数据承载对象bom与生成的java规则进行编译即可生成最终可执行的java规则文件。
本实施例中将业务规则的编写和运算分离,使用自然语言编写规则,然后将规则集编译成为程序语言。业务系统直接调用程序语言进行运算得到结果。利用规则集即prl文件和数据承载对象bom编译生成最终可执行的java规则文件,在业务系统发起请求后,可通过数据承载对象bom来承载业务系统的具体业务数据,并执行java规则文件来针对业务系统的具体业务数据应用业务规则来处理。
进一步地,在编译生成最终可执行的java规则文件之后,将生成的可执行java规则与应用的业务系统进行关联,并将生成的可执行java规则进行标号后加入至预设的应用规则标准库;所述业务系统包括信用卡审核系统、保险核保系统;当接收到业务系统发出的业务规则调用标号时,从所述预设的应用规则标准库中找到与业务规则调用标号对应的可执行java规则,并利用找出的可执行java规则进行业务规则运算,将运算结果返回至所述业务系统。具体的,可将生成的java规则文件添加至预设的应用规则标准库,若应用规则标准库中已有该规则,则进行更新,若没有,则进行添加。且将生成的java规则文件与其对应应用的业务系统(如标号)进行关联设置。业务系统需使用规则时传入业务标号及规则入参,查找内存中是否存在对应的规则应用,如果存在,则进行规则运算,否则返回调用失败。具体的,业务系统发出请求,包含业务标号和业务数据,在内存中的应用规则标准库进行查找,若存在与该业务系统的业务标号对应的规则应用即java规则文件,则调取该业务系统的业务数据来执行java规则文件,并将规则应用执行结果返回给该业务系统;若没有,则返回调用失败,从而实现业务规则的管理。
与现有技术相比,本实施例通过提取出用户编写的自然语言规则中的预设标识词汇及预设关键词汇;根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;将填充后的java规则模板进行编译生成可执行java规则。由于能将用户编写的自然语言规则自动转换、编译成可执行java规则,无需用户编写代码,即无需由专业的开发人员人工编写代码,人力成本更低,且提高了生成业务规则的效率。
如图2所示,图2为本发明业务规则的生成系统一实施例的应用示意图。在一种具体应用场景中,图2中左侧为用户编写的自然语言规则“如果:被投保人的年龄大于70,那么,拒绝;”,提取出用户编写的自然语言规则中的预设关键词汇“年龄”、“拒绝”,预设标识词汇“如果”,并转换成对应的代码名词“age”、“reject”、“if”,进行词法配置、语法配置后,即可将用户编写的自然语言规则转换成为图2中右侧的代码“if(age>70){reject}”。
如图3所示,图3为本发明业务规则的生成方法一实施例的流程示意图,该业务规则的生成方法包括以下步骤:
步骤s10,获取用户编写的自然语言规则;
步骤s20,提取出所述自然语言规则中的预设标识词汇及预设关键词汇;
步骤s30,根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;
步骤s40,将填充后的java规则模板进行编译生成可执行java规则。
本实施例中,业务规则的生成系统接收用户发出的业务规则生成请求,例如,接收用户通过手机、平板电脑、自助终端设备等终端发送的业务规则生成请求,如接收用户在手机、平板电脑、自助终端设备等终端中预先安装的客户端上发送来的业务规则生成请求,或接收用户在手机、平板电脑、自助终端设备等终端中的浏览器系统上发送来的业务规则生成请求。
在收到用户发出的业务规则生成请求后,可获取用户编写的自然语言规则;提取出所述自然语言规则中的预设标识词汇(例如“如果”、“那么”、“否则”等)及预设关键词汇(例如“年龄”、“金额”等);根据预先确定的预设标识词汇与java规则模板(例如if规则模板、then规则模板、else规则模板等)之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,例如,将预设关键词汇“年龄”转换为对应的代码“age”。将转换的代码填充至确定的java规则模板中的对应位置;将填充后的java规则模板进行编译生成可执行java规则。如可将预先设定的数据承载对象bom与填充后的java规则模板进行编译生成可执行java规则。在业务系统利用生成的可执行java规则进行业务规则运算时,接收所述业务系统发送的业务数据;通过所述可执行java规则中的数据承载对象bom来承载所述业务系统的业务数据,并运行所述可执行java规则来针对承载的业务数据进行业务规则运算。
本实施例中,支持用户使用自然语言编写规则,将用户编写的自然语言规则自动转换、编译成java程序语言,该java程序语言为可执行的业务规则文件,将该可执行的业务规则文件与对应的业务系统(如信用卡审核系统、保险核保系统等)进行关联配置,并将该可执行的业务规则文件存储在内存中。在业务系统如信用卡审核系统、保险核保系统等请求使用业务规则时,传入业务代号,即可在内存中查找是否存有与该业务系统相关联对应的业务规则文件,若有,则该业务系统可调用内存中对应的业务规则文件进行业务规则运算,否则返回调用失败。本实施例中将业务规则的编写和运算分离,可支持自然语言规则自动转换、编译成java程序语言,无需用户编写代码,即无需由专业的开发人员人工编写代码,人力成本更低。
首先,接收用户编写的自然语言规则,如在收到用户发出的业务规则生成请求后,可提供一输入界面供用户编写自然语言规则,用户编写完成后可上传编写好的自然语言规则,当然,用户也可将其已编写好的自然语言规则直接上传。将用户上传的自然语言规则转换编译成可执行的业务规则文件,具体的,根据用户上传的自然语言规则即规则集irl启动解析,进行词法配置、语法配置,将用户上传的自然语言规则中的预设关键词汇包装进数据结构,词法配置时可将自然语言规则中的预设关键词汇转换成对应的代码名词,如自然语言规则中的预设关键词汇“年龄”可转换成对应的代码名词“age”,自然语言规则中的预设标识词汇“如果”可转换成对应的代码名词“if”,语法配置时可将各个预设关键词汇的位置进行配置,以形成程序语言中的语法结构。本实施例中可根据自然语言规则中的预设标识词汇将用户上传的自然语言规则分为if、then、else三类,在进行词法配置、语法配置后,即可将用户上传的自然语言规则转换成为prl文件即内存数据结构,进一步的,将prl文件加载进对应的模板即可生成java规则,其中,由于预先分为if、then、else三类,因此,将prl文件加载进对应类别的模板即可生成java规则,再将预先设定的数据承载对象bom与生成的java规则进行编译即可生成最终可执行的java规则文件。
本实施例中将业务规则的编写和运算分离,使用自然语言编写规则,然后将规则集编译成为程序语言。业务系统直接调用程序语言进行运算得到结果。利用规则集即prl文件和数据承载对象bom编译生成最终可执行的java规则文件,在业务系统发起请求后,可通过数据承载对象bom来承载业务系统的具体业务数据,并执行java规则文件来针对业务系统的具体业务数据应用业务规则来处理。
进一步地,在编译生成最终可执行的java规则文件之后,将生成的可执行java规则与应用的业务系统进行关联,并将生成的可执行java规则进行标号后加入至预设的应用规则标准库;所述业务系统包括信用卡审核系统、保险核保系统;当接收到业务系统发出的业务规则调用标号时,从所述预设的应用规则标准库中找到与业务规则调用标号对应的可执行java规则,并利用找出的可执行java规则进行业务规则运算,将运算结果返回至所述业务系统。具体的,可将生成的java规则文件添加至预设的应用规则标准库,若应用规则标准库中已有该规则,则进行更新,若没有,则进行添加。且将生成的java规则文件与其对应应用的业务系统(如标号)进行关联设置。业务系统需使用规则时传入业务标号及规则入参,查找内存中是否存在对应的规则应用,如果存在,则进行规则运算,否则返回调用失败。具体的,业务系统发出请求,包含业务标号和业务数据,在内存中的应用规则标准库进行查找,若存在与该业务系统的业务标号对应的规则应用即java规则文件,则调取该业务系统的业务数据来执行java规则文件,并将规则应用执行结果返回给该业务系统;若没有,则返回调用失败,从而实现业务规则的管理。
与现有技术相比,本实施例通过提取出用户编写的自然语言规则中的预设标识词汇及预设关键词汇;根据预先确定的预设标识词汇与java规则模板之间的映射关系确定出所述自然语言规则中的预设标识词汇对应的java规则模板,并将所述自然语言规则中的预设关键词汇转换为对应的代码,将转换的代码填充至确定的java规则模板中的对应位置;将填充后的java规则模板进行编译生成可执行java规则。由于能将用户编写的自然语言规则自动转换、编译成可执行java规则,无需用户编写代码,即无需由专业的开发人员人工编写代码,人力成本更低,且提高了生成业务规则的效率。
如图2所示,本实施例中,在一种具体应用场景中,图2中左侧为用户编写的自然语言规则“如果:被投保人的年龄大于70,那么,拒绝;”,提取出用户编写的自然语言规则中的预设关键词汇“年龄”、“拒绝”,预设标识词汇“如果”,并转换成对应的代码名词“age”、“reject”、“if”,进行词法配置、语法配置后,即可将用户编写的自然语言规则转换成为图2中右侧的代码“if(age>70){reject}”。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有业务规则的生成系统,所述业务规则的生成系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述实施例中的业务规则的生成方法的步骤,该业务规则的生成方法的步骤s10、s20、s30等具体实施过程如上文所述,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。