CN115268876A - 一种基于类自然语言的规则引擎构建方法 - Google Patents

一种基于类自然语言的规则引擎构建方法 Download PDF

Info

Publication number
CN115268876A
CN115268876A CN202210953676.7A CN202210953676A CN115268876A CN 115268876 A CN115268876 A CN 115268876A CN 202210953676 A CN202210953676 A CN 202210953676A CN 115268876 A CN115268876 A CN 115268876A
Authority
CN
China
Prior art keywords
natural language
rule engine
rule
language
constructing
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
Application number
CN202210953676.7A
Other languages
English (en)
Inventor
臧海彬
张城炜
江浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Xindie Digital Technology Co ltd
Original Assignee
Jiangsu Xindie Digital Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Xindie Digital Technology Co ltd filed Critical Jiangsu Xindie Digital Technology Co ltd
Priority to CN202210953676.7A priority Critical patent/CN115268876A/zh
Publication of CN115268876A publication Critical patent/CN115268876A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种基于类自然语言的规则引擎构建方法,具体涉及计算机领域,包括如下步骤:步骤S1、根据业务规则所需的参数创建数据集;步骤S2、根据数据集预设自然语言片段池;步骤S3、进行可视化自然语言规则编排;步骤S4、利用规则库编译构建规则引擎。本发明基于开源软件Drools实现,节约软件开发成本;使用Groovy动态编译特性,天然具有热部署能力;在用户侧屏蔽程序语言,降低规则引擎使用复杂性,零技术业务人员可以使用。

Description

一种基于类自然语言的规则引擎构建方法
技术领域
本发明涉及计算机技术领域,更具体地说,本发明涉及一种基于类自然语言的规则引擎构建方法。
背景技术
自然语言构建规则引擎基于开源规则引擎Drools,结合Groovy动态编译特性,具有跨平台、灵活、实时、高效等特性,在不需要业务人员有技能的条件下定义规则、发布模型,同时具有热部署的能力,在不影响生产的情况下快速响应业务需要,该技术可用于信用评价、反欺诈、风控、监控等业务场景。
自然语言是相对于人工语言的一种人类语言,完全实现自然人语言理解是十分困难的,主要是自然语言和对话的各个层次上广泛存在的各种各样的歧义性或多义性。因此,在使用自然语言构建规则引擎存在一定的限制,此限制是必须由程序算法将要执行模型计算的数据集按数据类型预设出自然语言串,生成规则片段池,业务人员使用片段池内的短语进行规则的描述。
规则引擎是一种嵌入在软件系统中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。目前市场上存在多种规则引擎产品,分为商业和开源两类,商业产品价格昂贵,开源产品使用复杂,需要一定的技术知识,不适合零技术业务人员使用。
发明内容
为了克服现有技术的上述缺陷,本发明的实施例提供一种基于类自然语言的规则引擎构建方法,通过类自然语言的处理实现自然语言编写业务规则,在用户侧屏蔽技术语言,降低规则引擎的操作复杂性,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于类自然语言的规则引擎构建方法,包括如下步骤:
步骤S1、根据业务规则所需的参数创建数据集;
步骤S2、根据数据集预设自然语言片段池;
步骤S3、进行可视化自然语言规则编排;
步骤S4、利用规则库编译构建规则引擎。
在一个优选的实施方式中,在步骤S1中,所述数据集包括一个或多个数据项,数据项类型不固定,包括数值、字符、时间多种类型。
在一个优选的实施方式中,在步骤S1中,通过可视化图形点选方式由操作用户选择,可选的数据包括系统元数据、内存数据、API参数等,数据集组合完成后交由系统生成Groovy代码并进行编译,生成Java class文件,同时按Java双亲委派机制将class文件载入,最终形成规则引擎的Fact对象。
在一个优选的实施方式中,在步骤S1中,创建复合数据集时,需要按先子后父原则创建,先进行子数据集的创建,在父数据集中进行引用。
在一个优选的实施方式中,在步骤S4中,根据需要选取指标组合为规则库,再次交由drools进行编译,形成知识库。
本发明一种基于类自然语言的规则引擎构建方法技术效果和优点:
1.基于开源软件Drools实现,节约软件开发成本;
2.使用Groovy动态编译特性,天然具有热部署能力;
3.在用户侧屏蔽程序语言,降低规则引擎使用复杂性,零技术业务人员可以使用。
附图说明
图1为本发明操作运算符支持矩阵示意图;
图2为本发明可视化规则编排示意图;
图3为本发明常见规则类型示意图;
图4为本发明一种基于类自然语言的规则引擎构建方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明一种基于类自然语言的规则引擎构建方法,通过动态数据集定义,形成自然语言片段池。业务人员对规则片段池进行组合形成业务规则,经drools编译完成规则引擎构建。
具体的,如图4所示,包括如下步骤:
步骤S1、根据业务规则所需的参数创建数据集。
数据集包含一个或多个数据项,数据项类型不固定,如数值、字符、时间等,在本步骤通过可视化图形点选方式由操作用户选择,可选的数据包括系统元数据、内存数据、API参数等,数据集组合完成后交由系统生成Groovy代码并进行编译,生成Java class文件,同时按Java双亲委派机制将class文件载入,最终形成规则引擎的Fact对象。
对于复合数据集,需要按先子后父原则创建,先进行子数据集的创建,在父数据集中进行引用,后续编译载入步骤一致。
步骤S2、根据数据集预设自然语言片段池。
在完成数据集的设置的同时,根据数据集的构成,由程序算法分析,按数据类型预设自然语言片段,如图1所示,不同类型数据项其可用的操作符有差异,假设存在字符型数据项string,则按其所支持的比较预算符预设所有的信息。
步骤S3、进行可视化自然语言规则编排。
如图2所示,业务规则包含条件和动作两个部分,步骤1、2完成后,业务人员进行规则编写,按照自然语言表述,由系统设置如“当【条件】成立则【动作】”的固定格式,格式中的“条件”和“动作”是动态内容,其内容包含在步骤2的自然语言片段池中。
如图3所示,规则编排支持规则类型主要以下几类:
单对象,其表示存在某一类对象,但其不包含具体指标条件;
单对象条件比较,其表示存在某一类对象并且符合相应的条件;
单对象列表条件比较,其表示存在某一类对象,且有多条信息,每一条信息记录一次;
单对象属性聚合,其表示存在某一类对象,且有多条信息,对指定属性进行聚合计算;
多对象条件比较,其表示存在多个对象,且每个对象需要符合相应条件;
多对象列表条件比较,其表示存在多个对象,且有多条信息,每个对象需要符合相应条件;
多对象属性聚合,其表示存在多个对象,且有多条信息,对指定属性进行聚合计算;
编写完成的规则交于drools进行编译校验,编译失败则说明规则存在语法错误,编译成功后生成规则文件,规则文件存储在计算机磁盘上。
步骤S4、规则库编译。
在步骤3中,业务人员编写了一系列业务规则后,选取需要使用的指标组合为规则库,再次交由drools进行编译,形成知识库,至此规则引擎构建完成。
步骤S5、规则引擎接收输入,执行完成后输出。
构建好的规则引擎接收输入数据并完成输出。
实施例2
在上述实施例1中,具体介绍了本发明基于类自然语言的规则引擎的构建方法,在本实施例2中,对其进行具体举例。
在实施例2中,以公共信用评价场景进行举例,假设评价模型存在企业属性指标,指标下分注册资本、股东数、对外投资企业数、分支机构数、经营年限5项2级指标,其数据分别来自企业照面信息、对外投资信息、分支机构信息三个资源目录。
步骤A、分别由资源目录中选取规则中需要的因子数据配置企业照面信息、分支机构信息、对外投资信息三个Fact对象并生成Groovy代码。其中,企业照面信息包括注册资本与注册日期;分支机构信息包括分支机构名称与分支机构代码,对外投资信息包括投资企业名称与持股比例。代码如下:
Figure BDA0003790397660000051
Figure BDA0003790397660000061
步骤B、分析步骤1各Fact对象属性,自动预设自然人语言片段,本例中简要说明的一些片段如下:
[condition][]企业照面信息=BaseInfo()
[condition][]-注册资本在{capital1}和{capital2}之间=capital>={capital1}and capital<{capital2}
[condition][]-注册资本大于{capital}=capital>={capital}
[condition][]-注册日期在{registDate1}和{registDate2}之间=registDate>={registDate1}and capital<{registDate2}
[condition][]-注册日期在{registDate}前=capital<{registDate2}
[condition][]分支机构信息=BranchInfo()
[condition][]-分支机构数量大于{brandBum}=$n:Number($n>{brandBum})from accumulate(
BranchInfo()from branchs,
count($n))
[condition][]对外投资信息=InvestInfo()
[condition][]-对外投资数量大于{brandBum}=$n:Number($n>{brandBum})from accumulate(
InvestInfo()from invests,
count($n))
[consequence][]计分"{score}"=record("{score}");
步骤C、业务人员按照自然语言片段池内的短语进行规则编写,如下所示:
条件: 动作:
企业照面信息 计分0.2509
注册资金大于5000
注册日期在2010-01-01前
条件: 动作:
分支机构大于0 计分0.2274
条件: 动作:
对外投资数量大于10 计分0.2966
在上述规则中,以“注册资金大于5000”为例,其中“注册资金大于”是步骤2中“注册资本大于{capital}”的自然语言映射,“{capital}”代表接受的输入参数,即本例中的5000。
通过上述3个步骤完成了从数据集的定义到规则的编写,最终将步骤2的预设和步骤3编写的规则一并编译,生成规则代码,即可对外提供服务,通过API调用接受输入运算,完成信用评价功能。
最后应说明的几点是:首先,在本申请的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变,则相对位置关系可能发生改变;
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于类自然语言的规则引擎构建方法,其特征在于:包括如下步骤:
步骤S1、根据业务规则所需的参数创建数据集;
步骤S2、根据数据集预设自然语言片段池;
步骤S3、进行可视化自然语言规则编排;
步骤S4、利用规则库编译构建规则引擎。
2.根据权利要求1所述的一种基于类自然语言的规则引擎构建方法,其特征在于:在步骤S1中,所述数据集包括一个或多个数据项,数据项类型不固定,包括数值、字符、时间多种类型。
3.根据权利要求1所述的一种基于类自然语言的规则引擎构建方法,其特征在于:在步骤S1中,通过可视化图形点选方式由操作用户选择,可选的数据包括系统元数据、内存数据、API参数等,数据集组合完成后交由系统生成Groovy代码并进行编译,生成Java class文件,同时按Java双亲委派机制将class文件载入,最终形成规则引擎的Fact对象。
4.根据权利要求1所述的一种基于类自然语言的规则引擎构建方法,其特征在于:在步骤S1中,创建复合数据集时,需要按先子后父原则创建,先进行子数据集的创建,在父数据集中进行引用。
5.根据权利要求1所述的一种基于类自然语言的规则引擎构建方法,其特征在于:在步骤S4中,根据需要选取指标组合为规则库,再次交由drools进行编译,形成知识库。
CN202210953676.7A 2022-08-10 2022-08-10 一种基于类自然语言的规则引擎构建方法 Pending CN115268876A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210953676.7A CN115268876A (zh) 2022-08-10 2022-08-10 一种基于类自然语言的规则引擎构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210953676.7A CN115268876A (zh) 2022-08-10 2022-08-10 一种基于类自然语言的规则引擎构建方法

Publications (1)

Publication Number Publication Date
CN115268876A true CN115268876A (zh) 2022-11-01

Family

ID=83751558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210953676.7A Pending CN115268876A (zh) 2022-08-10 2022-08-10 一种基于类自然语言的规则引擎构建方法

Country Status (1)

Country Link
CN (1) CN115268876A (zh)

Similar Documents

Publication Publication Date Title
US11487529B2 (en) User interface that integrates plural client portals in plural user interface portions through sharing of one or more log records
KR102237877B1 (ko) 실시간 협업지원 지능형 소프트웨어 자동 개발 시스템 및 그 방법
CN110673848B (zh) 一种基于JavaWeb的企业信息管理系统配置装置
US9213707B2 (en) Ordered access of interrelated data files
Wasserman et al. The future of programming
US7424702B1 (en) Data integration techniques for use in enterprise architecture modeling
US20120041990A1 (en) System and Method for Generating Dashboard Display in Software Applications
US20070094306A1 (en) Method and model for enterprise system development and execution
US20070220039A1 (en) User interface property mapping
JPH06208592A (ja) データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法
CN104732306A (zh) 一种业务应用系统的快速开发系统及方法
US20110083120A1 (en) Modeling and linking documents for packaged software application configuration
CN103593414A (zh) 一种浏览器中网页的展现方法和装置
CN104391731A (zh) 一种基于c#的与数据类型无关的编辑方法
JP3577400B2 (ja) システム設計装置及びデータウエアハウス設計システム
JP3186117B2 (ja) データ中心型ソフトウエア部品によるプログラム自動生成システム
CN115469860B (zh) 基于指令集的需求到软件领域模型的自动生成方法及系统
CN114168121B (zh) 一种基于代码工厂模式开发软件系统、终端和存储介质
WO2020240482A1 (en) Process and system for automatic generation of functional architecture documents and software design and analysis specification documents from natural language
CN115268876A (zh) 一种基于类自然语言的规则引擎构建方法
EP4238019A1 (en) Computer methods and software for processing sap erp tasks
CN111459483A (zh) 界面的处理方法和装置
Guojie et al. Enhancing software reuse through application-level component approach
KR100656559B1 (ko) Bibd 방법론을 이용하는 프로그램 자동 개발 장치
CN112130841B (zh) Sql开发方法、装置及终端设备

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