CN111443904A - 一种生成可执行代码的方法及计算机可读存储介质 - Google Patents
一种生成可执行代码的方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111443904A CN111443904A CN202010172236.9A CN202010172236A CN111443904A CN 111443904 A CN111443904 A CN 111443904A CN 202010172236 A CN202010172236 A CN 202010172236A CN 111443904 A CN111443904 A CN 111443904A
- Authority
- CN
- China
- Prior art keywords
- generating
- node
- flow chart
- nodes
- executable code
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种生成可执行代码的方法及计算机可读存储介质,方法包括:基于自然语言描述的流程图解析得到结构化数据,所述结构化数据包括所述流程图的文本框内的文本内容、所述文本框之间的指向关系;将所述结构化数据转换成可执行代码;所述流程图的原始文本作为输入数据、所述可执行代码作为目标生成数据训练网络数据模型;利用训练好的所述神经网络模型对流程图的节点的文本内容做处理,生成的可执行代码作为所述节点的属性。通过流程图的形式输入专家知识,比传统的专家手写规则更符合人的认知。
Description
技术领域
本发明涉及工业控制系统技术领域,尤其涉及一种生成可执行代码的方法及计算机可读存储介质。
背景技术
工业生产环节存在安全操作的要求,面对突发异常情况,工业专家会将应对处理方案以流程图的形式整理。现有技术中设计了一种基于VISIO软件绘图构建故障树,对军舰故障进行诊断。通过对VISIO绘图的解析,将流程图解析为节点与节点间的指向关系。从而将故障树转化为规则库,用于后续诊断任务。
传统专家系统交由专家写规则的方法,在规则量大之后,容易产生相互冲突、难以维护。使用流程图的方式来输入知识,层次化的结构跟可视化符合人类认知的特点,更容易制定,也能减少规则之间的冲突。
对一些基于流程图生成可执行程序的工作,节点内的信息通常都需要依照严格的规则来书写,便于后续解析,如果表达方式稍有变化,基于规则的解析方式就会失效。要么使用者需要经过严格训练按照规则书写,要么解析规则需要频繁修改,以适应更多语言特征,难以维护。
如果是基于流程图生成可执行程序,绘制的流程图需要是有向无环图(DAG),否则可能会陷入到无限循环中去。在工业控制场景中,工业系统的状态会存在随机性,可能会存在环状的状态变化,直接生成可执行程序的方法不一定适用。
如果不使用外部知识输入,而是直接使用软件控制工业系统来应对突发情况,根据美国相关综述评估,在核电站领域,单个核岛的控制就需要100万行以上的代码,还有1%的工程出错率。这种方法工程量过大,也不利于更新维护。机器学习技术能帮助系统推荐或自动运行,但是因为数据不完备的原因,不能应对所有的突发情况,在工业系统的控制中,还是需要以人的判断能力与操作能力为主。
现有技术中缺乏一种更方便有效的基于流程图生成可执行代码的方法。
以上背景技术内容的公开仅用于辅助理解本发明的构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。
发明内容
本发明为了解决现有的问题,提供一种生成可执行代码的方法及计算机可读存储介质。
为了解决上述问题,本发明采用的技术方案如下所述:
一种生成可执行代码的方法,包括如下步骤:S1:基于自然语言描述的流程图解析得到结构化数据,所述结构化数据包括所述流程图的文本框内的文本内容、所述文本框之间的指向关系;S2:将所述结构化数据转换成可执行代码;S3:所述流程图的作为原始文本、所述可执行代码作为目标生成数据训练网络数据模型;S4:利用训练好的所述神经网络模型对流程图的节点的文本内容做处理,生成的可执行代码作为所述节点的属性。
优选地,基于所述流程图解析得到所述结构化数据包括如下步骤:S11:对所述流程图解析得到通过有向折线相连接的所有节点与所述有向折线的属性信息;S12:根据所述节点与所述有向折线的属性信息划分所述节点的类型、得到所述节点的文本内容及所述节点之间的指向关系与逻辑关系,所述节点类型包括开始节点、结束节点、执行节点和判断节点;S13:构建结构化数据。
优选地,将所述结构化数据转换成可执行代码包括:存在与所述文本内容对应的可执行程序时,构建所述文本内容与所述可执行程序的成对数据;不存在与所述文本内容对应的可执行程序时,根据所述文本内容的自然语言生成可执行程序的代码。
优选地,存在与所述文本内容对应的可执行程序是依照规则生成或手动标注。
优选地,根据所述文本内容的自然语言生成可执行程序的代码包括如下步骤:根据自然语言生成一系列构建抽象句法树的操作序列,所述抽象句法树是使用抽象句法描述语言表述的;将所述构建抽象句法树转化为可执行程序的代码。
优选地,根据自然语言按照先序遍历的方式生成一系列构建抽象句法树的操作序列。
优选地,所述神经网络模型是seq2seq神经网络模型,包括编码器和解码器。
优选地,所述编码器用于输入所述文本内容,使用bi-LSTM结构,输入的向量特征为:
N=[c,n1,...,nn]
其中,c是表示节点类型的embedding;n1到nn是文本内容经过分词或直接以字符为单位的embedding表示;
经过双向的LSTM网络结构进行编码,输出结果用H表示,H两端的输出会拼接起来,输入到所述解码器中作为初始输入信息:
H=fbi-LSTM(N)。
优选地,所述解码器使用修改后的LSTM网络使其融入抽象句法树的树状结构中每个节点的父节点属性信息:
其中,at-1是上一个时间状态输出的动作,表示构建抽象句法树的动作序列,计算方式是将候选生成内容的向量表示与当前解码器输出求内积后做softmax计算取最大值的一项,pt是表示当前操作父节点的embedding,父节点的指向根据抽象句法树的树形结构判定;
本发明还提供一种计算机可读存储介质,所述计算机存储介质中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如上任意一项所述的方法。
本发明的有益效果为:提供一种生成可执行代码的方法及计算机可读存储介质,通过流程图的形式输入专家知识,比传统的专家手写规则更符合人的认知。
进一步的,流程图用于操作导航可以表示复杂的操作流程。
更进一步的,结合了自然语言处理技术,输入的流程图使用自然语言书写,符合人类认知。
附图说明
图1是本发明实施例中生成可执行代码的方法的示意图。
图2是本发明实施例中基于所述流程图解析得到所述结构化数据的方法示意图。
图3是本发明实施例中根据文本内容的自然语言生成可执行程序的代码的方法示意图。
图4是本发明实施例中抽象句法树的示意图。
图5是本发明实施例中操作导航监督流程示意图。
具体实施方式
为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接既可以是用于固定作用也可以是用于电路连通作用。
需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
如图1所示,本发明提供一种生成可执行代码的方法,包括如下步骤:
S1:基于自然语言描述的流程图解析得到结构化数据,所述结构化数据包括所述流程图的文本框内的文本内容、所述文本框之间的指向关系;
S2:将所述结构化数据转换成可执行代码;
S3:所述流程图的作为原始文本、所述可执行代码作为目标生成数据训练网络数据模型;
S4:利用训练好的所述神经网络模型对流程图的节点的文本内容做处理,生成的可执行代码作为所述节点的属性。
本发明的方法在知识输入环节,通过流程图的形式输入专家知识,比传统的专家手写规则更符合人的认知。
进一步的,流程图用于操作导航可以表示复杂的操作流程。
更进一步的,结合了自然语言处理技术,输入的流程图使用自然语言书写,符合人类认知。
在本发明的一种实施例中,流程图是指使用Visio或其他具有解析功能的绘图软件绘制流程图。调用相关软件的解析功能对绘制的流程图进行解析。这里以Visio软件为例,可以通过微软公司的win32com接口来调用Visio软件的解析功能。使用该接口打开待解析目标流程图后,返回一个流程图对象的实例,记为flow。flow实例有pages属性,对应于不同页面的绘图信息。遍历或选取当中的某一页可以对当页解析,也可以得到当页的实例,记为page。page实例具有shapes的属性,对应于该页上的所有绘图元素。遍历shapes,遍历的元素使用shape表示。每个shape元素都会有唯一的ID,以及该元素的相关属性。如果shape是节点元素,就会有节点的框形状、颜色、文本内容等属性。如果shape是连线元素,会有从哪个节点出发、指向哪个节点的信息以及文本属性。使用这些信息一一配对,就可以提取到流程图的结构化信息。如果是使用其他工具绘制的流程图,比如markdown,graph viz这些文本型绘图工具,也会有相应的解析方法,他们的数据都是使用文本描述的,根据语言规则进行解析即可。对象流程图中包含四种基本节点,除了每份流程图都有且仅有一个的开始节点、结束节点,执行节点(executable node)、判断节点(decision node),节点之间通过有向折线相连接,判定节点出来的折线有两种,分别是判断为是(True)跟判断为非(False)的折线。调用Visio软件对流程图文件解析,得到流程图中所有节点与连线的属性信息,根据形状对节点类型做划分,根据文本属性得到节点的文本内容,根据连线属性得到节点之间的指向关系与逻辑关系,比如判断节点a判断正确跳转至节点b,判断为非跳至节点c。根据这些信息可以解析流程图得到结构化的表格。
如图2所示,基于所述流程图解析得到所述结构化数据包括如下步骤:
S11:对所述流程图解析得到通过有向折线相连接的所有节点与所述有向折线的属性信息;
S12:根据所述节点与所述有向折线的属性信息划分所述节点的类型、得到所述节点的文本内容及所述节点之间的指向关系与逻辑关系,所述节点类型包括开始节点、结束节点、执行节点和判断节点;
S13:构建结构化数据。
表1结构化数据表格
在本发明的一种实施例中,将结构化数据转换成可执行代码包括:
存在与所述文本内容对应的可执行程序时,构建所述文本内容与所述可执行程序的成对数据;
不存在与所述文本内容对应的可执行程序时,根据所述文本内容的自然语言生成可执行程序的代码。
具体的,根据文本内容,若有对应的可执行程序。先依照规则生成或者手动标注的方式,准备从文本到可执行程序的成对数据。手写方式是,对应原始文本计算机需要执行的程序,由程序员手动写出来。依照规则生成通常是基于模板的方法,比如某些功能会比较常用,以查询传感器数值功能为例。准备好查询代码的模板,当文本中出现传感器名称时,查找词典(map)中对应的接口变量名称,填入到查询代码模板的槽值中去。
如图3所示,根据所述文本内容的自然语言生成可执行程序的代码包括如下步骤:
根据自然语言生成一系列构建抽象句法树的操作序列,所述抽象句法树是使用抽象句法描述语言表述的;
将所述构建抽象句法树转化为可执行程序的代码。
如图4所示,具体的,自然语言生成代码的方法是先根据自然语言生成一系列构建AST(抽象句法树)的操作序列,AST是使用ASDL(抽象句法描述语言)来表述的,再使用特定编程语言的AST模块将AST转为可执行编程语言即可。常见的编程语言都有内置的AST解析模块,比如python编程语言有内置的ast.py功能,使用compile方法可以将AST转为可执行代码,使用parse方法可以将可执行代码转为AST。相应的Java等其他编程语言也会有对应的功能模块。其中在构建AST的操作序列,按照先序遍历的方式生成,节点通常都会有对应的父节点。
在本发明的一种实施例中,神经网络模型是seq2seq神经网络模型,上述得到的可执行代码使用python的ast.py反向parse到AST作为对应文本内容的目标生成数据。使用神经网络seq2seq模型来将文本内容映射到生成AST操作序列。
seq2seq是由编码器(Encoder)跟解码器(Decoder)两部分组成的神经网络模型。编码器用于输入文本内容,使用bi-LSTM结构,输入的向量特征为:
N=[c,n1,...,nn]
其中,c是表示节点类型的embedding;目的是将流程图节点类型作为上下文信息输入到网络中,n1到nn是文本内容经过分词或直接以字符为单位的embedding表示;
经过双向的LSTM网络结构进行编码,输出结果用H表示,H两端的输出会拼接起来,输入到所述解码器中作为初始输入信息:
H=fbi-LSTM(N)
解码器使用修改后的LSTM网络,因为生成AST是树状结构,每个节点都会有父节点,微改的目的是使其融入抽象句法树的树状结构中每个节点的父节点属性信息:
其中,at-1是上一个时间状态输出的动作,表示构建抽象句法树的动作序列,计算方式是将候选生成内容的向量表示与当前解码器输出求内积后做softmax计算取最大值的一项,pt是表示当前操作父节点的embedding,父节点的指向根据抽象句法树的树形结构判定;
其中,ct是st与所述编码器的所有输入的所述文本内容计算attention后得到的向量;:表示向量的拼接;at是当前生成动作,ac是所有候选生成动作的embedding表示。使用这种运算方法得到的a序列,用于构建AST。
使用如上训练好的神经网络模型对流程图的节点的文本内容做处理,生成的可执行代码作为节点的属性。得到如表2所示的结构化数据表格。
表2结构化数据表格
如图5所示,在本发明的一种实施例中,根据条件选择流程图执行导航,通常使用决策树类算法来做判定,已经是相当成熟的研究,本发明不做过多介绍。每份流程图需要输入启动条件用于选择流程图启动。
工业系统的状态其实对应于流程图中的节点,根据流程图的进程,在节点之间相互转换,即可起到定位工业系统状态,进行导航的作用。节点之间的转换根据指向关系确定,执行类型的节点有唯一指向节点,判断类型节点如果判断为是就跳转至yes_node,如果判断为非就跳转至no_node。每跳转到一个节点开始时是开始状态,如果节点类型是执行节点就跳转到执行状态,如果是判断节点就跳转到判断状态,如果没有后续节点就跳转到结束状态,表示导航结束。
如果当前是执行状态,在用户输入跳转至下一个状态的指令时,执行可执行代码,检查用户是否有完成要求的操作,比如“打开阀门”。如果程序执行结果表示用户未完成操作,返回提示;如果用户已完成操作,跳转至下一个节点,回到开始状态。
如果当前是判断状态,会根据可执行代码的结果来确定下一步是跳转至yes_node还是no_node,将该信息返回给用户。待用户输入跳转指令后,跳转至对应节点,并且回开始状态。
可以理解的是,可执行程序需要查询工业系统的状态,需要预先准备工业系统的数据查询接口。
如上所述本发明是基于节点状态变换的导航监督方法。
在本发明一种具体的实施例中,在核电站安全操作中采用了本发明的方法来提升核电系统的安全性。现有技术中,核电站的操作方法是将操作流程图绘制打印在纸册子上,操作员翻阅册子依照指示来进行操作。过去的操作方式产生的人为操作失误主要集中在两个方面,一个是流程图的规模庞大操作员在人工定位流程图步骤时出错,另一个是对某一步的操作,操作员漏操作或者误操作。
使用本发明的方法对流程图进行解析后,可以得到结构化的节点关系,与每个节点需要执行的监督代码,配合核电站开发的提示系统向操作员提供提示与监督功能。一、使用节点状态变换的方式来导航替代操作员人工定位当前运行状态;二、在每个节点执行可执行代码,行使监督提供功能,比如检查传感器是否有按照要求操作等。依照自然语言生成监督执行代码,表现与数据集的规模相关,在公开数据集上能达到68.6%的准确率,也就意味着对漏操作或误操作的场景,有68%左右的监督纠正概率。
本申请实施例还提供一种控制装置,包括处理器和用于存储计算机程序的存储介质;其中,处理器用于执行所述计算机程序时至少执行如上所述的方法。
本申请实施例还提供一种存储介质,用于存储计算机程序,该计算机程序被执行时至少执行如上所述的方法。
本申请实施例还提供一种处理器,所述处理器执行计算机程序,至少执行如上所述的方法。
所述存储介质可以由任何类型的易失性或非易失性存储设备、或者它们的组合来实现。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,FerromagneticRandom Access Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,SynchronousStatic Random Access Memory)、动态随机存取存储器(DRAM,DynamicRandom AccessMemory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic RandomAccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double DataRateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
Claims (10)
1.一种生成可执行代码的方法,其特征在于,包括如下步骤:
S1:基于自然语言描述的流程图解析得到结构化数据,所述结构化数据包括所述流程图的文本框内的文本内容、所述文本框之间的指向关系;
S2:将所述结构化数据转换成可执行代码;
S3:所述流程图的作为原始文本、所述可执行代码作为目标生成数据训练网络数据模型;
S4:利用训练好的所述神经网络模型对流程图的节点的文本内容做处理,生成的可执行代码作为所述节点的属性。
2.如权利要求1所述的生成可执行代码的方法,其特征在于,基于所述流程图解析得到所述结构化数据包括如下步骤:
S11:对所述流程图解析得到通过有向折线相连接的所有节点与所述有向折线的属性信息;
S12:根据所述节点与所述有向折线的属性信息划分所述节点的类型、得到所述节点的文本内容及所述节点之间的指向关系与逻辑关系,所述节点类型包括开始节点、结束节点、执行节点和判断节点;
S13:构建结构化数据。
3.如权利要求1所述的生成可执行代码的方法,其特征在于,将所述结构化数据转换成可执行代码包括:
存在与所述文本内容对应的可执行程序时,构建所述文本内容与所述可执行程序的成对数据;
不存在与所述文本内容对应的可执行程序时,根据所述文本内容的自然语言生成可执行程序的代码。
4.如权利要求3所述的生成可执行代码的方法,其特征在于,存在与所述文本内容对应的可执行程序是依照规则生成或手动标注。
5.如权利要求3所述的生成可执行代码的方法,其特征在于,根据所述文本内容的自然语言生成可执行程序的代码包括如下步骤:
根据自然语言生成一系列构建抽象句法树的操作序列,所述抽象句法树是使用抽象句法描述语言表述的;
将所述构建抽象句法树转化为可执行程序的代码。
6.如权利要求5所述的生成可执行代码的方法,其特征在于,根据自然语言按照先序遍历的方式生成一系列构建抽象句法树的操作序列。
7.如权利要求1-6任一所述的生成可执行代码的方法,其特征在于,所述神经网络模型是seq2seq神经网络模型,包括编码器和解码器。
8.如权利要求7所述的生成可执行代码的方法,其特征在于,所述编码器用于输入所述文本内容,使用bi-LSTM结构,输入的向量特征为:
N=[c,n1,...,nn]
其中,c是表示节点类型的embedding;n1到nn是文本内容经过分词或直接以字符为单位的embedding表示;
经过双向的LSTM网络结构进行编码,输出结果用H表示,H两端的输出会拼接起来,输入到所述解码器中作为初始输入信息:
H=fbi-LSTM(N)
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1-9任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172236.9A CN111443904B (zh) | 2020-03-12 | 2020-03-12 | 一种生成可执行代码的方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172236.9A CN111443904B (zh) | 2020-03-12 | 2020-03-12 | 一种生成可执行代码的方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111443904A true CN111443904A (zh) | 2020-07-24 |
CN111443904B CN111443904B (zh) | 2023-04-07 |
Family
ID=71650565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010172236.9A Active CN111443904B (zh) | 2020-03-12 | 2020-03-12 | 一种生成可执行代码的方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111443904B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112002323A (zh) * | 2020-08-24 | 2020-11-27 | 平安科技(深圳)有限公司 | 语音数据处理方法、装置、计算机设备及存储介质 |
CN112162738A (zh) * | 2020-10-26 | 2021-01-01 | 广东粤港澳大湾区硬科技创新研究院 | 数据转化方法、装置、终端设备及存储介质 |
CN112488640A (zh) * | 2020-11-16 | 2021-03-12 | 中广核工程有限公司 | 一种核电厂虚拟操作员系统及操作方法 |
CN113157255A (zh) * | 2021-03-22 | 2021-07-23 | 成都淞幸科技有限责任公司 | 一种面向语法树解码器的代码生成方法 |
CN113312084A (zh) * | 2021-05-26 | 2021-08-27 | 合肥移瑞通信技术有限公司 | At框架代码自动生成方法、装置、电子设备及存储介质 |
CN113705816A (zh) * | 2021-08-31 | 2021-11-26 | 上海明略人工智能(集团)有限公司 | 流程图生成方法、电子装置、装置及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491658A (zh) * | 2017-09-11 | 2019-03-19 | 高德信息技术有限公司 | 计算机可执行代码数据的生成方法及装置 |
CN110489102A (zh) * | 2019-07-29 | 2019-11-22 | 东北大学 | 一种从自然语言自动生成Python代码的方法 |
-
2020
- 2020-03-12 CN CN202010172236.9A patent/CN111443904B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491658A (zh) * | 2017-09-11 | 2019-03-19 | 高德信息技术有限公司 | 计算机可执行代码数据的生成方法及装置 |
CN110489102A (zh) * | 2019-07-29 | 2019-11-22 | 东北大学 | 一种从自然语言自动生成Python代码的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112002323A (zh) * | 2020-08-24 | 2020-11-27 | 平安科技(深圳)有限公司 | 语音数据处理方法、装置、计算机设备及存储介质 |
CN112162738A (zh) * | 2020-10-26 | 2021-01-01 | 广东粤港澳大湾区硬科技创新研究院 | 数据转化方法、装置、终端设备及存储介质 |
CN112488640A (zh) * | 2020-11-16 | 2021-03-12 | 中广核工程有限公司 | 一种核电厂虚拟操作员系统及操作方法 |
CN113157255A (zh) * | 2021-03-22 | 2021-07-23 | 成都淞幸科技有限责任公司 | 一种面向语法树解码器的代码生成方法 |
CN113157255B (zh) * | 2021-03-22 | 2022-07-05 | 成都淞幸科技有限责任公司 | 一种面向语法树解码器的代码生成方法 |
CN113312084A (zh) * | 2021-05-26 | 2021-08-27 | 合肥移瑞通信技术有限公司 | At框架代码自动生成方法、装置、电子设备及存储介质 |
CN113705816A (zh) * | 2021-08-31 | 2021-11-26 | 上海明略人工智能(集团)有限公司 | 流程图生成方法、电子装置、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111443904B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111443904B (zh) | 一种生成可执行代码的方法及计算机可读存储介质 | |
US20220035728A1 (en) | System for discovering semantic relationships in computer programs | |
JPS6375835A (ja) | 目的コ−ド、プログラム・リスト及び設計文書を生成する装置 | |
US11308940B2 (en) | Counterfactual annotated dialogues for conversational computing | |
CN112434691A (zh) | 基于智能解析识别的hs编码匹配、展示方法、系统及存储介质 | |
US20220129450A1 (en) | System and method for transferable natural language interface | |
JP6201792B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN110502227A (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
US20220414463A1 (en) | Automated troubleshooter | |
US11537787B2 (en) | Template-based redesign of a document based on document content | |
CN110377910B (zh) | 一种表格描述的处理方法、装置、设备及存储介质 | |
CN117292146A (zh) | 一种面向工业场景的构建多模态大语言模型的方法、系统和应用方法 | |
WO2023134676A1 (en) | Method and system for automatically formulating optimization problem using machine learning | |
CN116360794A (zh) | 数据库语言解析方法、装置、计算机设备及存储介质 | |
CN116611449A (zh) | 异常日志解析方法、装置、设备及介质 | |
US11907656B2 (en) | Machine based expansion of contractions in text in digital media | |
CN114822726A (zh) | 构建方法、分析方法、装置、存储介质和计算机设备 | |
CN117290487B (zh) | 基于大语言模型的自动组卷方法、电子设备及存储介质 | |
US11669681B2 (en) | Automated calculation predictions with explanations | |
CN113033155B (zh) | 一种结合序列生成和层级词表的医学概念自动编码方法 | |
CN117909505B (zh) | 事件论元的抽取方法及相关设备 | |
CN117289905B (zh) | 一种应用软件开发方法和装置、存储介质和电子设备 | |
CN115759087B (zh) | 中文分词的方法、装置及电子设备 | |
CN115774558B (zh) | 一种测试案例自动扩展方法及装置 | |
US20230281392A1 (en) | Computer-readable recording medium storing computer program, machine learning method, and natural language processing apparatus |
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 |