CN112269567A - 一种跨语言机器学习方法及系统 - Google Patents

一种跨语言机器学习方法及系统 Download PDF

Info

Publication number
CN112269567A
CN112269567A CN202011208898.3A CN202011208898A CN112269567A CN 112269567 A CN112269567 A CN 112269567A CN 202011208898 A CN202011208898 A CN 202011208898A CN 112269567 A CN112269567 A CN 112269567A
Authority
CN
China
Prior art keywords
node
flow
algorithm
machine learning
array
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.)
Granted
Application number
CN202011208898.3A
Other languages
English (en)
Other versions
CN112269567B (zh
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.)
Servyou Software Group Co ltd
Original Assignee
Servyou Software Group 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 Servyou Software Group Co ltd filed Critical Servyou Software Group Co ltd
Priority to CN202011208898.3A priority Critical patent/CN112269567B/zh
Publication of CN112269567A publication Critical patent/CN112269567A/zh
Application granted granted Critical
Publication of CN112269567B publication Critical patent/CN112269567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种跨语言机器学习方法及系统,应用于以web服务的形式形成的机器学习平台,根据机器学习算法的各算法流程,生成算法流程图框架;根据各算法流程各自对应的具体操作步骤,一一为算法流程图框架上的各流程节点配置相应的算法描述;遍历算法流程图框架上的各流程节点,生成节点执行顺序,并按照节点执行顺序分别将各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。可见,本申请既能让web服务系统选择最常用的java语言,又能让机器学习算法的实现使用python语言,从而发挥了两种语言的生态优势。

Description

一种跨语言机器学习方法及系统
技术领域
本发明涉及机器学习领域,特别是涉及一种跨语言机器学习方法及系统。
背景技术
目前,机器学习算法通常都会以web服务的形式形成机器学习平台。在一个机器学习平台中,web服务和机器学习算法都用同一语言实现。web服务一般使用Java语言实现,所以web服务系统中的机器学习算法也用Java语言实现,需专业工程师进行编写,比较麻烦;而且,在机器学习领域中,最常用、模块最丰富的语言是Python语言。
因此,如何提供一种在web服务系统中,自主编写Python语言的机器学习算法实现机器学习的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种跨语言机器学习方法及系统,既能让web服务系统选择最常用的java语言,又能让机器学习算法的实现使用python语言,从而发挥了两种语言的生态优势。
为解决上述技术问题,本发明提供了一种跨语言机器学习方法,应用于以web服务的形式形成的机器学习平台,包括:
根据机器学习算法的各算法流程,生成算法流程图框架;
根据所述各算法流程各自对应的具体操作步骤,一一为所述算法流程图框架上的各流程节点配置相应的算法描述;
遍历所述算法流程图框架上的各流程节点,生成节点执行顺序,并按照所述节点执行顺序分别将所述各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
优选地,遍历所述算法流程图框架上的各流程节点,生成节点执行顺序的过程,包括:
根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;
根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序。
优选地,根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序的过程,包括:
将所述算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中;
判断所述currentNodes数组中的节点数目是否为0;若是,则将reorderNodes数组的节点加入顺序作为所述节点执行顺序;若否,则将当下所有入度为0的流程节点的节点ID均加入所述reorderNodes数组中;
将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,并去除所有与当下所有入度为0的流程节点相连的箭头,且根据所述nextNodes数组中的内容更新所述currentNodes数组中的内容;
若所述currentNodes数组当下存在入度为0的流程节点的节点ID或为空,则返回判断所述currentNodes数组中的节点数目是否为0的步骤。
优选地,所述跨语言机器学习方法还包括:
若所述currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID,则确定所述算法流程图框架存在死循环。
优选地,所述跨语言机器学习方法还包括:
在确定所述算法流程图框架存在死循环之后,根据所述算法流程图框架上各流程节点的箭头指向,确定形成流程环路的目标流程节点;
将所述目标流程节点的节点ID进行存储,供用户查看。
优选地,在遍历所述算法流程图框架上的各流程节点之前,所述跨语言机器学习方法还包括:
将配置好算法描述的算法流程图框架用json格式表示,以遍历用json格式表示的算法流程图框架上的各流程节点。
为解决上述技术问题,本发明还提供了一种跨语言机器学习系统,应用于以web服务的形式形成的机器学习平台,包括:
框架生成模块,用于根据机器学习算法的各算法流程,生成算法流程图框架;
描述配置模块,用于根据所述各算法流程各自对应的具体操作步骤,一一为所述算法流程图框架上的各流程节点配置相应的算法描述;
代码翻译模块,用于遍历所述算法流程图框架上的各流程节点,生成节点执行顺序,并按照所述节点执行顺序分别将所述各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
优选地,所述代码翻译模块中遍历所述算法流程图框架上的各流程节点,生成节点执行顺序的过程,包括:
根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;
根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序。
优选地,所述代码翻译模块中根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序的过程,包括:
将所述算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中;
判断所述currentNodes数组中的节点数目是否为0;若是,则将reorderNodes数组的节点加入顺序作为所述节点执行顺序;若否,则将当下所有入度为0的流程节点的节点ID均加入所述reorderNodes数组中;
将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,并去除所有与当下所有入度为0的流程节点相连的箭头,且根据所述nextNodes数组中的内容更新所述currentNodes数组中的内容;
若所述currentNodes数组当下存在入度为0的流程节点的节点ID或为空,则返回判断所述currentNodes数组中的节点数目是否为0的步骤。
优选地,所述代码翻译模块还用于:
若所述currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID,则确定所述算法流程图框架存在死循环。
本发明提供了一种跨语言机器学习方法,应用于以web服务的形式形成的机器学习平台,根据机器学习算法的各算法流程,生成算法流程图框架;根据各算法流程各自对应的具体操作步骤,一一为算法流程图框架上的各流程节点配置相应的算法描述;遍历算法流程图框架上的各流程节点,生成节点执行顺序,并按照节点执行顺序分别将各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。可见,本申请既能让web服务系统选择最常用的java语言,又能让机器学习算法的实现使用python语言,从而发挥了两种语言的生态优势。
本发明还提供了一种跨语言机器学习系统,与上述机器学习方法具有相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种跨语言机器学习方法的流程图;
图2为本发明实施例提供的一种生成节点执行顺序的流程图;
图3为本发明实施例提供的一种跨语言机器学习系统的结构示意图。
具体实施方式
本发明的核心是提供一种跨语言机器学习方法及系统,既能让web服务系统选择最常用的java语言,又能让机器学习算法的实现使用python语言,从而发挥了两种语言的生态优势。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种跨语言机器学习方法的流程图。
该跨语言机器学习方法应用于以web服务的形式形成的机器学习平台,包括:
步骤S1:根据机器学习算法的各算法流程,生成算法流程图框架。
具体地,本申请根据机器学习算法的各算法流程,生成算法流程图框架,比如,机器学习算法的各算法流程依次包括流程A、流程B及流程C,则根据机器学习算法的各算法流程生成的算法流程图框架为:
Figure BDA0002758088090000051
步骤S2:根据各算法流程各自对应的具体操作步骤,一一为算法流程图框架上的各流程节点配置相应的算法描述。
具体地,机器学习算法的每个算法流程在算法流程图框架上对应的流程框架称为流程节点,比如,算法流程图框架为:
Figure BDA0002758088090000052
则算法流程图框架上的流程节点包括
Figure BDA0002758088090000053
本申请根据机器学习算法的各算法流程各自对应的具体操作步骤,一一为算法流程图框架上的各流程节点配置相应的算法描述,比如,算法流程图框架为:
Figure BDA0002758088090000054
其中,流程A对应的具体操作步骤为将数字a与数字b相加的结果作为数字a,则为流程节点
Figure BDA0002758088090000055
配置表征将数字a与数字b相加的结果作为数字a的算法描述。
步骤S3:遍历算法流程图框架上的各流程节点,生成节点执行顺序,并按照节点执行顺序分别将各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
具体地,本申请遍历算法流程图框架上的各流程节点,生成各流程节点的节点执行顺序,比如,算法流程图框架为:
Figure BDA0002758088090000061
节点执行顺序依次为
Figure BDA0002758088090000062
然后,本申请按照算法流程图框架上各流程节点的节点执行顺序,分别将各流程节点配置的算法描述自主翻译成python代码,从而得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。比如,节点执行顺序依次为
Figure BDA0002758088090000063
则先将流程节点
Figure BDA0002758088090000064
配置的算法描述自主翻译成python代码,再将流程节点
Figure BDA0002758088090000065
配置的算法描述自主翻译成python代码,而后将流程节点
Figure BDA0002758088090000066
配置的算法描述自主翻译成python代码,最终得到整个机器学习算法的python代码。
更具体地,本申请可提前设置一个用于实现步骤S3的编译器,将步骤S2中配置好算法描述的算法流程图框架进行保存,然后将保存后的算法流程图框架输入至设置好的编译器中,以利用编译器自主生成用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
此外,机器学习算法可应用于用于推荐用户喜好的推荐系统场景、用于搜索问题答案的搜索系统场景、用于自动回复用户问题的问答系统场景、用于故障预测的异常检测系统场景、用于风险预测的风控系统场景等。
本发明提供了一种跨语言机器学习方法,应用于以web服务的形式形成的机器学习平台,根据机器学习算法的各算法流程,生成算法流程图框架;根据各算法流程各自对应的具体操作步骤,一一为算法流程图框架上的各流程节点配置相应的算法描述;遍历算法流程图框架上的各流程节点,生成节点执行顺序,并按照节点执行顺序分别将各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。可见,本申请既能让web服务系统选择最常用的java语言,又能让机器学习算法的实现使用python语言,从而发挥了两种语言的生态优势。
在上述实施例的基础上:
作为一种可选的实施例,遍历算法流程图框架上的各流程节点,生成节点执行顺序的过程,包括:
根据算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;
根据算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序。
具体地,本申请生成算法流程图框架上各流程节点的节点执行顺序的过程为:本申请根据算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点,比如,算法流程图框架为:
Figure BDA0002758088090000071
其中,
Figure BDA0002758088090000072
的箭头指向是
Figure BDA0002758088090000073
指向
Figure BDA0002758088090000074
即先执行流程节点
Figure BDA0002758088090000075
后执行流程节点
Figure BDA0002758088090000076
同理,先执行流程节点
Figure BDA0002758088090000077
后执行流程节点
Figure BDA0002758088090000078
然后,本申请根据算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序,比如,流程节点
Figure BDA0002758088090000079
的执行顺序在流程节点
Figure BDA00027580880900000710
之前,流程节点
Figure BDA00027580880900000711
的执行顺序在流程节点
Figure BDA00027580880900000712
之前,则流程节点
Figure BDA00027580880900000713
的执行顺序在流程节点
Figure BDA00027580880900000714
之前,最终的节点执行顺序依次是
Figure BDA00027580880900000715
请参照图2,图2为本发明实施例提供的一种生成节点执行顺序的流程图。
作为一种可选的实施例,根据算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;根据算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序的过程,包括:
将算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中;
判断currentNodes数组中的节点数目是否为0;若是,则将reorderNodes数组的节点加入顺序作为节点执行顺序;若否,则将当下所有入度为0的流程节点的节点ID均加入reorderNodes数组中;
将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,并去除所有与当下所有入度为0的流程节点相连的箭头,且根据nextNodes数组中的内容更新currentNodes数组中的内容;
若currentNodes数组当下存在入度为0的流程节点的节点ID或为空,则返回判断currentNodes数组中的节点数目是否为0的步骤。
具体地,currentNodes数组用于保存算法流程图框架上当下所有流程节点的节点ID(Identity document,身份标识);reorderNodes数组用于保存按照执行顺序已排好序的流程节点的节点ID;nextNodes数组用于更新currentNodes数组使用。
基于此,本申请生成算法流程图框架上各流程节点的节点执行顺序的具体过程为:为算法流程图框架上的所有流程节点一一分配一个节点ID,并将算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中。判断currentNodes数组中的节点数目是否为0;若currentNodes数组中的节点数目为0,说明算法流程图框架上所有流程节点均已在reorderNodes数组中排好序,可以理解的是,先加入reorderNodes数组的流程节点的执行顺序在前,则将reorderNodes数组的节点加入顺序作为节点执行顺序,输出reorderNodes数组即可得知节点执行顺序;若currentNodes数组中的节点数目不为0,说明算法流程图框架上所有流程节点还未全部在reorderNodes数组中排好序,可以理解的是,有箭头指向的流程节点的入度为1,没有箭头指向的流程节点的入度为0,没有箭头指向的流程节点的执行顺序在前,则将当下所有入度为0的流程节点的节点ID均加入reorderNodes数组中。将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,即将算法流程图框架上还未在nextNodes数组中排好序的流程节点的节点ID均加入nextNodes数组中。去除所有与当下所有入度为0的流程节点相连的箭头,即将算法流程图框架上还未在nextNodes数组中排好序的流程节点组成新的算法流程图框架。根据nextNodes数组中的内容更新currentNodes数组中的内容,若currentNodes数组当下存在入度为0的流程节点的节点ID,说明算法流程图框架上所有流程节点还未全部在reorderNodes数组中排好序,则返回判断currentNodes数组中的节点数目是否为0的步骤,直至算法流程图框架上所有流程节点均已在reorderNodes数组中排好序;或者,若currentNodes数组当下为空,则仍需返回判断currentNodes数组中的节点数目是否为0的步骤,目的是执行将reorderNodes数组的节点加入顺序作为节点执行顺序的步骤,得到最终的节点执行顺序。
比如,算法流程图框架为:
Figure BDA0002758088090000091
为流程节点
Figure BDA0002758088090000092
分配节点ID:A;为流程节点
Figure BDA0002758088090000094
分配节点ID:B;为流程节点
Figure BDA0002758088090000095
分配节点ID:C。将流程节点
Figure BDA0002758088090000093
的节点ID均加入currentNodes数组中;判断currentNodes数组中的节点数目是否为0;判断结果是不为0,则将当下入度为0的流程节点
Figure BDA0002758088090000096
的节点ID加入reorderNodes数组中;将当下入度大于0的流程节点
Figure BDA0002758088090000097
的节点ID均加入nextNodes数组中,并去除当下入度为0的流程节点
Figure BDA0002758088090000098
与流程节点
Figure BDA00027580880900000910
相连的箭头,算法流程图框架变为:
Figure BDA0002758088090000099
且根据nextNodes数组中的内容更新currentNodes数组中的内容,currentNodes数组中的内容更新为流程节点
Figure BDA00027580880900000911
的节点ID:B、C;若currentNodes数组当下存在入度为0的流程节点的节点ID(流程节点
Figure BDA00027580880900000912
),则返回判断currentNodes数组中的节点数目是否为0的步骤;判断结果是不为0,则将当下入度为0的流程节点
Figure BDA00027580880900000913
的节点ID加入reorderNodes数组中;将当下入度大于0的流程节点
Figure BDA00027580880900000914
的节点ID均加入nextNodes数组中,并去除当下入度为0的流程节点
Figure BDA00027580880900000915
与流程节点
Figure BDA00027580880900000917
相连的箭头,算法流程图框架变为:
Figure BDA00027580880900000916
且根据nextNodes数组中的内容更新currentNodes数组中的内容,currentNodes数组中的内容更新为流程节点
Figure BDA00027580880900000918
的节点ID:C;若currentNodes数组当下存在入度为0的流程节点的节点ID(流程节点
Figure BDA00027580880900000919
),则返回判断currentNodes数组中的节点数目是否为0的步骤;判断结果是不为0,则将当下入度为0的流程节点
Figure BDA00027580880900000920
的节点ID加入reorderNodes数组中;当下没有入度大于0的流程节点,nextNodes数组为空,且根据nextNodes数组中的内容更新currentNodes数组中的内容,currentNodes数组中的内容也为空;若currentNodes数组当下为空,则返回判断currentNodes数组中的节点数目是否为0的步骤;判断结果是为0,则将reorderNodes数组的节点加入顺序作为节点执行顺序:
Figure BDA00027580880900000921
作为一种可选的实施例,跨语言机器学习方法还包括:
若currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID,则确定算法流程图框架存在死循环。
进一步地,本申请在currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID时,可确定算法流程图框架存在死循环,比如,算法流程图框架为:
Figure BDA0002758088090000101
算法流程图框架上每个流程节点均有箭头指向,不存在入度为0的流程节点,则确定算法流程图框架存在死循环。
作为一种可选的实施例,跨语言机器学习方法还包括:
在确定算法流程图框架存在死循环之后,根据算法流程图框架上各流程节点的箭头指向,确定形成流程环路的目标流程节点;
将目标流程节点的节点ID进行存储,供用户查看。
进一步地,本申请可在确定算法流程图框架存在死循环之后,根据算法流程图框架上各流程节点的箭头指向,确定形成流程环路的目标流程节点,目的是将目标流程节点的节点ID进行存储,供用户查看得知形成流程环路的目标流程节点。比如,算法流程图框架为:
Figure BDA0002758088090000102
根据算法流程图框架上各流程节点的箭头指向,确定形成流程环路的目标流程节点为
Figure BDA0002758088090000103
作为一种可选的实施例,在遍历算法流程图框架上的各流程节点之前,跨语言机器学习方法还包括:
将配置好算法描述的算法流程图框架用json格式表示,以遍历用json格式表示的算法流程图框架上的各流程节点。
进一步地,本申请还可在配置好算法流程图框架上各流程节点的算法描述之后,先将配置好算法描述的算法流程图框架用json格式表示并保存(之所以将算法流程图框架表示为json格式,是为了便于用户查看),然后执行遍历用json格式表示的算法流程图框架上的各流程节点的步骤。
请参照图3,图3为本发明实施例提供的一种跨语言机器学习系统的结构示意图。
该跨语言机器学习系统应用于以web服务的形式形成的机器学习平台,包括:
框架生成模块1,用于根据机器学习算法的各算法流程,生成算法流程图框架;
描述配置模块2,用于根据各算法流程各自对应的具体操作步骤,一一为算法流程图框架上的各流程节点配置相应的算法描述;
代码翻译模块3,用于遍历算法流程图框架上的各流程节点,生成节点执行顺序,并按照节点执行顺序分别将各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
作为一种可选的实施例,代码翻译模块3中遍历算法流程图框架上的各流程节点,生成节点执行顺序的过程,包括:
根据算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;
根据算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序。
作为一种可选的实施例,代码翻译模块3中根据算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;根据算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序的过程,包括:
将算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中;
判断currentNodes数组中的节点数目是否为0;若是,则将reorderNodes数组的节点加入顺序作为节点执行顺序;若否,则将当下所有入度为0的流程节点的节点ID均加入reorderNodes数组中;
将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,并去除所有与当下所有入度为0的流程节点相连的箭头,且根据nextNodes数组中的内容更新currentNodes数组中的内容;
若currentNodes数组当下存在入度为0的流程节点的节点ID或为空,则返回判断currentNodes数组中的节点数目是否为0的步骤。
作为一种可选的实施例,代码翻译模块3还用于:
若currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID,则确定算法流程图框架存在死循环。
本申请提供的系统的介绍请参考上述方法的实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种跨语言机器学习方法,其特征在于,应用于以web服务的形式形成的机器学习平台,包括:
根据机器学习算法的各算法流程,生成算法流程图框架;
根据所述各算法流程各自对应的具体操作步骤,一一为所述算法流程图框架上的各流程节点配置相应的算法描述;
遍历所述算法流程图框架上的各流程节点,生成节点执行顺序,并按照所述节点执行顺序分别将所述各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
2.如权利要求1所述的跨语言机器学习方法,其特征在于,遍历所述算法流程图框架上的各流程节点,生成节点执行顺序的过程,包括:
根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;
根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序。
3.如权利要求2所述的跨语言机器学习方法,其特征在于,根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序的过程,包括:
将所述算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中;
判断所述currentNodes数组中的节点数目是否为0;若是,则将reorderNodes数组的节点加入顺序作为所述节点执行顺序;若否,则将当下所有入度为0的流程节点的节点ID均加入所述reorderNodes数组中;
将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,并去除所有与当下所有入度为0的流程节点相连的箭头,且根据所述nextNodes数组中的内容更新所述currentNodes数组中的内容;
若所述currentNodes数组当下存在入度为0的流程节点的节点ID或为空,则返回判断所述currentNodes数组中的节点数目是否为0的步骤。
4.如权利要求3所述的跨语言机器学习方法,其特征在于,所述跨语言机器学习方法还包括:
若所述currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID,则确定所述算法流程图框架存在死循环。
5.如权利要求4所述的跨语言机器学习方法,其特征在于,所述跨语言机器学习方法还包括:
在确定所述算法流程图框架存在死循环之后,根据所述算法流程图框架上各流程节点的箭头指向,确定形成流程环路的目标流程节点;
将所述目标流程节点的节点ID进行存储,供用户查看。
6.如权利要求1所述的跨语言机器学习方法,其特征在于,在遍历所述算法流程图框架上的各流程节点之前,所述跨语言机器学习方法还包括:
将配置好算法描述的算法流程图框架用json格式表示,以遍历用json格式表示的算法流程图框架上的各流程节点。
7.一种跨语言机器学习系统,其特征在于,应用于以web服务的形式形成的机器学习平台,包括:
框架生成模块,用于根据机器学习算法的各算法流程,生成算法流程图框架;
描述配置模块,用于根据所述各算法流程各自对应的具体操作步骤,一一为所述算法流程图框架上的各流程节点配置相应的算法描述;
代码翻译模块,用于遍历所述算法流程图框架上的各流程节点,生成节点执行顺序,并按照所述节点执行顺序分别将所述各流程节点配置的算法描述自主翻译成python代码,得到用python代码表示的机器学习算法,以利用此机器学习算法实现机器学习。
8.如权利要求7所述的跨语言机器学习系统,其特征在于,所述代码翻译模块中遍历所述算法流程图框架上的各流程节点,生成节点执行顺序的过程,包括:
根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;
根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序。
9.如权利要求8所述的跨语言机器学习系统,其特征在于,所述代码翻译模块中根据所述算法流程图框架上各流程节点的箭头指向,确定箭头两侧先后执行的流程节点;根据所述算法流程图框架上各流程节点的先后执行顺序,生成最终的节点执行顺序的过程,包括:
将所述算法流程图框架上所有流程节点的节点ID均加入currentNodes数组中;
判断所述currentNodes数组中的节点数目是否为0;若是,则将reorderNodes数组的节点加入顺序作为所述节点执行顺序;若否,则将当下所有入度为0的流程节点的节点ID均加入所述reorderNodes数组中;
将当下所有入度大于0的流程节点的节点ID均加入nextNodes数组中,并去除所有与当下所有入度为0的流程节点相连的箭头,且根据所述nextNodes数组中的内容更新所述currentNodes数组中的内容;
若所述currentNodes数组当下存在入度为0的流程节点的节点ID或为空,则返回判断所述currentNodes数组中的节点数目是否为0的步骤。
10.如权利要求9所述的跨语言机器学习系统,其特征在于,所述代码翻译模块还用于:
若所述currentNodes数组当下不为空但不存在入度为0的流程节点的节点ID,则确定所述算法流程图框架存在死循环。
CN202011208898.3A 2020-11-03 2020-11-03 一种跨语言机器学习方法及系统 Active CN112269567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011208898.3A CN112269567B (zh) 2020-11-03 2020-11-03 一种跨语言机器学习方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011208898.3A CN112269567B (zh) 2020-11-03 2020-11-03 一种跨语言机器学习方法及系统

Publications (2)

Publication Number Publication Date
CN112269567A true CN112269567A (zh) 2021-01-26
CN112269567B CN112269567B (zh) 2022-08-09

Family

ID=74344774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011208898.3A Active CN112269567B (zh) 2020-11-03 2020-11-03 一种跨语言机器学习方法及系统

Country Status (1)

Country Link
CN (1) CN112269567B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579261A (zh) * 2022-04-29 2022-06-03 支付宝(杭州)信息技术有限公司 多语言混合流的处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047046A (zh) * 2019-11-01 2020-04-21 东方微银科技(北京)有限公司 一种机器学习模型的可视化生成方法及设备
CN111310936A (zh) * 2020-04-15 2020-06-19 光际科技(上海)有限公司 机器学习训练的构建方法、平台、装置、设备及存储介质
WO2020151129A1 (zh) * 2019-01-25 2020-07-30 合肥本源量子计算科技有限责任公司 量子机器学习框架构建方法、装置、量子计算机及计算机存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020151129A1 (zh) * 2019-01-25 2020-07-30 合肥本源量子计算科技有限责任公司 量子机器学习框架构建方法、装置、量子计算机及计算机存储介质
CN111047046A (zh) * 2019-11-01 2020-04-21 东方微银科技(北京)有限公司 一种机器学习模型的可视化生成方法及设备
CN111310936A (zh) * 2020-04-15 2020-06-19 光际科技(上海)有限公司 机器学习训练的构建方法、平台、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579261A (zh) * 2022-04-29 2022-06-03 支付宝(杭州)信息技术有限公司 多语言混合流的处理方法和装置
CN114579261B (zh) * 2022-04-29 2022-09-20 支付宝(杭州)信息技术有限公司 多语言混合流的处理方法和装置

Also Published As

Publication number Publication date
CN112269567B (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
CN107944629B (zh) 一种基于异质信息网络表示的推荐方法及装置
CN109918489B (zh) 一种多策略融合的知识问答方法和系统
US6549752B2 (en) Apparatus and method accumulating cases to be learned
CN107368294B (zh) 应用原型生成方法、模板训练方法、装置及系统
TW200901037A (en) Late bound programmatic assistance
US20040154009A1 (en) Structuring program code
CN111400480B (zh) 针对多轮对话的用户意图识别方法和装置
CN113641591B (zh) 测试用例生成方法及装置、测试方法及装置
CN112269567B (zh) 一种跨语言机器学习方法及系统
US20120330877A1 (en) Efficient binary protocol marshalling for rule engine sessions
CN106484488B (zh) 一体化云编译方法和系统
CN109144498B (zh) 一种面向对象实例化任务的api自动推荐方法及装置
CN110597847A (zh) Sql语句自动生成方法、装置、设备及可读存储介质
CN109727597A (zh) 语音信息的交互辅助方法和装置
CN110909523B (zh) 一种数据处理方法及装置
CN110308904B (zh) 多类型前端框架的聚合方法、装置和计算机设备
Clack et al. Performance enhanced genetic programming
US20070006071A1 (en) Method for transforming a tree structure into a more human-comprehensible document
CN114691707B (zh) 线上集群服务配置方法、系统、网络设备和存储介质
CN114201663B (zh) 一种基于标签传播的集团客户挖掘方法、装置和电子设备
CN115167856A (zh) 基于node.js环境的vue项目约定式路由配置方法及系统
CN114840642A (zh) 事件抽取方法、装置、设备及存储介质
CN115437627A (zh) 学件开发方法、装置、设备及存储介质
CN111178925A (zh) 用户画像的属性预测方法、装置、服务器和计算机可读介质
CN111104144A (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
GR01 Patent grant
GR01 Patent grant