CN110597847A - Sql语句自动生成方法、装置、设备及可读存储介质 - Google Patents
Sql语句自动生成方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110597847A CN110597847A CN201910886386.3A CN201910886386A CN110597847A CN 110597847 A CN110597847 A CN 110597847A CN 201910886386 A CN201910886386 A CN 201910886386A CN 110597847 A CN110597847 A CN 110597847A
- Authority
- CN
- China
- Prior art keywords
- node
- statement
- decision tree
- sql
- tree model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003066 decision tree Methods 0.000 claims abstract description 115
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SQL语句自动生成方法、装置、设备及可读存储介质,所述方法包括:遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;拼接所述节点语句得到所述目标决策树模型的SQL语句。本发明实现了将决策树模型自动生成SQL语句,减少了输出决策树模型到生产运行中的人力成本和时间成本。
Description
技术领域
本发明涉及人工智能领域,尤其涉及一种SQL语句自动生成方法、装置、设备及可读存储介质。
背景技术
决策树算法广泛的应用于金融领域,例如银行最基本最重要的资产业务信贷业务中会使用到决策树进行信贷风险建模。目前,建模人员建立决策树模型后,需要按照决策树模型的决策路径编写决策规则,并由数据库管理员编写为SQL(Structured QueryLanguage,结构化查询语言)代码进行生产部署运行。但是,手工编写SQL代码的方式效率低、错误率高;并且在用户数据变化快、增加迅速的情况下,决策树模型需要进行高频迭代更新,手工编码压力过大;大多数决策树模型通过训练以及交互式建模导入人工规则,节点数目往往达到上千,且参与训练的变量数目一般为千列级别,此时采用人工编写SQL代码成本过高。
发明内容
本发明的主要目的在于提供一种SQL语句自动生成方法、装置、设备及可读存储介质,旨在实现将决策树模型自动生成SQL语句,从而减少输出决策树模型到生产运行中的人力成本和时间成本。
为实现上述目的,本发明提供一种SQL语句自动生成方法,所述SQL语句自动生成方法包括以下步骤:
遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
拼接所述节点语句得到所述目标决策树模型的SQL语句。
可选地,所述目标决策树模型包括叶子节点和非叶子节点,所述非叶子节点包含孩子节点索引,所述遍历目标决策树模型中各节点的步骤包括:
从所述目标决策树模型各非叶子节点中的根节点开始,根据所述目标决策树模型中各所述非叶子节点的孩子节点索引,遍历各所述非叶子节点的孩子节点,直至遍历完所述目标决策树模型中各节点。
可选地,所述拼接所述节点语句得到所述目标决策树模型的SQL语句的步骤包括:
对于所述目标决策树模型中的各非叶子节点,将所述非叶子节点的孩子节点的节点语句,填充至所述非叶子节点的节点语句中,得到所述目标决策树模型的SQL语句。
可选地,所述预设SQL语句生成规则包括预测语句生成规则和条件语句生成规则,所述按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句的步骤包括:
当节点的类型是叶子节点时,按照所述预测语句生成规则生成所述节点的节点语句;
当节点的类型是非叶子节点时,按照所述条件语句生成规则生成所述节点的节点语句。
可选地,所述按照所述条件语句生成规则生成所述节点的节点语句的步骤包括:
对所述节点包含的拆分规则进行规则分析,得到所述节点的变量建模类型;
确定与所述变量建模类型匹配的预设的条件语句语法;
将所述节点的拆分规则按照确定的所述条件语句语法进行编码,得到所述节点的节点语句。
可选地,所述按照所述预测语句生成规则生成所述节点的节点语句的步骤包括:
将所述节点包含的预测名称和预测值填入预设的预测语句模板中,得到所述节点的节点语句。
可选地,所述预设的条件语句语法中包括缺失值语法。
为实现上述目的,本发明还提供一种SQL语句自动生成装置,所述SQL语句自动生成装置包括:
生成模块,用于遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
拼接模块,用于拼接所述节点语句得到所述目标决策树模型的SQL语句。
为实现上述目的,本发明还提供一种SQL语句自动生成设备,所述SQL语句自动生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的SQL语句自动生成程序,所述SQL语句自动生成程序被所述处理器执行时实现如上所述的SQL语句自动生成方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有SQL语句自动生成程序,所述SQL语句自动生成程序被处理器执行时实现如上所述的SQL语句自动生成方法的步骤。
本发明中,通过遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句,拼接各节点的节点语句得到目标决策树模型的SQL语句,实现了自动将决策树模型生成SQL语句,提高了决策树模型生成SQL语句的效率、和准确率,并且能够应对更新频率快、复杂度高的决策树模型,减少了输出决策树模型到生产运行中的人力成本和时间成本。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明SQL语句自动生成方法第一实施例的流程示意图;
图3为本发明实施例涉及的一种决策树模型的结构示意图;
图4为本发明SQL语句自动生成装置较佳实施例的功能示意图模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
需要说明的是,本发明实施例SQL语句自动生成设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。
如图1所示,该SQL语句自动生成设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对SQL语句自动生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及SQL语句自动生成程序。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持SQL语句自动生成程序以及其它软件或程序的运行。
在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与各参与设备建立通信连接;而处理器1001可以用于调用存储器1005中存储的SQL语句自动生成程序,并执行以下操作:
遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
拼接所述节点语句得到所述目标决策树模型的SQL语句。
进一步地,所述目标决策树模型包括叶子节点和非叶子节点,所述非叶子节点包含孩子节点索引,所述遍历目标决策树模型中各节点的步骤包括:
从所述目标决策树模型各非叶子节点中的根节点开始,根据所述目标决策树模型中各所述非叶子节点的孩子节点索引,遍历各所述非叶子节点的孩子节点,直至遍历完所述目标决策树模型中各节点。
进一步地,所述拼接所述节点语句得到所述目标决策树模型的SQL语句的步骤包括:
对于所述目标决策树模型中的各非叶子节点,将所述非叶子节点的孩子节点的节点语句,填充至所述非叶子节点的节点语句中,得到所述目标决策树模型的SQL语句。
进一步地,所述预设SQL语句生成规则包括预测语句生成规则和条件语句生成规则,所述按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句的步骤包括:
当节点的类型是叶子节点时,按照所述预测语句生成规则生成所述节点的节点语句;
当节点的类型是非叶子节点时,按照所述条件语句生成规则生成所述节点的节点语句。
进一步地,所述按照所述条件语句生成规则生成所述节点的节点语句的步骤包括:
对所述节点包含的拆分规则进行规则分析,得到所述节点的变量建模类型;
确定与所述变量建模类型匹配的预设的条件语句语法;
将所述节点的拆分规则按照确定的所述条件语句语法进行编码,得到所述节点的节点语句。
进一步地,所述按照所述预测语句生成规则生成所述节点的节点语句的步骤包括:
将所述节点包含的预测名称和预测值填入预设的预测语句模板中,得到所述节点的节点语句。
进一步地,所述预设的条件语句语法中包括缺失值语法。
基于上述的结构,提出SQL语句自动生成方法的各个实施例。
参照图2,图2为本发明SQL语句自动生成方法第一实施例的流程示意图。
本发明实施例提供了SQL语句自动生成方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明SQL语句自动生成方法的各个实施例的执行主体可以是智能手机、个人计算机和服务器等设备,为便于描述,以下各实施例中省略执行主体进行阐述。在本实施例中,SQL语句自动生成方法包括:
步骤S10,遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
在本实施例中,决策树模型指具有决策树要素的数据结构,可以由任意编程语言实现。决策树模型由节点和分支构成,节点可分为两类:叶子节点和非叶子节点;非叶子节中有一个根节点,是决策树模型的第一个选择点;每个非叶子节点分出至少两个分支,每个分支指向一个叶子节点或非叶子节点;非叶子节点的分支所指向的节点,称为该非叶子节点的孩子节点,该非叶子节点称为所指向的各节点的父节点;非叶子节点中包含拆分规则,非叶子节点的数据将根据选定变量特征的取值不同,分配至不同的孩子节点,这种选定的变量特征,以及取值的划分称为拆分规则;叶子节点不再指向任何节点。
在本实施例中,为解决现有技术中存在的手工将决策树模型编写为SQL代码,效率低、错误率高、成本高等问题,提出一种实现自动生成决策树模型的SQL代码的方法。
具体地,对于目标决策树模型,即待转换的决策树模型,遍历目标决策树模型中的各节点。对各节点,均按照与该节点的类型匹配的预设SQL语句生成规则,生成该节点的节点语句。其中,预设SQL语句生成规则是预先进行设置的规则,对于不同类型的节点,预先设置了不同的SQL语句生成规则。如,叶子节点中包含的是预测值,因此,预先设置了与叶子节点类型对应的SQL语句生成规则:预测语句生成规则。
需要说明的是,遍历目标决策树模型中节点的遍历顺序有多种,如当节点中包含父节点索引时,可以从一个叶子节点开始遍历,根据该叶子节点的父节点索引,遍历该叶子节点的父节点,再根据该父节点的父节点索引,遍历该父节点的父节点,直到到达根节点,再选择其他叶子节点开始遍历,直到遍历完目标决策树模型中的所有节点。
进一步地,所述预设SQL语句生成规则包括预测语句生成规则和条件语句生成规则,步骤S10包括:
步骤S101,当节点的类型是叶子节点时,按照所述预测语句生成规则生成所述节点的节点语句;
具体地,对于目标决策树中的各节点,当节点的类型是叶子节点时,按照预测语句生成规则生成该节点的节点语句,此时,生成的节点语句是预测语句。其中,预测语句生成规则可预先根据具体情况进行设置,如设置为将叶子节点的预测值,填充至预测语句模板:{“”}。例如,目标决策树模型用于预测样本的信贷申请结果,某叶子节点中的预测值是:接受,按照预测语句生成规则生成该叶子节点的预测语句是:{“接受”}。
步骤S102,当节点的类型是非叶子节点时,按照所述条件语句生成规则生成所述节点的节点语句。
当节点的类型是非叶子节点时,按照条件语句生成规则生成该节点的节点语句,此时,生成的节点语句是条件判断语句。其中,条件语句生成规则可预先根据具体情况进行设置,如设置为根据非叶子节点中的拆分规则,生成多段CASE WHEN ELSE条件判断语句。例如,目标决策树模型用于预测样本的信贷申请结果,某非叶子节点中的拆分规则是:年龄小于或等于70被划分至孩子节点A,年龄大于20被划分至孩子节点B,按照条件语句生成规则生成该非叶子节点的条件判断语句:
CASE WHEN‘年龄’<=70THEN
ELSE
END
步骤S20,拼接所述节点语句得到所述目标决策树模型的SQL语句。
拼接各个节点的节点语句得到整个目标决策树模型的SQL语句,具体地,可预先设置拼接规则,按照拼接规则进行拼接。需要说明的是,步骤S10和步骤S20并不构成对节点语句的生成和拼接过程的顺序限制,也即:可以是先得到所有节点的节点语句后,按照各个节点之间的连接关系,对各个节点语句进行拼接;也可以是在遍历的过程中,得到一个父节点和该父节点的孩子节点的节点语句后,即将该父节点和孩子节点的节点语句进行拼接,再遍历其他的节点。也即,遍历目标决策树模型中节点、生成节点语句的过程,与节点语句的凭借过程可以并行,也可以先后进行。
在本实施例中,通过遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句,拼接各节点的节点语句得到目标决策树模型的SQL语句,实现了自动将决策树模型生成SQL语句,提高了决策树模型生成SQL语句的效率、和准确率,并且能够应对更新频率快、复杂度高的决策树模型,减少了输出决策树模型到生产运行中的人力成本和时间成本。
进一步地,基于上述第一实施例,提出本发明SQL语句自动生成方法第二实施例,在本发明SQL语句自动生成方法第二实施例中,所述目标决策树模型包括叶子节点和非叶子节点,所述非叶子节点包含孩子节点索引,所述遍历目标决策树模型中各节点的步骤包括:
步骤A10,从所述目标决策树模型各非叶子节点中的根节点开始,根据所述目标决策树模型中各所述非叶子节点的孩子节点索引,遍历各所述非叶子节点的孩子节点,直至遍历完所述目标决策树模型中各节点。
在本实施例中,非叶子节点中包含孩子节点索引,孩子节点索引可以是非叶子节点的孩子节点的ID,也即,预先给决策树模型中的各个节点进行编号,每个节点分配一个ID,如某非叶子节点A有两个孩子节点:节点A和节点B,叶子节点A的孩子节点索引是:{A,B}。遍历目标决策树模型的顺序可以是:从目标决策树模型的各非叶子节点中的根节点开始,根据各非叶子节点的孩子节点索引,遍历各非叶子节点的孩子节点,直到遍历完目标决策树模型中的所有节点。具体地,从根节点开始,按照与根节点的类型匹配的SQL语句生成规则,生成根节点的节点语句;然后根据根节点的孩子节点索引,遍历根节点的孩子节点,对根节点的每个孩子节点,分别按照与该节点的类型匹配的SQL语句生成规则,生成该节点的节点语句,然后根据每个孩子节点的孩子节点索引(当孩子节点为叶子节点时,没有孩子节点索引),遍历每个孩子节点的孩子节点,生成节点语句,直到到达所有的叶子节点,也即遍历完所有的节点为止。
进一步地,在采用上述遍历顺序遍历目标决策树模型中各节点的过程中,对各节点,可采用上述步骤S101和S102中节点语句的生成方式,生成各个节点的节点语句,也即,对于叶子节点,按照预测语句生成规则生成叶子节点的节点语句,对于非叶子节点,按照条件语句生成规则生成条件语句的节点语句。
在本实施例中,通过采用从目标决策树模型各非叶子节点中的根节点开始,根据各非叶子节点的孩子节点索引,遍历各非叶子节点的孩子节点,直至遍历完目标决策树模型中各节点的遍历顺序遍历决策树模型,每个节点只需要访问一次,从而提高了决策树模型的遍历速度,进一步地提高了自动生成决策树模型的SQL语句的生成速度。
进一步地,步骤S20包括:
步骤S201,对于所述目标决策树模型中的各非叶子节点,将所述非叶子节点的孩子节点的节点语句,填充至所述非叶子节点的节点语句中,得到所述目标决策树模型的SQL语句。
在本实施例中,节点语句的拼接规则可以是:对目标决策树模型中的各非叶子节点,将非叶子节点的孩子节点的节点语句,填充至非叶子节点的节点语句中,得到目标决策树模型的SQL语句。具体地,非叶子节点的条件语句生成规则可以设置为根据孩子节点索引中孩子节点的ID顺序,来确定生成的该节点语句中各判断分支的顺序,则在拼接时,可以是根据非叶子节点的孩子节点索引中孩子节点的ID顺序,确定各孩子节点的节点语句在该非叶节点的节点语句中的填充位置。如,某非叶子节点中的拆分规则是:年龄小于或等于70被划分至孩子节点A,年龄大于20被划分至孩子节点B,该非叶子节点的孩子节点索引{A,B},根据孩子节点索引中的ID顺序,生成该非叶子节点的节点语句:
CASE WHEN‘年龄’<=70THEN
ELSE
END
在拼接时,根据孩子节点索引中的ID顺序,将节点A的节点语句填充至该非叶子节点节点语句的第一个判断分支下,将节点B的节点语句填充至第二个判断分支下,得到:
应当理解的是,根据该拼接规则,对于各非叶子节点,均将该非叶子节点的孩子节点的节点语句,填充至该非叶子节点的节点语句中,由于非叶子节点的孩子节点也可能是非叶子节点,也即非叶子节点的孩子节点也有孩子节点,该拼接规则是一个嵌套的拼接规则。
嵌套的顺序可以有多种,例如可以是先从目标决策树模型的叶子节点开始,往上一层一层嵌套,也可以是从根节点开始,往下一层一层嵌套。应当理解的是,嵌套顺序不限于上述两种,本实施例中对嵌套顺序不作限制。以一具体例子对两种嵌套顺序进行说明:如图3所示的决策树模型,包括5个节点:节点1、节点2、节点3、节点4和节点5;节点1是根节点,节点3、4和5均是叶子节点,其他是非叶子节点;图中的连线表示节点之间的关系,如节点1是节点2和3的父节点,节点2和3是节点1的孩子节点;非叶子节点中包含拆分规则和孩子节点索引,如节点1的拆分规则是:年龄小于或等于70被划分至孩子节点2,年龄大于20被划分至孩子节点3,孩子节点索引是{2,3}。
按照第一种嵌套顺序:
1、先将叶子节点4和5的节点语句填充至节点2的节点语句中,得到填充后的节点2的节点语句:
2、再将节点3的节点语句、填充后的节点2的节点语句填充至节点1的节点语句中,得到目标决策树模型的SQL语句:
按照第一种嵌套顺序:
1、先将叶子节点2和3的节点语句填充至节点1的节点语句中,得到填充后的节点1的节点语句:
2、再将节点4和5的节点语句,填充至填充后的节点1的节点语句中,得到目标决策树模型的SQL语句:
需要说明的是,若先遍历所有节点,得到各节点的节点语句后再拼接,则拼接的嵌套顺序可以按照上述第一种顺序,也可以按照上述第二种顺序。若在遍历的过程中进行节点语句的拼接,则当遍历顺序是本实施例中从根节点开始的顺序时,可优选采用上述第二种顺序,当遍历顺序是上述第一实施例中从叶子节点开始的顺序时,可优选采用上述第一种顺序。
在本实施例中,通过对于目标决策树模型中的各非叶子节点,将非叶子节点的孩子节点的节点语句,填充至该非叶子节点的节点语句中,得到目标决策树模型的SQL语句,提高自动生成标决策树模型的SQL语句的准确率和效率,从而进一步降低了输出决策树模型到生产运行中的人力成本和时间成本。
进一步地,基于上述第二实施例,提出本发明SQL语句自动生成方法第三实施例,在本发明SQL语句自动生成方法第三实施例中,所述步骤S101包括:
步骤B10,对所述节点包含的拆分规则进行规则分析,得到所述节点的变量建模类型;
在本实施例中,条件语句拆分规则可以是:对于非叶子节点,对该节点包含的拆分规则进行规则分析,得到该节点的变量建模类型。其中,变量建模类型包含区间型和列名型。区间型是指变量特征的取值是有大小属性的连续值,按照取值区间进行划分,例如年龄、升高和体重等。列名型是指变量特征的取值是离散值,按照取值类别进行划分,例如国籍、民族等。决策树模型的数据结构中可采用包含分割点的一维数组来表达区间型的划分规则,如采用[20,30]可以将年龄划分为0~20,20~30,30以上三个区间,其中,可预先规定分割点属于哪个区间范围,如预先规定20属于0~20区间。可采用多维数组来表达列名型的拆分规则,如采用[[中国、日本],[美国,加拿大],[英国,德国]]来将国籍划分为三个类别。此时,可通过检测节点的拆分规则的表达方式,来确定节点的变量建模类型,当表达方式是一维数组时,确定该节点的变量建模类型是区间型,当表达方式是二维数组时,确定该节点的变量建模类型是列名型。
步骤B20,确定与所述变量建模类型匹配的预设的条件语句语法;
在得到节点的变量建模类型后,在预设的条件语句语法中,选择与该变量建模类型匹配的条件语句语法。其中,预先设置了不同的变量建模类型对应的条件语句语法。如,对于区间型,预先设置的条件语句语法是:对多个区间,分别使用“WHEN”、变量名、“<=”、“>”、阈值的组合,生成判断分支的分支语句。对于列名型,预先设置的条件语句语法是:对多个类别,分别使用“WHEN”、变量名、“IN”、取值的组合,生成判断分支的分值语句。需要说明的是,对最后一个区间或类别,采用“ELSE”作为分支语句。
步骤B30,将所述节点的拆分规则按照确定的所述条件语句语法进行编码,得到所述节点的节点语句。
将节点的拆分规则按照该确定的条件语句语法进行编码,得到节点的节点语句。具体地,当节点的变量建模类型是区间型时,按照确定的区间型对应的条件语句语法对拆分规则进行编码,确定拆分规则中包含几个区间,根据区间数确定判断分支数,将各个区间的分割点填入各个判断分支,得到各个判断分支的分支语句,然后,将各个分支语句进行组合,得到该节点的节点语句。如,对于图3中的节点1,节点1的拆分规则表达为[70],确定该节点的变量建模类型是区间型,一共包含两个区间,判断分支数为2;对于第一个区间:年龄小于或等于70,使用“WHEN”、变量名、“<=”、“>”、阈值的组合,得到判断分支语句:WHEN年龄<=70;对于第二个区间(最后一个区间):年龄大于70,采用“ELSE”作为分支语句;将两个分支语句进行组合,得到该节点的节点语句:
CASE WHEN‘年龄’<=70THEN
ELSE
END
当节点的变量建模类型是列名型时,按照确定的列名型对应的条件语句语法对拆分规则进行编码,确定拆分规则中包含几个类别,根据类别数确定判断分支数,将各个类别的取值填入各个判断分支,得到各个判断分支的分支语句,然后,将各个分支语句进行组合,得到该节点的节点语句。如,某节点的拆分规则表达为[[中国、日本],[美国,加拿大],[英国,德国]],确定该节点的变量建模类型是列名型,一共包含3个类别,判断分支数为3;对于第一个类别:[中国、日本],使用“WHEN”、变量名、“IN”、取值的组合,得到判断分支语句:WHEN国籍IN(‘中国’,‘日本’);对于第二个类别:[美国,加拿大],使用“WHEN”、变量名、“IN”、取值的组合,得到判断分支语句:WHEN国籍IN(‘美国’,‘加拿大’);对于第三个类别(最后一个类别):[英国,德国],采用“ELSE”作为分支语句;将三个分支语句进行组合,得到该节点的节点语句:
CASE WHEN国籍IN(‘中国’,‘日本’)THEN
WHEN国籍IN(‘美国’,‘加拿大’)THEN
ELSE
END
在本实施例中,通过对非叶子节点包含的拆分规则进行规则分析,得到该节点的变量建模类型,确定与该变量建模类型匹配的预设的条件语句语法,将该节点的拆分规则按照该确定的条件语句语法进行编码,得到该节点的节点语句,实现了自动生成决策树模型中非叶子节点的节点语句,从而减少了输出决策树模型到生产运行中的人力成本和时间成本。
进一步地,所述步骤S102包括:
步骤S103,将所述节点包含的预测名称和预测值填入预设的预测语句模板中,得到所述节点的节点语句。
在本实施例中,预测语句拆分规则可以是:对于叶子节点,将该节点包含的预测名称和预测值,填入预设的预测语句模板中,得到该节点的节点语句。其中,预测语句模板可以是{“预测名称”:“预测值”},如,某叶子节点的预测名称是评估结果,对应的预测值是拒绝,则将该预测名称和预测值填入预测语句模板中,得到该节点的节点语句:{“评估结果”:“拒绝”}。又如,某叶子节点的预测名称是评估结果和评估概率,分别对应的预测值:拒绝和0.01,则将该预测名称和预测值填入预测语句模板中,得到该节点的节点语句:{“评估结果”:“拒绝”,“评估概率”:0.09}。
进一步地,所述预设的条件语句语法中包括缺失值语法。缺失值是指样本数据中没有某一变量特征的取值,如,某一样本数据中年龄这一项的取值是缺失的。预先可以在条件语句语法中设置缺失值语法,以对节点的拆分规则中包含对缺失值进行划分的规则时,采用条件语句语法中的缺失值语法对缺失值的划分规则进行编码。如,预先设置的缺失值语法时:当缺失值被单独作为一个区间或类别时,采用变量名IS NULL作为该区间或类别的判断分支的分支语句,当缺失值与其他区间或类别被划分为一个区间或类别时,采用OR变量名IS NULL与其他区间或类别的分支语句进行组合,得到一条分支语句。如,某节点的拆分规则是:年龄小于或等于70被划分为节点A,年龄的取值是缺失值被划分为节点B,年龄大于70被划分为节点C,则该节点的节点语句是:
CASE WHEN‘年龄’<=70THEN
WHEN‘年龄’IS NULL THEN
ELSE
END
又如,某节点的拆分规则是:年龄小于或等于70,或年龄的取值是缺失值被划分为节点A,年龄大于70被划分为节点B,则该节点的节点语句是:
CASE WHEN‘年龄’<=70OR‘年龄’IS NULL THEN
ELSE
END
在本实施例中,通过预先在条件语句语法中设置缺失值语法,使得当决策树模型的非叶子节点中包含对缺失值进行划分的拆分规则时,也能够自动地生成该非叶子节点的节点语句。
此外,此外本发明实施例还提出一种SQL语句自动生成装置,参照图4,所述SQL语句自动生成装置包括:
生成模块10,用于遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
拼接模块20,用于拼接所述节点语句得到所述目标决策树模型的SQL语句。
进一步地,所述目标决策树模型包括叶子节点和非叶子节点,所述非叶子节点包含孩子节点索引,所述生成模块10还用于:
从所述目标决策树模型各非叶子节点中的根节点开始,根据所述目标决策树模型中各所述非叶子节点的孩子节点索引,遍历各所述非叶子节点的孩子节点,直至遍历完所述目标决策树模型中各节点。
进一步地,所述拼接模块20还用于:
对于所述目标决策树模型中的各非叶子节点,将所述非叶子节点的孩子节点的节点语句,填充至所述非叶子节点的节点语句中,得到所述目标决策树模型的SQL语句。
进一步地,所述预设SQL语句生成规则包括预测语句生成规则和条件语句生成规则,所述生成模块10包括:
第一生成单元,用于当节点的类型是叶子节点时,按照所述预测语句生成规则生成所述节点的节点语句;
第二生成单元,用于当节点的类型是非叶子节点时,按照所述条件语句生成规则生成所述节点的节点语句。
进一步地,所述第二生成单元包括:
分析子单元,用于对所述节点包含的拆分规则进行规则分析,得到所述节点的变量建模类型;
确定子单元,用于确定与所述变量建模类型匹配的预设的条件语句语法;
编码子单元,用于将所述节点的拆分规则按照确定的所述条件语句语法进行编码,得到所述节点的节点语句。
进一步地,所述第一生成单元包括:
填充子单元,用于将所述节点包含的预测名称和预测值填入预设的预测语句模板中,得到所述节点的节点语句。
进一步地,所述预设的条件语句语法中包括缺失值语法。
本发明SQL语句自动生成装置的具体实施方式的拓展内容与上述SQL语句自动生成方法各实施例基本相同,在此不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有SQL语句自动生成程序,所述SQL语句自动生成程序被处理器执行时实现如下所述的SQL语句自动生成方法的步骤。
本发明SQL语句自动生成设备和计算机可读存储介质的各实施例,均可参照本发明SQL语句自动生成方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种SQL语句自动生成方法,其特征在于,所述SQL语句自动生成方法包括以下步骤:
遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
拼接所述节点语句得到所述目标决策树模型的SQL语句。
2.如权利要求1所述的SQL语句自动生成方法,其特征在于,所述目标决策树模型包括叶子节点和非叶子节点,所述非叶子节点包含孩子节点索引,所述遍历目标决策树模型中各节点的步骤包括:
从所述目标决策树模型各非叶子节点中的根节点开始,根据所述目标决策树模型中各所述非叶子节点的孩子节点索引,遍历各所述非叶子节点的孩子节点,直至遍历完所述目标决策树模型中各节点。
3.如权利要求2所述的SQL语句自动生成方法,其特征在于,所述拼接所述节点语句得到所述目标决策树模型的SQL语句的步骤包括:
对于所述目标决策树模型中的各非叶子节点,将所述非叶子节点的孩子节点的节点语句,填充至所述非叶子节点的节点语句中,得到所述目标决策树模型的SQL语句。
4.如权利要求1至3任一项所述的SQL语句自动生成方法,其特征在于,所述预设SQL语句生成规则包括预测语句生成规则和条件语句生成规则,所述按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句的步骤包括:
当节点的类型是叶子节点时,按照所述预测语句生成规则生成所述节点的节点语句;
当节点的类型是非叶子节点时,按照所述条件语句生成规则生成所述节点的节点语句。
5.如权利要求4所述的SQL语句自动生成方法,其特征在于,所述按照所述条件语句生成规则生成所述节点的节点语句的步骤包括:
对所述节点包含的拆分规则进行规则分析,得到所述节点的变量建模类型;
确定与所述变量建模类型匹配的预设的条件语句语法;
将所述节点的拆分规则按照确定的所述条件语句语法进行编码,得到所述节点的节点语句。
6.如权利要求4所述的SQL语句自动生成方法,其特征在于,所述按照所述预测语句生成规则生成所述节点的节点语句的步骤包括:
将所述节点包含的预测名称和预测值填入预设的预测语句模板中,得到所述节点的节点语句。
7.如权利要求5所述的SQL语句自动生成方法,其特征在于,所述预设的条件语句语法中包括缺失值语法。
8.一种SQL语句自动生成装置,其特征在于,所述SQL语句自动生成装置包括:
生成模块,用于遍历目标决策树模型中各节点,按照与各节点的类型匹配的预设SQL语句生成规则,生成各节点的节点语句;
拼接模块,用于拼接所述节点语句得到所述目标决策树模型的SQL语句。
9.一种SQL语句自动生成设备,其特征在于,所述SQL语句自动生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的SQL语句自动生成程序,所述SQL语句自动生成程序被所述处理器执行时实现如权利要求1至7中任一项所述的SQL语句自动生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有SQL语句自动生成程序,所述SQL语句自动生成程序被处理器执行时实现如权利要求1至7中任一项所述的SQL语句自动生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910886386.3A CN110597847A (zh) | 2019-09-19 | 2019-09-19 | Sql语句自动生成方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910886386.3A CN110597847A (zh) | 2019-09-19 | 2019-09-19 | Sql语句自动生成方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110597847A true CN110597847A (zh) | 2019-12-20 |
Family
ID=68861132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910886386.3A Pending CN110597847A (zh) | 2019-09-19 | 2019-09-19 | Sql语句自动生成方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597847A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340147A (zh) * | 2020-05-22 | 2020-06-26 | 四川新网银行股份有限公司 | 基于决策树的决策行为生成方法及系统 |
CN111638883A (zh) * | 2020-05-14 | 2020-09-08 | 四川新网银行股份有限公司 | 基于决策树的决策引擎实现方法 |
CN111897832A (zh) * | 2020-07-31 | 2020-11-06 | 深圳前海微众银行股份有限公司 | 模型部署方法、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
CN108363759A (zh) * | 2018-02-01 | 2018-08-03 | 厦门快商通信息技术有限公司 | 基于结构化数据的主题树生成方法及系统及智能对话方法 |
CN109408580A (zh) * | 2018-10-31 | 2019-03-01 | 北京百分点信息科技有限公司 | 一种跨数据源的sql编译装置及方法 |
-
2019
- 2019-09-19 CN CN201910886386.3A patent/CN110597847A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
CN108363759A (zh) * | 2018-02-01 | 2018-08-03 | 厦门快商通信息技术有限公司 | 基于结构化数据的主题树生成方法及系统及智能对话方法 |
CN109408580A (zh) * | 2018-10-31 | 2019-03-01 | 北京百分点信息科技有限公司 | 一种跨数据源的sql编译装置及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111638883A (zh) * | 2020-05-14 | 2020-09-08 | 四川新网银行股份有限公司 | 基于决策树的决策引擎实现方法 |
CN111638883B (zh) * | 2020-05-14 | 2023-05-16 | 四川新网银行股份有限公司 | 基于决策树的决策引擎实现方法 |
CN111340147A (zh) * | 2020-05-22 | 2020-06-26 | 四川新网银行股份有限公司 | 基于决策树的决策行为生成方法及系统 |
CN111897832A (zh) * | 2020-07-31 | 2020-11-06 | 深圳前海微众银行股份有限公司 | 模型部署方法、设备及可读存储介质 |
CN111897832B (zh) * | 2020-07-31 | 2024-04-12 | 深圳前海微众银行股份有限公司 | 模型部署方法、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933602B (zh) | 一种自然语言与结构化查询语言的转换方法及装置 | |
CN114547329A (zh) | 建立预训练语言模型的方法、语义解析方法和装置 | |
CN110597847A (zh) | Sql语句自动生成方法、装置、设备及可读存储介质 | |
CN110727659B (zh) | 基于sql语句的决策树模型生成方法、装置、设备及介质 | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
US11461317B2 (en) | Method, apparatus, system, device, and storage medium for answering knowledge questions | |
WO2020103345A1 (zh) | 会话流程处理方法、装置及计算机可读存储介质 | |
CN110597844A (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN112860685A (zh) | 对数据集的分析的自动推荐 | |
CN109033082B (zh) | 语义模型的学习训练方法、装置及计算机可读存储介质 | |
CN114185931A (zh) | 一种基于神经网络模型的中文语言处理方法及装置 | |
CN111090651B (zh) | 数据源的处理方法、装置、设备及可读存储介质 | |
US10235100B2 (en) | Optimizing column based database table compression | |
CN111324344A (zh) | 代码语句的生成方法、装置、设备及可读存储介质 | |
CN116400910A (zh) | 一种基于api替换的代码性能优化方法 | |
CN110716953A (zh) | Sql语句自动生成方法、装置、设备及可读存储介质 | |
US20190138585A1 (en) | Digital form optimization | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
US11790170B2 (en) | Converting unstructured technical reports to structured technical reports using machine learning | |
CN114970666A (zh) | 一种口语处理方法、装置、电子设备及存储介质 | |
CN111078886B (zh) | 基于dmcnn的特殊事件提取系统 | |
US11023674B2 (en) | Generation and application of object notation deltas | |
US11074401B2 (en) | Merging delta object notation documents | |
CN103116601A (zh) | 一种提高输入法智能联想准确度的方法及系统 | |
CN114201957A (zh) | 文本情感分析方法、装置及计算机可读存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191220 |
|
RJ01 | Rejection of invention patent application after publication |