CN108170717A - 数据探索模式的转换方法、装置、存储介质和电子设备 - Google Patents
数据探索模式的转换方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN108170717A CN108170717A CN201711269209.8A CN201711269209A CN108170717A CN 108170717 A CN108170717 A CN 108170717A CN 201711269209 A CN201711269209 A CN 201711269209A CN 108170717 A CN108170717 A CN 108170717A
- Authority
- CN
- China
- Prior art keywords
- node
- target
- workflow
- notebook
- data
- 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
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开涉及一种数据探索模式的转换方法、装置、存储介质和电子设备,涉及数据分析领域,该方法包括:在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤,根据多个目标步骤在Notebook中的执行顺序,将多个目标步骤转换成Workflow中的多个节点。能够将机器学习的探索过程由Notebook转换为可执行的Workflow,从而在数据探索过程中可以兼顾Notebook和Workflow二者的优点,既能够保证灵活组合,数据展现方便,也能够清楚的看到流程之间的流动关系。
Description
技术领域
本公开涉及数据分析领域,具体地,涉及一种数据探索模式的转换方法、装置、存储介质和电子设备。
背景技术
随着互联网、云计算和物联网等信息技术的迅猛发展,相应带来的数据量也是呈现爆发式的增长,要从这些海量的数据中找到有价值的信息,就需要利用数据分析的相关技术手段。
在现有技术中,机器学习的数据探索的过程通常有两种模式:一种是Notebook(笔记本模式),另一种是Workflow(工作流模式)。其中Notebook的特点是分为一个步骤一个步骤地执行,每个步骤之间是相互独立的,即上一个步骤与下一个步骤之间可能是不相关的,其优点是能够查看数据探索过程中每个步骤的运行结果和状态,其中也包括一些和易用性(如可视化)有关的非数据探索步骤,并且支持调整流程和模型参数,组合灵活性高,数据展现方便,但是整体的执行流程不容易看出,数据流动过程不直观。而Workflow中整体的执行流程清楚,能够清楚的看到流程之间的流动关系,但是Workflow的数据展现不方便,也不支持灵活组合,修改困难,如果需要对流程进行调整,需要从头开始。因此在进行数据探索过程中,很难兼顾两种模式的优点。
发明内容
本公开的目的是提供一种数据探索模式的转换方法、装置、存储介质和电子设备,用以解决不能兼顾Notebook和Workflow两种模式优点的问题
为了实现上述目的,本公开提供一种数据探索模式的转换方法,所述方法包括:
在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤;
根据所述多个目标步骤在所述Notebook中的执行顺序,将所述多个目标步骤转换成Workflow中的多个节点。
可选的,所述多个目标步骤为M个目标步骤,所述根据所述多个目标步骤在所述Notebook中的执行顺序,将所述多个目标步骤转换成Workflow中的多个节点,包括:
根据所述M个目标步骤在所述Notebook中的执行顺序,以及所述M个目标步骤中每个步骤的输入数据集和输出数据集,确定所述M个目标步骤中具有实际连接关系的N个目标步骤,以及所述N个目标步骤的实际连接关系,其中,N和M为大于零的整数,N≤M;
根据所述N个目标步骤的实际连接关系,将所述N个目标步骤转换为所述Workflow中的N个节点,所述N个节点在所述Workflow中的连接关系与所述N个目标步骤的实际连接关系对应。
可选的,所述根据所述M个目标步骤在所述Notebook中的执行顺序,以及所述M个目标步骤中每个步骤的输入数据集和输出数据集,确定所述M个目标步骤中具有实际连接关系的N个目标步骤,以及所述N个目标步骤的实际连接关系,包括:
根据所述M个目标步骤在所述Notebook中的执行顺序,从所述M个目标步骤中的最后一个步骤起,向前依次判断每个步骤需要的输入数据集中是否包含前一步骤的输出数据集;
当第一步骤需要的输入数据集中包含第二步骤的输出数据集时,确定所述第一步骤与所述第二步骤具有实际连接关系,其中所述第一步骤为所述M个目标步骤中的任一步骤,所述第二步骤为所述第一步骤的前一步骤;和/或,
当第一步骤需要的输入数据集中不包含第三步骤的输出数据集时,确定所述第一步骤与所述第三步骤没有实际连接关系,其中所述第三步骤为所述第一步骤的前一步骤;
当所述第一步骤与所述第三步骤没有实际连接关系时,将所述第三步骤删除。
可选的,所述方法还包括:
在所述Workflow的最后一个节点的输出数据集中确定目标数据列;
从所述最后一个节点的上一节点起,依次判断所述Workflow中的在所述最后一个节点之前的每个节点的输出数据集中是否包含所述目标数据列;
将输出数据集中包含所述目标数据列的节点确定为强连接节点,将输出数据集中不包含所述目标数据列的节点确定为弱连接节点;
在所述最后一个节点之前的每个节点上标识所述每个节点的强弱属性信息,所述每个节点的强弱属性信息用于指示所述每个节点是所述强连接节点,或所述弱连接节点,其中所述弱连接节点为可删除节点,所述强连接节点为不可删除节点。
可选的,所述方法还包括:
当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为一个第二节点时,将所述第一节点之后与所述第一节点连接的下游节点与所述第二节点连接;
当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为多个节点时,确定所述多个节点中每个节点为所述强连接节点或所述弱连接节点;
当所述多个节点均为所述强连接节点时,将所述多个节点中每个节点均与所述下游节点连接;
当所述多个节点均为所述弱连接节点时,将所述多个节点中每个节点均与所述下游节点连接;
当所述多个节点既存在所述弱连接节点,又存在所述强连接节点时,将所述多个节点中的强连接节点与所述下游节点连接。
根据本公开实施例的第二方面,提供一种数据探索模式的转换装置,所述装置包括:
步骤筛选模块,用于在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤;
转换模块,用于根据所述多个目标步骤在所述Notebook中的执行顺序,将所述多个目标步骤转换成Workflow中的多个节点。
可选的,所述多个目标步骤为M个目标步骤,所述转换模块包括:
筛选子模块,用于根据所述M个目标步骤在所述Notebook中的执行顺序,以及所述M个目标步骤中每个步骤的输入数据集和输出数据集,确定所述M个目标步骤中具有实际连接关系的N个目标步骤,以及所述N个目标步骤的实际连接关系,其中,N和M为大于零的整数,N≤M;
转换子模块,用于根据所述N个目标步骤的实际连接关系,将所述N个目标步骤转换为所述Workflow中的N个节点,所述N个节点在所述Workflow中的连接关系与所述N个目标步骤的实际连接关系对应。
可选的,所述筛选子模块用于:
根据所述M个目标步骤在所述Notebook中的执行顺序,从所述M个目标步骤中的最后一个步骤起,向前依次判断每个步骤需要的输入数据集中是否包含前一步骤的输出数据集;
当第一步骤需要的输入数据集中包含第二步骤的输出数据集时,确定所述第一步骤与所述第二步骤具有实际连接关系,其中所述第一步骤为所述M个目标步骤中的任一步骤,所述第二步骤为所述第一步骤的前一步骤;和/或,
当第一步骤需要的输入数据集中不包含第三步骤的输出数据集时,确定所述第一步骤与所述第三步骤没有实际连接关系,其中所述第三步骤为所述第一步骤的前一步骤;
当所述第一步骤与所述第三步骤没有实际连接关系时,将所述第三步骤删除。
可选的,所述装置还包括:
数据列获取模块,用于在所述Workflow的最后一个节点的输出数据集中确定目标数据列;
判断模块,用于从所述最后一个节点的上一节点起,依次判断所述Workflow中的在所述最后一个节点之前的每个节点的输出数据集中是否包含所述目标数据列;
分类模块,用于将输出数据集中包含所述目标数据列的节点确定为强连接节点,将输出数据集中不包含所述目标数据列的节点确定为弱连接节点;
标识模块,用于在所述最后一个节点之前的每个节点上标识所述每个节点的强弱属性信息,所述每个节点的强弱属性信息用于指示所述每个节点是所述强连接节点,或所述弱连接节点,其中所述弱连接节点为可删除节点,所述强连接节点为不可删除节点。
可选的,所述装置还包括:
节点连接模块,用于当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为一个第二节点时,将所述第一节点之后与所述第一节点连接的下游节点与所述第二节点连接;
节点识别模块,用于当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为多个节点时,确定所述多个节点中每个节点为所述强连接节点或所述弱连接节点;
所述节点识别模块,还用于当所述多个节点均为所述强连接节点时,将所述多个节点中每个节点均与所述下游节点连接;
所述节点识别模块,还用于当所述多个节点均为所述弱连接节点时,将所述多个节点中每个节点均与所述下游节点连接;
所述节点识别模块,还用于当所述多个节点既存在所述弱连接节点,又存在所述强连接节点时,将所述多个节点中的强连接节点与所述下游节点连接。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例的第一方面提供的数据探索模式的转换方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
本公开实施例的第三方面提供的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
在本公开提供的上述技术方案中,首先根据Notebook包含的所有步骤中的每个步骤是否会产生新的数据集来确定需要进行转换的步骤,将产生新的数据集的步骤作为要转换的目标步骤,不产生新数据的步骤则被筛选掉,然后将得到的多个目标步骤转换成Workflow中的多个节点,使多个节点能够按照该多个目标步骤在Notebook中的执行顺序来执行。本公开提供了一种能够将Notebook转化为Workflow的方法,在机器学习的数据探索过程中将Notebook转化为Workflow,从而可以在数据探索过程中可以兼顾Notebook和Workflow二者的优点,既能够保证灵活组合,数据展现方便,也能够清楚的看到流程之间的流动关系。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种数据探索模式的转换方法的流程图;
图2是根据一示例性实施例示出的另一种数据探索模式的转换方法的流程图;
图3是根据一示例性实施例示出的又一种数据探索模式的转换方法的流程图;
图4是根据一示例性实施例示出的再一种数据探索模式的转换方法的流程图;
图5是根据一示例性实施例示出的一种数据探索模式的转换装置的框图;
图6是根据一示例性实施例示出的另一种数据探索模式的转换装置的框图;
图7是根据一示例性实施例示出的又一种数据探索模式的转换装置的框图;
图8是根据一示例性实施例示出的再一种数据探索模式的转换装置的框图;
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的一种数据探索模式的转换方法、装置、存储介质和电子设备之前,首先对本公开各个实施例涉及的应用场景进行介绍,本公开各个实施例中可以应用于数据探索的场景中,在当前的数据探索技术中,虽然Notebook能够查看数据探索过程中每个步骤的运行结果和状态,其中也包括一些和易用性(如可视化)有关的非数据探索步骤,并且支持调整流程和模型参数,组合灵活性高,数据展现方便。但是在某些需要查看流程的整体性的场景下(例如使用预测服务功能时,整体性会有很大作用)Notebook就显得不那么直观了,因为Notebook中很难或不能看出整体的执行流程,然而在Workflow中整体的执行流程清楚,能够清楚的看到流程之间的流动关系,因此需要查看整体的执行流程时,可以通过本公开所提供的转换方法将Notebook转换成Workflow。
图1是根据一示例性实施例示出的一种数据探索模式的转换方法的流程图,如图1所示,该方法包括:
步骤101,在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤。
举例来说,由于Workflow中基本上整个工作流中的每个节点都是与探索过程有关的,而Notebook中除了与探索过程有关的步骤外,还包括一些无关的步骤,比如可视化的步骤,因此在转换过程中,可以将Notebook中与探索过程无关的步骤删除,其中可以通过判断Notebook包含的所有步骤中的每一个步骤是否会产生新的数据集,来确定每个步骤是否与探索过程有关。通过遍历Notebook包含的所有步骤中的每个步骤是否会产生新的数据集来对Notebook中所有步骤进行筛选,确定哪些步骤需要进行转换(即哪些步骤属于目标步骤),哪些步骤可以忽略。因此,Notebook的所有步骤中的任意一个步骤若会产生新的数据集,则该步骤属于目标步骤,若不产生新的数据集时,则该步骤不属于目标步骤。
步骤102,根据多个目标步骤在Notebook中的执行顺序,将多个目标步骤转换成Workflow中的多个节点。
举例来说,为了保证将数据探索模型的模式由Notebook转换为Workflow后,数据探索模型还能够保留原有的探索过程,在将多个目标步骤转换成Workflow中的多个节点时,使多个节点能够按照多个目标步骤在Notebook中的执行顺序来执行。
以Notebook中的任意一个步骤B为例,步骤A和步骤C分别为步骤B之前和之后的步骤,即在Notebook中执行顺序为先执行步骤A,再执行步骤B,最后执行步骤C。若在步骤101中,确定步骤A和步骤C均会产生新的数据集,而步骤B没有产生新的数据集,那么确定步骤B不需要进行转换,将步骤A和步骤C转换为Workflow中的两个节点a和节点c,并且节点a和节点c在Workflow的工作流中按照先执行节点a再执行节点c的顺序执行。
综上所述,本公开首先根据Notebook包含的所有步骤中的每个步骤是否会产生新的数据集来确定需要进行转换的步骤,将产生新的数据集的步骤作为要转换的目标步骤,不产生新数据的步骤则被筛选掉,然后将得到的多个目标步骤转换成Workflow中的多个节点,使多个节点能够按照该多个目标步骤在Notebook中的执行顺序来执行。本公开提供了一种能够将Notebook转化为Workflow的方法,在机器学习的数据探索过程中将Notebook转化为Workflow,从而可以在数据探索过程中可以兼顾Notebook和Workflow二者的优点,既能够保证灵活组合,数据展现方便,也能够清楚的看到流程之间的流动关系。
图2是根据一示例性实施例示出的另一种数据探索模式的转换方法的流程图,如图2所示,多个目标步骤为M个目标步骤,步骤102包括:
步骤1021,根据M个目标步骤在Notebook中的执行顺序,以及M个目标步骤中每个步骤的输入数据集和输出数据集,确定M个目标步骤中具有实际连接关系的N个目标步骤,以及N个目标步骤的实际连接关系,其中,N和M为大于零的整数,N≤M。
示例的,由于Notebook中可能存在某些步骤,虽然产生了新的数据集,但实际上可能在Workflow中还是属于无用的步骤,比如某一步骤虽然产生了新的数据集,但是该数据集在后续步骤中没有被用到,再比如某一步骤只是将输入数据集拆分成了多个输出数据集,并没有产生实际的新的数据集,等等。因此,若一个目标步骤产生的新的数据集,没有被该目标步骤的后一步骤所需要,那么可以认为该目标步骤与该目标步骤的后一步骤不存在实际连接关系,若一个目标步骤产生的新的数据集,被该目标步骤的后一步骤所需要,那么可以认为该目标步骤与该目标步骤的后一步骤存在实际连接关系。由于Notebook可以对中间步骤进行检验,因此可以获取Notebook中包含的所有目标步骤中每个步骤的输入数据集和输出数据集,并根据M个目标步骤在Notebook中的执行顺序,依据每个目标步骤的输入数据集和输出数据集确定其与前一步骤/和或后一步骤之间是否有存在实际的连接关系,从而可以确定M个目标步骤中具有实际连接关系的N个目标步骤,以及该N个目标步骤的实际连接关系。
进一步的,该步骤1021可以包括以下步骤:
首先,根据M个目标步骤在Notebook中的执行顺序,从M个目标步骤中的最后一个步骤起,向前依次判断每个步骤需要的输入数据集中是否包含前一步骤的输出数据集。
当第一步骤需要的输入数据集中包含第二步骤的输出数据集时,确定第一步骤与第二步骤具有实际连接关系,其中第一步骤为M个目标步骤中的任一步骤,第二步骤为第一步骤的前一步骤。和/或,
当第一步骤需要的输入数据集中不包含第三步骤的输出数据集时,确定第一步骤与第三步骤没有实际连接关系,其中第三步骤为第一步骤的前一步骤。
当第一步骤与第三步骤没有实际连接关系时,将第三步骤删除。
其中,该第三步骤与该第二步骤可以为一个步骤,也可以为不同步骤,即表示该第一步骤的前一步骤可以为一个步骤或多个步骤。另外,需要说明的是,每个步骤需要的输入数据集中是否包含前一步骤的输出数据集,可以通过判断每个步骤需要的输入数据集与前一步骤的输出数据集中是否存在名称相同的数据集。
举例来说,该第一步骤的前一步骤可能有一个步骤或多个步骤。从M个目标步骤中的最后一个步骤起向前依次进行上述判断,假设当前判断到步骤E,该步骤E的输入数据集为data1,如果步骤E的前一步骤为步骤D,步骤D的输出数据集中包含名称为data1的数据集,则可以确定步骤E的输入数据集中包含步骤D的输出数据集,因此确定步骤E与步骤D之间具有实际连接关系;如果步骤D的输出数据集中不包含名称为data1的数据集,则可以确定步骤E的输入数据集不包含步骤D的输出数据集,因此确定步骤E与步骤D之间不具有实际连接关系,可以将步骤D删除。若步骤E的前一步骤有步骤M、步骤N和步骤O,其中步骤M的输出数据集和步骤O的输出数据集中包含名称为data1的数据集,而步骤N的输出数据集中没有,则确定步骤E的输入数据集包含了步骤M的输出数据集和步骤O的输出数据集,因此确定步骤M和步骤O与步骤E之间具有实际连接关系,步骤N与步骤E之间不具有实际连接关系,可以将步骤N删除。
通过上述步骤可以将Notebook中的步骤进行进一步的简化,从而可以进一步提高从Notebook到Workflow的转化效率。
步骤1022,根据N个目标步骤的实际连接关系,将N个目标步骤转换为Workflow中的N个节点,N个节点在Workflow中的连接关系与N个目标步骤的实际连接关系对应。
示例的,当确定上述步骤M和步骤O与步骤E之间具有实际连接关系,步骤N与步骤E之间不具有实际连接关系,删除步骤N后,那么将步骤M、步骤O和步骤E转换为Workflow中的节点m、节点o和节点e,节点m、节点o和节点e在Workflow的工作流中的执行顺序为节点m和节点o为节点e的前一节点。
图3是根据一示例性实施例示出的又一种数据探索模式的转换方法的流程图,如图3所示,该方法还包括:
步骤103,在Workflow的最后一个节点的输出数据集中确定目标数据列。
示例的,在步骤1022执行完后,如果想要再进一步对Workflow中的节点进行简化,则需要考虑不能影响Workflow整个流程的执行,即需要保证Workflow从起始节点到结尾节点之间的整个流程的完整性。由于Workflow的运行流程为按顺序执行工作流中的所有节点之后,获得执行结果,因此在保留数据探索模型原有的探索过程的前提下,转换数据探索模式的过程中可以将不对目标数据列产生影响的节点删掉。因此可以对转换后的Workflow中可能还存在的一些不影响整个工作流节点进行识别,作为可以删除的节点,从而为用户提供一种进一步简化Workflow的辅助决策。可以将最后一个节点的输出数据集中的全部或某些数据列(可以根据实际需要确定)作为目标数据列,其中,目标数据列可以根据需求按照预设的格式存储在需求表中,并执行步骤104~106。其中,需要说明的是,每个节点的输入数据集和输出数据集中都包含有一个或多个数据列,其中同一个数据集输入一个节点进行处理后的输出数据集可能还是该数据集(即数据集名称不变),但是由于在该节点进行处理是可能会生成新的数据列,因此该数据集中的数据列有可能增加,即数据集不变,但数据列增加。其中,一个节点的输入数据集依赖于上一结点的输出数据集,但该节点所依赖的输入数据集中的数据列不一定是其上一节点产生的数据列,也可能是其上上一节点,或更上级节点所产生的数据列,因此对于某一个数据列,其来源是可追溯的。另外,在最后一个节点的输出数据集中确定目标数据列可以根据用户对转化得到的Workflow产生的数据列的实际需要来确定。
步骤104,从最后一个节点的上一节点起,依次判断Workflow中的在最后一个节点之前的每个节点的输出数据集中是否包含目标数据列。
步骤105,将输出数据集中包含目标数据列的节点确定为强连接节点,将输出数据集中不包含目标数据列的节点确定为弱连接节点。
步骤106,在最后一个节点之前的每个节点上标识每个节点的强弱属性信息,每个节点的强弱属性信息用于指示每个节点是强连接节点,或弱连接节点,其中弱连接节点为可删除节点,强连接节点为不可删除节点。
其中,目标数据列可以是一列或多列,如果为多列,则任意节点的输出数据集中只要包含该多列目标数据列中的至少一列,即可认为该节点为强连接节点,否则为弱连接节点。举例来说,假设从最后一个节点z的输出数据集确定的目标数据列为col1,col2,col3,col4,从最后一个节点z的上一节点y起,依次根据节点z之前的每个节点的输出数据集中是否包含目标数据列col1,col2,col3,col4中的至少一列,来判断每个节点的强弱属性。假设当前判断到节点y,如果该节点y的输出数据集中包含目标数据列col1,col2,col3,col4中的至少一列,则该节点属于强连接节点,若该节点y的输出数据集中不包含目标数据列col1,col2,col3,col4中任一列,则该节点属于弱连接节点,然后可以在节点y上标识相应的强弱属性信息,用于指示该节点y是否可以删除,以此类推可以继续对节点y之前的节点进行上述判断,直至识别出Workflow中每个节点的强弱属性。由此可见步骤103至106,能够在步骤102完成数据探索模式的转换后,给用户提供了一种辅助决策,以便帮助用户来确定哪些节点可以删除,哪些节点不能删除,从而辅助用户根据实际需求来删除不需要的节点,以进一步简化Workflow。
另外,基于图3所示的辅助决策方案,还需要考虑某些节点被删除后可能存在节点连接问题,图4是根据一示例性实施例示出的再一种数据探索模式的转换方法的流程图,如图4所示,该方法还包括:
步骤107,当第一节点被删除,且第一节点之前与第一节点连接的节点为一个第二节点时,将第一节点之后与第一节点连接的下游节点与第二节点连接。
步骤108,当第一节点被删除,且第一节点之前与第一节点连接的节点为多个节点时,确定多个节点中每个节点为强连接节点或弱连接节点。
步骤109,当多个节点均为强连接节点时,将多个节点中每个节点均与下游节点连接。
步骤110,当多个节点均为弱连接节点时,将多个节点中每个节点均与下游节点连接。
步骤111,当多个节点既存在弱连接节点,又存在强连接节点时,将多个节点中的强连接节点与下游节点连接。
举例来说,当用户根据步骤106中提供的强弱属性信息对Workflow中的节点进行删减后可能出现两种情况:第一种,被删除的第一节点之前与第一节点连接的节点只有一个第二节点的情况;第二种,被删除的第一节点之前与第一节点连接的节点有多个的情况。针对第一种情况,可以将第一节点之后与第一节点连接的下游节点与第二节点连接,例如,Workflow中节点a,节点b,节点c依次连接,当用户删除了节点b时,则可以将节点a直接与节点c连接。而对于第二种情况,可以先将多个节点按照强弱属性来划分,若多个节点均为强连接节点或均为若连接节点,那么多个节点中每个节点均与下游节点连接,若多个节点中存在强连接节点和弱连接节点,那么将多个节点中的强连接节点与下游节点连接。例如,节点z与节点z上游的节点x和节点y连接,且节点z与节点z下游的节点w连接。如果节点x和节点y均属于强连接节点或弱连接节点,那么在删除节点z之后,将节点x和节点y均与w连接;如果节点x属于强连接节点,节点y属于弱连接节点,那么在删除节点z之后,将节点x与w连接。
这样,能够在保证不影响整个Workflow的前提下,根据用户的实际需求进一步简化Workflow。
综上所述,本公开首先根据Notebook包含的所有步骤中的每个步骤是否会产生新的数据集来确定需要进行转换的步骤,将产生新的数据集的步骤作为要转换的目标步骤,不产生新数据的步骤则被筛选掉,然后将得到的多个目标步骤转换成Workflow中的多个节点,使多个节点能够按照该多个目标步骤在Notebook中的执行顺序来执行。本公开提供了一种能够将Notebook转化为Workflow的方法,在机器学习的数据探索过程中将Notebook转化为Workflow,从而可以在数据探索过程中可以兼顾Notebook和Workflow二者的优点,既能够保证灵活组合,数据展现方便,也能够清楚的看到流程之间的流动关系。
图5是根据一示例性实施例示出的一种数据探索模式的转换装置的框图,如图5所示,该装置200包括:
步骤筛选模块201,用于在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤。
转换模块202,用于根据多个目标步骤在Notebook中的执行顺序,将多个目标步骤转换成Workflow中的多个节点。
图6是根据一示例性实施例示出的另一种数据探索模式的转换装置的框图,如图6所示,多个目标步骤为M个目标步骤,转换模块202包括:
筛选子模块2021,用于根据M个目标步骤在Notebook中的执行顺序,以及M个目标步骤中每个步骤的输入数据集和输出数据集,确定M个目标步骤中具有实际连接关系的N个目标步骤,以及N个目标步骤的实际连接关系,其中,N和M为大于零的整数,N≤M。
转换子模块2022,用于根据N个目标步骤的实际连接关系,将N个目标步骤转换为Workflow中的N个节点,N个节点在Workflow中的连接关系与N个目标步骤的实际连接关系对应。
可选的,筛选子模块2021用于:
根据所述M个目标步骤在所述Notebook中的执行顺序,从所述M个目标步骤中的最后一个步骤起,向前依次判断每个步骤需要的输入数据集中是否包含前一步骤的输出数据集。
当第一步骤需要的输入数据集中包含第二步骤的输出数据集时,确定第一步骤与第二步骤具有实际连接关系,其中第一步骤为M个目标步骤中的任一步骤,第二步骤为第一步骤的前一步骤。和/或,
当第一步骤需要的输入数据集中不包含第三步骤的输出数据集时,确定第一步骤与第三步骤没有实际连接关系,其中第三步骤为第一步骤的前一步骤。
当第一步骤与第三步骤没有实际连接关系时,将第三步骤删除。
图7是根据一示例性实施例示出的又一种数据探索模式的转换装置的框图,如图7所示,该装置200还包括:
数据列获取模块203,用于在所述Workflow的最后一个节点的输出数据集中确定目标数据列。
判断模块204,用于从最后一个节点的上一节点起,依次判断Workflow中的在最后一个节点之前的每个节点的输出数据集中是否包含目标数据列。
分类模块205,用于将输出数据集中包含目标数据列的节点确定为强连接节点,将输出数据集中不包含目标数据列的节点确定为弱连接节点。
标识模块206,用于在最后一个节点之前的每个节点上标识每个节点的强弱属性信息,每个节点的强弱属性信息用于指示每个节点是强连接节点,或弱连接节点,其中弱连接节点为可删除节点,强连接节点为不可删除节点。
图8是根据一示例性实施例示出的再一种数据探索模式的转换装置的框图,如图8所示,该装置200还包括:
节点连接模块207,用于当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为一个第二节点时,将所述第一节点之后与所述第一节点连接的下游节点与所述第二节点连接。
节点识别模块208,用于当第一节点被删除,且第一节点之前与第一节点连接的节点为多个节点时,确定多个节点中每个节点为强连接节点或弱连接节点。
节点识别模块208,还用于当多个节点均为强连接节点时,将多个节点中每个节点均与下游节点连接。
节点识别模块208,还用于当多个节点均为弱连接节点时,将多个节点中每个节点均与下游节点连接。
节点识别模块208,还用于当多个节点既存在弱连接节点,又存在强连接节点时,将多个节点中的强连接节点与下游节点连接。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开首先根据Notebook包含的所有步骤中的每个步骤是否会产生新的数据集来确定需要进行转换的步骤,将产生新的数据集的步骤作为要转换的目标步骤,不产生新数据的步骤则被筛选掉,然后将得到的多个目标步骤转换成Workflow中的多个节点,使多个节点能够按照该多个目标步骤在Notebook中的执行顺序来执行。本公开提供了一种能够将Notebook转化为Workflow的方法,在机器学习的数据探索过程中将Notebook转化为Workflow,从而可以在数据探索过程中可以兼顾Notebook和Workflow二者的优点,既能够保证灵活组合,数据展现方便,也能够清楚的看到流程之间的流动关系。
图9是根据一示例性实施例示出的一种电子设备700的框图。如图9所示,该电子设备700可以包括:处理器701,存储器702,多媒体组件703,输入/输出(I/O)接口704,以及通信组件705。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的数据探索模式的转换方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据探索模式的转换方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的数据探索模式的转换方法。
综上所述,本公开首先根据Notebook包含的所有步骤中的每个步骤是否会产生新的数据集来确定需要进行转换的步骤,将产生新的数据集的步骤作为要转换的目标步骤,不产生新数据的步骤则被筛选掉,然后将得到的多个目标步骤转换成Workflow中的多个节点,使多个节点能够按照该多个目标步骤在Notebook中的执行顺序来执行。本公开提供了一种能够将Notebook转化为Workflow的方法,在机器学习的数据探索过程中将Notebook转化为Workflow,从而可以在数据探索过程中可以兼顾Notebook和Workflow二者的优点,既能够保证灵活组合,数据展现方便,也能够清楚的看到流程之间的流动关系。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据探索模式的转换方法,其特征在于,所述方法包括:
在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤;
根据所述多个目标步骤在所述Notebook中的执行顺序,将所述多个目标步骤转换成Workflow中的多个节点。
2.根据权利要求1所述的方法,其特征在于,所述多个目标步骤为M个目标步骤,所述根据所述多个目标步骤在所述Notebook中的执行顺序,将所述多个目标步骤转换成Workflow中的多个节点,包括:
根据所述M个目标步骤在所述Notebook中的执行顺序,以及所述M个目标步骤中每个步骤的输入数据集和输出数据集,确定所述M个目标步骤中具有实际连接关系的N个目标步骤,以及所述N个目标步骤的实际连接关系,其中,N和M为大于零的整数,N≤M;
根据所述N个目标步骤的实际连接关系,将所述N个目标步骤转换为所述Workflow中的N个节点,所述N个节点在所述Workflow中的连接关系与所述N个目标步骤的实际连接关系对应。
3.根据权利要求2所述的方法,其特征在于,所述根据所述M个目标步骤在所述Notebook中的执行顺序,以及所述M个目标步骤中每个步骤的输入数据集和输出数据集,确定所述M个目标步骤中具有实际连接关系的N个目标步骤,以及所述N个目标步骤的实际连接关系,包括:
根据所述M个目标步骤在所述Notebook中的执行顺序,从所述M个目标步骤中的最后一个步骤起,向前依次判断每个步骤需要的输入数据集中是否包含前一步骤的输出数据集;
当第一步骤需要的输入数据集中包含第二步骤的输出数据集时,确定所述第一步骤与所述第二步骤具有实际连接关系,其中所述第一步骤为所述M个目标步骤中的任一步骤,所述第二步骤为所述第一步骤的前一步骤;和/或,
当第一步骤需要的输入数据集中不包含第三步骤的输出数据集时,确定所述第一步骤与所述第三步骤没有实际连接关系,其中所述第三步骤为所述第一步骤的前一步骤;
当所述第一步骤与所述第三步骤没有实际连接关系时,将所述第三步骤删除。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述Workflow的最后一个节点的输出数据集中确定目标数据列;
从所述最后一个节点的上一节点起,依次判断所述Workflow中的在所述最后一个节点之前的每个节点的输出数据集中是否包含所述目标数据列;
将输出数据集中包含所述目标数据列的节点确定为强连接节点,将输出数据集中不包含所述目标数据列的节点确定为弱连接节点;
在所述最后一个节点之前的每个节点上标识所述每个节点的强弱属性信息,所述每个节点的强弱属性信息用于指示所述每个节点是所述强连接节点,或所述弱连接节点,其中所述弱连接节点为可删除节点,所述强连接节点为不可删除节点。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为一个第二节点时,将所述第一节点之后与所述第一节点连接的下游节点与所述第二节点连接;
当第一节点被删除,且所述第一节点之前与所述第一节点连接的节点为多个节点时,确定所述多个节点中每个节点为所述强连接节点或所述弱连接节点;
当所述多个节点均为所述强连接节点时,将所述多个节点中每个节点均与所述下游节点连接;
当所述多个节点均为所述弱连接节点时,将所述多个节点中每个节点均与所述下游节点连接;
当所述多个节点既存在所述弱连接节点,又存在所述强连接节点时,将所述多个节点中的强连接节点与所述下游节点连接。
6.一种数据探索模式的转换装置,其特征在于,所述装置包括:
步骤筛选模块,用于在Notebook包含的所有步骤中确定会产生新的数据集的步骤作为目标步骤,以得到多个目标步骤;
转换模块,用于根据所述多个目标步骤在所述Notebook中的执行顺序,将所述多个目标步骤转换成Workflow中的多个节点。
7.根据权利要求6所述的装置,其特征在于,所述多个目标步骤为M个目标步骤,所述转换模块包括:
筛选子模块,用于根据所述M个目标步骤在所述Notebook中的执行顺序,以及所述M个目标步骤中每个步骤的输入数据集和输出数据集,确定所述M个目标步骤中具有实际连接关系的N个目标步骤,以及所述N个目标步骤的实际连接关系,其中,N和M为大于零的整数,N≤M;
转换子模块,用于根据所述N个目标步骤的实际连接关系,将所述N个目标步骤转换为所述Workflow中的N个节点,所述N个节点在所述Workflow中的连接关系与所述N个目标步骤的实际连接关系对应。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
数据列获取模块,用于在所述Workflow的最后一个节点的输出数据集中确定目标数据列;
判断模块,用于从所述最后一个节点的上一节点起,依次判断所述Workflow中的在所述最后一个节点之前的每个节点的输出数据集中是否包含所述目标数据列;
分类模块,用于将输出数据集中包含所述目标数据列的节点确定为强连接节点,将输出数据集中不包含所述目标数据列的节点确定为弱连接节点;
标识模块,用于在所述最后一个节点之前的每个节点上标识所述每个节点的强弱属性信息,所述每个节点的强弱属性信息用于指示所述每个节点是所述强连接节点,或所述弱连接节点,其中所述弱连接节点为可删除节点,所述强连接节点为不可删除节点。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
权利要求9中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711269209.8A CN108170717B (zh) | 2017-12-05 | 2017-12-05 | 数据探索模式的转换方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711269209.8A CN108170717B (zh) | 2017-12-05 | 2017-12-05 | 数据探索模式的转换方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170717A true CN108170717A (zh) | 2018-06-15 |
CN108170717B CN108170717B (zh) | 2020-12-04 |
Family
ID=62524401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711269209.8A Active CN108170717B (zh) | 2017-12-05 | 2017-12-05 | 数据探索模式的转换方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170717B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179516A (zh) * | 2006-11-10 | 2008-05-14 | 北京航空航天大学 | 基于有向图的数据分发方法 |
US20090064171A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Updating workflow nodes in a workflow |
US7769997B2 (en) * | 2002-02-25 | 2010-08-03 | Network Resonance, Inc. | System, method and computer program product for guaranteeing electronic transactions |
JP5181283B2 (ja) * | 2008-06-30 | 2013-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム |
CN103577514A (zh) * | 2012-08-02 | 2014-02-12 | 国际商业机器公司 | 用于自动数据探索的方法和装置 |
US8719826B2 (en) * | 2007-12-21 | 2014-05-06 | Sap Ag | Work flow model processing with weak dependencies that allows runtime insertion of additional tasks |
CN104239137A (zh) * | 2014-08-21 | 2014-12-24 | 东软集团股份有限公司 | 基于dag节点最优路径的多模型并行调度方法及装置 |
CN104601591A (zh) * | 2015-02-02 | 2015-05-06 | 中国人民解放军国防科学技术大学 | 网络攻击源组织检测方法 |
CN105723335A (zh) * | 2013-09-16 | 2016-06-29 | 麦塔奈迪克斯有限公司 | 数据流探索 |
US20170024436A1 (en) * | 2015-07-21 | 2017-01-26 | Autodesk, Inc. | Platform for authoring, storing, and searching workflows |
US20170235848A1 (en) * | 2012-08-29 | 2017-08-17 | Dennis Van Dusen | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
-
2017
- 2017-12-05 CN CN201711269209.8A patent/CN108170717B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769997B2 (en) * | 2002-02-25 | 2010-08-03 | Network Resonance, Inc. | System, method and computer program product for guaranteeing electronic transactions |
CN101179516A (zh) * | 2006-11-10 | 2008-05-14 | 北京航空航天大学 | 基于有向图的数据分发方法 |
US20090064171A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Updating workflow nodes in a workflow |
US8719826B2 (en) * | 2007-12-21 | 2014-05-06 | Sap Ag | Work flow model processing with weak dependencies that allows runtime insertion of additional tasks |
JP5181283B2 (ja) * | 2008-06-30 | 2013-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム |
CN103577514A (zh) * | 2012-08-02 | 2014-02-12 | 国际商业机器公司 | 用于自动数据探索的方法和装置 |
US20170235848A1 (en) * | 2012-08-29 | 2017-08-17 | Dennis Van Dusen | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
CN105723335A (zh) * | 2013-09-16 | 2016-06-29 | 麦塔奈迪克斯有限公司 | 数据流探索 |
CN104239137A (zh) * | 2014-08-21 | 2014-12-24 | 东软集团股份有限公司 | 基于dag节点最优路径的多模型并行调度方法及装置 |
CN104601591A (zh) * | 2015-02-02 | 2015-05-06 | 中国人民解放军国防科学技术大学 | 网络攻击源组织检测方法 |
US20170024436A1 (en) * | 2015-07-21 | 2017-01-26 | Autodesk, Inc. | Platform for authoring, storing, and searching workflows |
Non-Patent Citations (1)
Title |
---|
LUCAS A. M. C. CARVALHO: "NiW: Converting Notebooks into Workflows", 《2017 WORKSHOP ON CAPTURING SCIENTIFIC KNOWLEDGE (SCIKNOW)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108170717B (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090198A (zh) | 图数据库创建及数据加载方法、设备及介质 | |
CN105468797B (zh) | 一种信息处理方法及装置 | |
CN107436762A (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
JP2007052703A (ja) | テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法 | |
CN103873318A (zh) | 一种网站自动化测试方法及自动化测试系统 | |
CN108153716A (zh) | 表单处理方法、装置、存储介质及电子设备 | |
CN112668181A (zh) | 仿真测试方法、装置、电子设备及存储介质 | |
CN106484771B (zh) | 差异信息文件生成及应用方法、装置 | |
CN108154238A (zh) | 机器学习流程的迁移方法、装置、存储介质和电子设备 | |
CN104537012B (zh) | 数据处理方法和装置 | |
JPH06188405A (ja) | Vlsiプロセスのデータ解析支援システム | |
US20120290282A1 (en) | Reachability analysis by logical circuit simulation for providing output sets containing symbolic values | |
CN106970870B (zh) | 网页测试平台、网页测试方法和网页测试系统 | |
CN104572439A (zh) | 回归警告方法和系统 | |
CN107220283B (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN104239212A (zh) | 测试用例的查询方法及装置、测试用例的建立方法及装置 | |
CN108170717A (zh) | 数据探索模式的转换方法、装置、存储介质和电子设备 | |
CN101930401A (zh) | 一种基于检测对象的软件漏洞模型检测方法 | |
CN106202523A (zh) | 网页编辑方法及装置 | |
CN108255486A (zh) | 用于表单设计的视图转换方法、装置和电子设备 | |
CN104156209B (zh) | 跨平台应用界面建模方法及装置 | |
JP6511793B2 (ja) | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 | |
CN108920241A (zh) | 一种显示状态调整方法、装置及设备 | |
CN107656828A (zh) | 一种检测程序运行偏离路径的方法和装置 | |
CN104615261A (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 |