CN114968325A - 代码注释的生成方法及装置、处理器和电子设备 - Google Patents

代码注释的生成方法及装置、处理器和电子设备 Download PDF

Info

Publication number
CN114968325A
CN114968325A CN202210609785.7A CN202210609785A CN114968325A CN 114968325 A CN114968325 A CN 114968325A CN 202210609785 A CN202210609785 A CN 202210609785A CN 114968325 A CN114968325 A CN 114968325A
Authority
CN
China
Prior art keywords
target
annotation
code
converting
sequence
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
CN202210609785.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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210609785.7A priority Critical patent/CN114968325A/zh
Publication of CN114968325A publication Critical patent/CN114968325A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

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

代码注释的生成方法及装置、处理器和电子设备
技术领域
本申请涉及人工智能领域,具体而言,涉及一种代码注释的生成方法及装置、处理器和电子设备。
背景技术
随着各行各业数字化转型的步伐,低代码平台已广泛得到社会的关注与运用。其中,部分低代码平台仍然采用了代码生成的方式,通过可视化开发、代码生成、部署运行等实现一个应用的全生命周期管理。但是随着软件项目的迭代,工程代码的复杂度也在不断提升,理解代码在整个软件开发过程与生产问题排查环节的重要性也日益提升。因此,提供高质量的代码注释是提高开发人员程序理解效率的关键,但是,低代码平台由于技术本身的特性,生成的代码往往都分布在各个模块中,导致无法有效添加合理的注释信息。虽然可以在部分固定的模板添加注释,但是无法添加与代码实现的功能和目的相关的描述。而且,如果手工为低代码应用的每个模块的每个组件添加注释则费时费力,并且难以保证代码注释的质量。因此,如何实现在低代码场景下自动生成代码注释是一个亟待解决的问题。
另外,相关技术中代码注释自动生成的方法主要分为三大类:基于模板的生成方法、基于信息检索的生成方法以及基于深度学习的生成方法。基于模板的生成方法与基于信息检索的生成方法使用场景相对单一,对代码数据的要求较高。而基于深度学习的生成方法主要是先将源码转换为抽象语法树AST,进而提取上下文信息与特征。并且,基于深度学习的生成方法通常是面向传统开发模式,虽然方法的逻辑能够合理地抽取上下文信息,并且能够与注释进行一一映射,但是低代码平台生成的代码与平台特性关联性较强,也可能分配在多个模块内,因此,将生成后的代码转换为抽象语法树成本较高。
针对相关技术中采用将源码转换为抽象语法树的方式对低代码平台中的代码进行注释,导致生成代码注释的成本较高的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种代码注释的生成方法及装置、处理器和电子设备,以解决相关技术中采用将源码转换为抽象语法树的方式对低代码平台中的代码进行注释,导致生成代码注释的成本较高的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种代码注释的生成方法。该方法包括:获取目标领域特定语言的目标注释,其中,所述目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;获取所述低代码平台中生成的代码;依据所述目标注释和所述低代码平台中生成的代码,生成所述代码的注释。
进一步地,在获取目标领域特定语言的目标注释之前,所述方法还包括:获取所述目标领域特定语言的目标特征向量;将所述目标特征向量输入目标循环神经网络,对所述目标领域特定语言进行注释,并得到所述目标注释,其中,所述目标循环神经网络为基于所述低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
进一步地,在获取所述目标领域特定语言的目标特征向量之前,所述方法还包括:基于结构的遍历方法,对所述目标领域特定语言进行遍历,得到遍历结果;依据所述遍历结果和所述遍历的顺序,将所述目标领域特定语言转换为节点序列和顺序序列;将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量;对所述第一词向量和所述第二词向量进行卷积处理,得到所述目标特征向量。
进一步地,将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量包括:获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示所述节点序列中的每个节点的属性信息,每个第二目标信息用于表示所述顺序序列中的每个顺序的属性信息;将所述多个第一目标信息转换为多个第三词向量,并将所述多个第二目标信息转换为多个第四词向量;依据所述多个第三词向量和所述节点序列的长度,得到所述第一词向量;依据所述多个第四词向量和所述顺序序列的长度,得到所述第二词向量。
进一步地,在将所述目标特征向量输入目标循环神经网络进行处理,得到所述目标注释之前,所述方法还包括:获取目标数据集;按照预设比例,将所述目标数据集划分为训练集、验证集和测试集;采用所述训练集对所述第一循环神经网络进行学习训练,得到训练结果;采用所述验证集对所述训练结果进行校验,得到预测结果;依据所述预测结果和实际的注释结果,确定第二循环神经网络,其中,所述实际的注释结果用于表示所述多个领域特定语言的实际注释;采用所述测试集对所述第二循环神经网络进行测试,得到所述目标循环神经网络。
进一步地,依据所述预测结果和实际的注释结果,确定第二循环神经网络包括:对所述预测结果和实际的注释结果进行计算,得到损失函数;依据所述损失函数,确定所述第二循环神经网络。
进一步地,在获取目标数据集之前,所述方法还包括:获取开源的代码注释语料库;依据所述多个领域特定语言和所述代码注释语料库,生成第一数据集;将所述第一数据集中的多个领域特定语言转换为多个第一特征向量,并将所述第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为所述第一数据集中的每个领域特定语言对应的注释;依据所述多个第一特征向量和所述多个第二特征向量,生成所述目标数据集。
进一步地,将所述第一数据集中的多个第一注释转换为多个第二特征向量包括:将所述每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;依据所述多个第一向量,得到所述每个第一注释的第三特征向量;按照第二注释的长度,对所述每个第一注释的第三特征向量进行处理,得到所述多个第二特征向量,其中,所述第二注释为所述多个第一注释中长度最长的注释。
为了实现上述目的,根据本申请的另一方面,提供了一种代码注释的生成装置。该装置包括:第一获取单元,用于获取目标领域特定语言的目标注释,其中,所述目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;第二获取单元,用于获取所述低代码平台中生成的代码;第一生成单元,用于依据所述目标注释和所述低代码平台中生成的代码,生成所述代码的注释。
进一步地,所述装置还包括:第三获取单元,用于在获取目标领域特定语言的目标注释之前,获取所述目标领域特定语言的目标特征向量;第一注释单元,用于将所述目标特征向量输入目标循环神经网络,对所述目标领域特定语言进行注释,并得到所述目标注释,其中,所述目标循环神经网络为基于所述低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
进一步地,所述装置还包括:第一遍历单元,用于在获取所述目标领域特定语言的目标特征向量之前,基于结构的遍历装置,对所述目标领域特定语言进行遍历,得到遍历结果;第一转换单元,用于依据所述遍历结果和所述遍历的顺序,将所述目标领域特定语言转换为节点序列和顺序序列;第二转换单元,用于将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量;第一处理单元,用于对所述第一词向量和所述第二词向量进行卷积处理,得到所述目标特征向量。
进一步地,所述第二转换单元包括:第一获取模块,用于获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示所述节点序列中的每个节点的属性信息,每个第二目标信息用于表示所述顺序序列中的每个顺序的属性信息;第一转换模块,用于将所述多个第一目标信息转换为多个第三词向量,并将所述多个第二目标信息转换为多个第四词向量;第一确定模块,用于依据所述多个第三词向量和所述节点序列的长度,得到所述第一词向量;第二确定模块,用于依据所述多个第四词向量和所述顺序序列的长度,得到所述第二词向量。
进一步地,所述装置还包括:第四获取单元,用于在将所述目标特征向量输入目标循环神经网络进行处理,得到所述目标注释之前,获取目标数据集;第一划分单元,用于按照预设比例,将所述目标数据集划分为训练集、验证集和测试集;第一训练单元,用于采用所述训练集对所述第一循环神经网络进行学习训练,得到训练结果;第一校验单元,用于采用所述验证集对所述训练结果进行校验,得到预测结果;第一确定单元,用于依据所述预测结果和实际的注释结果,确定第二循环神经网络,其中,所述实际的注释结果用于表示所述多个领域特定语言的实际注释;第二确定单元,用于采用所述测试集对所述第二循环神经网络进行测试,得到所述目标循环神经网络。
进一步地,所述第一确定单元包括:第一计算模块,用于对所述预测结果和实际的注释结果进行计算,得到损失函数;第三确定模块,用于依据所述损失函数,确定所述第二循环神经网络。
进一步地,所述装置还包括:第五获取单元,用于在获取目标数据集之前,获取开源的代码注释语料库;第二生成单元,用于依据所述多个领域特定语言和所述代码注释语料库,生成第一数据集;第三转换单元,用于将所述第一数据集中的多个领域特定语言转换为多个第一特征向量,并将所述第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为所述第一数据集中的每个领域特定语言对应的注释;第三生成单元,用于依据所述多个第一特征向量和所述多个第二特征向量,生成所述目标数据集。
进一步地,所述第三转换单元包括:第二转换模块,用于将所述每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;第四确定模块,用于依据所述多个第一向量,得到所述每个第一注释的第三特征向量;第一处理模块,用于按照第二注释的长度,对所述每个第一注释的第三特征向量进行处理,得到所述多个第二特征向量,其中,所述第二注释为所述多个第一注释中长度最长的注释。
为了实现上述目的,根据本申请的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的任意一项所述的代码注释的生成方法。
为了实现上述目的,根据本申请的另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的任意一项所述的代码注释的生成方法。
通过本申请,采用以下步骤:获取目标领域特定语言的目标注释,其中,目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;获取低代码平台中生成的代码;依据目标注释和低代码平台中生成的代码,生成代码的注释,解决了相关技术中采用将源码转换为抽象语法树的方式对低代码平台中的代码进行注释,导致生成代码注释的成本较高的问题。通过依据描述在低代码平台中进行可视化开发的逻辑的语言的注释和低代码平台中生成的代码,可以生成低代码平台中的代码的注释,从而可以降低在低代码平台中生成代码注释的成本。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的代码注释的生成方法的流程图;
图2是本申请实施例中的将非结构化的DSL语言上下文信息转换为结构化的特征向量的方法的流程图;
图3是本申请实施例中的低代码DSL与AST抽象语法树映射关系的示意图;
图4是本申请实施例中的低代码DSL结构化遍历的示意图;
图5是本申请实施例中的对结构化序列进行预处理的示意图;
图6是本申请实施例中的低代码平台代码注释自动生成系统的示意图;
图7是根据本申请实施例提供的代码注释的生成装置的示意图;
图8是根据本申请实施例提供的电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
DSL:领域特定语言,Domain Specific Language,通常指为了解决某一任务而专门涉及的计算机语言,在低代码场景下用于描述可视化开发的内容。
AST:抽象语法树,Abstract SyntaxTree,通常指的是源代码的抽象语法结构的树状表现形式。
SBT:基于结构的遍历,Structure-based Traversal,一种AST遍历方法。
CNN:卷积神经网络,Convolutional Neural Network,基础的深度学习算法。
LSTM:长短期记忆模型,Long Short-TermMemory,一种特殊的循环神经网络。
下面结合优选的实施步骤对本发明进行说明,图1是根据本申请实施例提供的代码注释的生成方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,获取目标领域特定语言的目标注释,其中,目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑。
例如,上述的目标领域特定语言可以为在低代码场景下描述可视化开发的逻辑内容的语言。上述的目标注释可以为在低代码场景下描述可视化开发的逻辑内容的语言的注释。
步骤S102,获取低代码平台中生成的代码。
例如,低代码平台在可视化开发完成之后进行代码生成,并获取最终生成的代码。
步骤S103,依据目标注释和低代码平台中生成的代码,生成代码的注释。
在本实施例中,可以依据在低代码场景下描述可视化开发的逻辑内容的语言的注释,在最终生成的代码上通过标准doc的注释方式填入注释结果。
通过上述的步骤S101至S103,通过依据描述在低代码平台中进行可视化开发的逻辑的语言的注释和低代码平台中生成的代码,可以生成低代码平台中的代码的注释,从而可以降低在低代码平台中生成代码注释的成本。
为了在低代码平台中生成代码注释,如何得到在低代码场景下描述可视化开发的逻辑内容的语言的注释也是关键点之一,在本申请实施例提供的代码注释的生成方法中,对如何得到在低代码场景下描述可视化开发的逻辑内容的语言的注释进行了进一步限定,在获取目标领域特定语言的目标注释之前,得到在低代码场景下描述可视化开发的逻辑内容的语言的注释可以采用以下技术特征实现:获取目标领域特定语言的目标特征向量;将目标特征向量输入目标循环神经网络,对目标领域特定语言进行注释,并得到目标注释,其中,目标循环神经网络为基于低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
例如,上述的目标特征向量可以为在低代码场景下描述可视化开发的逻辑内容的语言的特征向量,上述的目标循环神经网络可以为最终训练好的LSTM模型。将该特征向量输入到最终训练好的LSTM模型中,然后得到在低代码场景下描述可视化开发的逻辑内容的语言的注释。另外,通过根据低代码平台中的多个领域特定语言,对原始的LSTM模型进行训练,可以得到最终训练好的LSTM模型。
通过上述的方案,可以直接复用低代码平台领域特定语言DSL来实现代码注释自动生成,无需在低代码平台完成全量代码生成后再进行代码注释的生成,从而可以充分使用低代码DSL语言的语义特征与上下文特征,进而可以提高代码注释自动生成的效率与准确性,降低在低代码平台中生成代码注释的成本。
为了快速准确的得到DSL语言的特征向量,在本申请实施例提供的代码注释的生成方法中,在获取目标领域特定语言的目标特征向量之前,还可以通过以下步骤得到DSL语言的特征向量:基于结构的遍历方法,对目标领域特定语言进行遍历,得到遍历结果;依据遍历结果和遍历的顺序,将目标领域特定语言转换为节点序列和顺序序列;将节点序列转换为第一词向量,并将顺序序列转换为第二词向量;对第一词向量和第二词向量进行卷积处理,得到目标特征向量。
例如,图2是本申请实施例中的将非结构化的DSL语言上下文信息转换为结构化的特征向量的方法的流程图,如图2所示,将非结构化的DSL语言上下文信息转换为结构化的特征向量的方法包括如下步骤:
S11,建立高级语言抽象语法树与低代码领域语言的关系映射;
S12,DSL结构化遍历;
S13,数据预处理;
S14,提取特征向量。
下面分别对S11~S14进行说明:
例如,通过步骤S11,建立高级语言抽象语法树与低代码领域语言的关系映射,可以验证基于低代码可视化编辑的DSL,也可以达到利用高级编程语言导出的AST实现的效果。具体为,如图3所示,可以将低代码逻辑的逻辑定义、返回值、参数、主体部分,分别与AST相关模块定义。另外,一般代码编译器的作用是将某种编程语言写成的源代码(原始代码)转换为另一种编程语言(目标语言)。且低代码平台最终实现也是将DSL语言转换为目标语言,所以本质上高级编程语言导出的AST与低代码可视化编辑的DSL都能够描述代码的行为。
例如,在步骤S12,DSL结构化遍历时,如图4所示,对于低代码可视化搭建的逻辑所对应的DSL语言,采用基于结构的遍历方法SBT进行遍历,得到遍历结果,并保留遍历顺序,然后将描述低代码逻辑的DSL语言转换为一个节点序列和一个顺序序列。
然后通过步骤S13,数据预处理,分别将步骤S12得到的节点序列和顺序序列转换为词向量。
最后通过步骤S14,提取特征向量,对步骤S13得到的节点序列的词向量和顺序序列的词向量进行卷积处理,最终得到DSL语言的特征向量。
综上所述,通过对DSL语言进行遍历,可以将DSL语言转换为序列,再将序列转换为词向量,最终通过对词向量进行处理,可以快速准确的得到DSL语言的特征向量。
为了快速准确的得到第一词向量和第二词向量,在本申请实施例提供的代码注释的生成方法中,还可以通过以下步骤得到第一词向量和第二词向量:获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示节点序列中的每个节点的属性信息,每个第二目标信息用于表示顺序序列中的每个顺序的属性信息;将多个第一目标信息转换为多个第三词向量,并将多个第二目标信息转换为多个第四词向量;依据多个第三词向量和节点序列的长度,得到第一词向量;依据多个第四词向量和顺序序列的长度,得到第二词向量。
例如,低代码的DSL节点中的关键信息可以包含等级level、标识name、类型type、符号operation以及值value等信息。图5是本申请实施例中的对结构化序列进行预处理的示意图,如图5所示,先从DSL节点中抽取上述的关键信息,然后可以通过词向量模型将这些关键信息转换为词向量。这样,对于一个长度为n的节点序列,能够得到一个k×n的词向量。同理,将顺序序列也转换为一个k×n的词向量。
然后在步骤S14,提取特征向量时,由于节点序列词向量与顺序序列词向量属于关联向量,节点序列保留了DSL语言的语义信息,顺序序列保留了DSL语言的上下文顺序,故使用CNN网络将两个序列的词向量整合成一个特征向量:
X=[X1,X2,...,Xn]
其中,向量的每个元素计算公式为:
Figure BDA0003672703070000091
其中,W表示卷积神经网络的权重向量;
Figure BDA0003672703070000092
表示节点序列第i个元素的词向量;
Figure BDA0003672703070000093
表示顺序序列第i个元素的词向量;ReLU表示非线性激活函数。最终DSL语言转换的特征向量的维度为2k×n。
综上所述,通过抽取节点的关键信息,可以构造结构化的输入序列,从而可以为后续训练循环神经网络做铺垫。
为了快速准确的生成目标数据集,在本申请实施例提供的代码注释的生成方法中,在获取目标数据集之前,还可以通过以下步骤生成目标数据集:获取开源的代码注释语料库;依据多个领域特定语言和代码注释语料库,生成第一数据集;将第一数据集中的多个领域特定语言转换为多个第一特征向量,并将第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为第一数据集中的每个领域特定语言对应的注释;依据多个第一特征向量和多个第二特征向量,生成目标数据集。
例如,上述的第一数据集可以为根据开源的代码注释语料库,在低代码平台通过可视化的方式搭建各种代码逻辑,制作的低代码DSL-注释数据集。然后分别将DSL-注释数据集中的DSL和DSL对应的注释转换为特征向量,再由DSL的特征向量和DSL对应的注释的特征向量组成上述的目标数据集。
通过上述的方案,可以快速的构建具有DSL的特征向量和DSL对应的注释的特征向量的数据集。
为了快速准确的得到DSL语言对应的注释的特征向量,在本申请实施例提供的代码注释的生成方法中,还可以通过以下步骤得到DSL语言对应的注释的特征向量:将每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;依据多个第一向量,得到每个第一注释的第三特征向量;按照第二注释的长度,对每个第一注释的第三特征向量进行处理,得到多个第二特征向量,其中,第二注释为多个第一注释中长度最长的注释。
例如,可以利用word2vec模型(word to vector,一种将单词转换成向量形式的工具),将DSL对应的注释的每个单词都转换为一个固定长度的向量,然后将多个固定长度的向量进行组合,得到DSL对应的注释的原始特征向量,但是,由于不同的注释中包含的单词个数不同,为了保证注释变换后的向量长度相等,最后可以按照最大长度,采用补0的方式对DSL对应的注释的原始特征向量进行处理,并得到DSL对应的注释的最终特征向量。
通过上述的方案,可以快速准确的将DSL对应的注释转换为特征向量。
为了快速准确的构建目标循环神经网络,在本申请实施例提供的代码注释的生成方法中,在将目标特征向量输入目标循环神经网络进行处理,得到目标注释之前,还可以通过以下步骤构建目标循环神经网络:获取目标数据集;按照预设比例,将目标数据集划分为训练集、验证集和测试集;采用训练集对第一循环神经网络进行学习训练,得到训练结果;采用验证集对训练结果进行校验,得到预测结果;依据预测结果和实际的注释结果,确定第二循环神经网络,其中,实际的注释结果用于表示多个领域特定语言的实际注释;采用测试集对第二循环神经网络进行测试,得到目标循环神经网络。
例如,使用上述得到的目标数据集进行模型训练的具体步骤如下:
步骤S21:数据集划分,将数据集划分为三份,训练集、验证集与测试集,且比例为2:1:2;
步骤S22:使用步骤S21得到的训练集,通过LSTM网络进行训练,并在每个训练周期结束都使用验证集进行结果校验;
步骤S23:根据训练过程中真实的代码注释结果与预测结果,得到一个经过训练的LSTM参数模型;
步骤S24:利用测试集对步骤S23得到的LSTM参数模型进行测试,并得到最终训练好的LSTM参数模型。
通过上述的方案,可以对循环神经网络进行训练,从而可以提升循环神经网络的准确性。
为了快速准确的构建第二循环神经网络,在本申请实施例提供的代码注释的生成方法中,还可以通过以下步骤构建第二循环神经网络:对预测结果和实际的注释结果进行计算,得到损失函数;依据损失函数,确定第二循环神经网络。
例如,当训练过程中真实的代码注释结果与预测结果的计算得到的损失函数趋于稳定时,结束训练,并得到上述步骤S23中的LSTM参数模型。
通过上述的方案,依据预测的DSL的注释结果和DSL实际的注释结果可以得到一个较为准确的循环神经网络。
例如,使用步骤S24得到的深度学习参数模型,可以构建完整的低代码平台代码注释自动生成系统,且系统的基础架构如图6所示。具体为,低代码平台在可视化开发完成之后进行代码生成,并首先经过对DSL进行结构化遍历,然后得到完整的节点序列与顺序序列,再将节点序列和顺序序列转换后为特征向量,并将特征向量输入步骤S24得到的LSTM模型,得到代码注释结果。最终,将代码注释结果返回给代码生成服务,在最终生成的代码方法上通过标准doc的注释方式填入注释结果。另外,图6中的“IDE”指“IntegratedDevelopment Environment,集成开发环境”,“PAAS”指“Platform as a Service,平台即服务”,“IAAS”指“Infrastructure as a Service,基础设施即服务”。
综上,本申请实施例提供的代码注释的生成方法,通过获取目标领域特定语言的目标注释,其中,目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;获取低代码平台中生成的代码;依据目标注释和低代码平台中生成的代码,生成代码的注释,解决了相关技术中采用将源码转换为抽象语法树的方式对低代码平台中的代码进行注释,导致生成代码注释的成本较高的问题。通过依据描述在低代码平台中进行可视化开发的逻辑的语言的注释和低代码平台中生成的代码,可以生成低代码平台中的代码的注释,从而可以降低在低代码平台中生成代码注释的成本。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种代码注释的生成装置,需要说明的是,本申请实施例的代码注释的生成装置可以用于执行本申请实施例所提供的用于代码注释的生成方法。以下对本申请实施例提供的代码注释的生成装置进行介绍。
图7是根据本申请实施例的代码注释的生成装置的示意图。如图7所示,该装置包括:第一获取单元701、第二获取单元702和第一生成单元703。
具体地,第一获取单元701,用于获取目标领域特定语言的目标注释,其中,目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;
第二获取单元702,用于获取低代码平台中生成的代码;
第一生成单元703,用于依据目标注释和低代码平台中生成的代码,生成代码的注释。
综上,本申请实施例提供的代码注释的生成装置,通过第一获取单元701获取目标领域特定语言的目标注释,其中,目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;第二获取单元702获取低代码平台中生成的代码;第一生成单元703依据目标注释和低代码平台中生成的代码,生成代码的注释,解决了相关技术中采用将源码转换为抽象语法树的方式对低代码平台中的代码进行注释,导致生成代码注释的成本较高的问题,通过依据描述在低代码平台中进行可视化开发的逻辑的语言的注释和低代码平台中生成的代码,可以生成低代码平台中的代码的注释,从而可以降低在低代码平台中生成代码注释的成本。
可选地,在本申请实施例提供的代码注释的生成装置中,该装置还包括:第三获取单元,用于在获取目标领域特定语言的目标注释之前,获取目标领域特定语言的目标特征向量;第一注释单元,用于将目标特征向量输入目标循环神经网络,对目标领域特定语言进行注释,并得到目标注释,其中,目标循环神经网络为基于低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
可选地,在本申请实施例提供的代码注释的生成装置中,该装置还包括:第一遍历单元,用于在获取目标领域特定语言的目标特征向量之前,基于结构的遍历装置,对目标领域特定语言进行遍历,得到遍历结果;第一转换单元,用于依据遍历结果和遍历的顺序,将目标领域特定语言转换为节点序列和顺序序列;第二转换单元,用于将节点序列转换为第一词向量,并将顺序序列转换为第二词向量;第一处理单元,用于对第一词向量和第二词向量进行卷积处理,得到目标特征向量。
可选地,在本申请实施例提供的代码注释的生成装置中,第二转换单元包括:第一获取模块,用于获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示节点序列中的每个节点的属性信息,每个第二目标信息用于表示顺序序列中的每个顺序的属性信息;第一转换模块,用于将多个第一目标信息转换为多个第三词向量,并将多个第二目标信息转换为多个第四词向量;第一确定模块,用于依据多个第三词向量和节点序列的长度,得到第一词向量;第二确定模块,用于依据多个第四词向量和顺序序列的长度,得到第二词向量。
可选地,在本申请实施例提供的代码注释的生成装置中,该装置还包括:第四获取单元,用于在将目标特征向量输入目标循环神经网络进行处理,得到目标注释之前,获取目标数据集;第一划分单元,用于按照预设比例,将目标数据集划分为训练集、验证集和测试集;第一训练单元,用于采用训练集对第一循环神经网络进行学习训练,得到训练结果;第一校验单元,用于采用验证集对训练结果进行校验,得到预测结果;第一确定单元,用于依据预测结果和实际的注释结果,确定第二循环神经网络,其中,实际的注释结果用于表示多个领域特定语言的实际注释;第二确定单元,用于采用测试集对第二循环神经网络进行测试,得到目标循环神经网络。
可选地,在本申请实施例提供的代码注释的生成装置中,第一确定单元包括:第一计算模块,用于对预测结果和实际的注释结果进行计算,得到损失函数;第三确定模块,用于依据损失函数,确定第二循环神经网络。
可选地,在本申请实施例提供的代码注释的生成装置中,该装置还包括:第五获取单元,用于在获取目标数据集之前,获取开源的代码注释语料库;第二生成单元,用于依据多个领域特定语言和代码注释语料库,生成第一数据集;第三转换单元,用于将第一数据集中的多个领域特定语言转换为多个第一特征向量,并将第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为第一数据集中的每个领域特定语言对应的注释;第三生成单元,用于依据多个第一特征向量和多个第二特征向量,生成目标数据集。
可选地,在本申请实施例提供的代码注释的生成装置中,第三转换单元包括:第二转换模块,用于将每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;第四确定模块,用于依据多个第一向量,得到每个第一注释的第三特征向量;第一处理模块,用于按照第二注释的长度,对每个第一注释的第三特征向量进行处理,得到多个第二特征向量,其中,第二注释为多个第一注释中长度最长的注释。
所述代码注释的生成装置包括处理器和存储器,上述第一获取单元701、第二获取单元702和第一生成单元703等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来降低在低代码平台中生成代码注释的成本。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述代码注释的生成方法。
如图8所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取目标领域特定语言的目标注释,其中,所述目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;获取所述低代码平台中生成的代码;依据所述目标注释和所述低代码平台中生成的代码,生成所述代码的注释。
处理器执行程序时还实现以下步骤:在获取目标领域特定语言的目标注释之前,所述方法还包括:获取所述目标领域特定语言的目标特征向量;将所述目标特征向量输入目标循环神经网络,对所述目标领域特定语言进行注释,并得到所述目标注释,其中,所述目标循环神经网络为基于所述低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
处理器执行程序时还实现以下步骤:在获取所述目标领域特定语言的目标特征向量之前,所述方法还包括:基于结构的遍历方法,对所述目标领域特定语言进行遍历,得到遍历结果;依据所述遍历结果和所述遍历的顺序,将所述目标领域特定语言转换为节点序列和顺序序列;将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量;对所述第一词向量和所述第二词向量进行卷积处理,得到所述目标特征向量。
处理器执行程序时还实现以下步骤:将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量包括:获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示所述节点序列中的每个节点的属性信息,每个第二目标信息用于表示所述顺序序列中的每个顺序的属性信息;将所述多个第一目标信息转换为多个第三词向量,并将所述多个第二目标信息转换为多个第四词向量;依据所述多个第三词向量和所述节点序列的长度,得到所述第一词向量;依据所述多个第四词向量和所述顺序序列的长度,得到所述第二词向量。
处理器执行程序时还实现以下步骤:在将所述目标特征向量输入目标循环神经网络进行处理,得到所述目标注释之前,所述方法还包括:获取目标数据集;按照预设比例,将所述目标数据集划分为训练集、验证集和测试集;采用所述训练集对所述第一循环神经网络进行学习训练,得到训练结果;采用所述验证集对所述训练结果进行校验,得到预测结果;依据所述预测结果和实际的注释结果,确定第二循环神经网络,其中,所述实际的注释结果用于表示所述多个领域特定语言的实际注释;采用所述测试集对所述第二循环神经网络进行测试,得到所述目标循环神经网络。
处理器执行程序时还实现以下步骤:依据所述预测结果和实际的注释结果,确定第二循环神经网络包括:对所述预测结果和实际的注释结果进行计算,得到损失函数;依据所述损失函数,确定所述第二循环神经网络。
处理器执行程序时还实现以下步骤:在获取目标数据集之前,所述方法还包括:获取开源的代码注释语料库;依据所述多个领域特定语言和所述代码注释语料库,生成第一数据集;将所述第一数据集中的多个领域特定语言转换为多个第一特征向量,并将所述第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为所述第一数据集中的每个领域特定语言对应的注释;依据所述多个第一特征向量和所述多个第二特征向量,生成所述目标数据集。
处理器执行程序时还实现以下步骤:将所述第一数据集中的多个第一注释转换为多个第二特征向量包括:将所述每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;依据所述多个第一向量,得到所述每个第一注释的第三特征向量;按照第二注释的长度,对所述每个第一注释的第三特征向量进行处理,得到所述多个第二特征向量,其中,所述第二注释为所述多个第一注释中长度最长的注释。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取目标领域特定语言的目标注释,其中,所述目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;获取所述低代码平台中生成的代码;依据所述目标注释和所述低代码平台中生成的代码,生成所述代码的注释。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:获取所述目标领域特定语言的目标特征向量;将所述目标特征向量输入目标循环神经网络,对所述目标领域特定语言进行注释,并得到所述目标注释,其中,所述目标循环神经网络为基于所述低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在获取所述目标领域特定语言的目标特征向量之前,所述方法还包括:基于结构的遍历方法,对所述目标领域特定语言进行遍历,得到遍历结果;依据所述遍历结果和所述遍历的顺序,将所述目标领域特定语言转换为节点序列和顺序序列;将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量;对所述第一词向量和所述第二词向量进行卷积处理,得到所述目标特征向量。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量包括:获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示所述节点序列中的每个节点的属性信息,每个第二目标信息用于表示所述顺序序列中的每个顺序的属性信息;将所述多个第一目标信息转换为多个第三词向量,并将所述多个第二目标信息转换为多个第四词向量;依据所述多个第三词向量和所述节点序列的长度,得到所述第一词向量;依据所述多个第四词向量和所述顺序序列的长度,得到所述第二词向量。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在将所述目标特征向量输入目标循环神经网络进行处理,得到所述目标注释之前,所述方法还包括:获取目标数据集;按照预设比例,将所述目标数据集划分为训练集、验证集和测试集;采用所述训练集对所述第一循环神经网络进行学习训练,得到训练结果;采用所述验证集对所述训练结果进行校验,得到预测结果;依据所述预测结果和实际的注释结果,确定第二循环神经网络,其中,所述实际的注释结果用于表示所述多个领域特定语言的实际注释;采用所述测试集对所述第二循环神经网络进行测试,得到所述目标循环神经网络。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据所述预测结果和实际的注释结果,确定第二循环神经网络包括:对所述预测结果和实际的注释结果进行计算,得到损失函数;依据所述损失函数,确定所述第二循环神经网络。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在获取目标数据集之前,所述方法还包括:获取开源的代码注释语料库;依据所述多个领域特定语言和所述代码注释语料库,生成第一数据集;将所述第一数据集中的多个领域特定语言转换为多个第一特征向量,并将所述第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为所述第一数据集中的每个领域特定语言对应的注释;依据所述多个第一特征向量和所述多个第二特征向量,生成所述目标数据集。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:将所述第一数据集中的多个第一注释转换为多个第二特征向量包括:将所述每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;依据所述多个第一向量,得到所述每个第一注释的第三特征向量;按照第二注释的长度,对所述每个第一注释的第三特征向量进行处理,得到所述多个第二特征向量,其中,所述第二注释为所述多个第一注释中长度最长的注释。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/得到接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种代码注释的生成方法,其特征在于,包括:
获取目标领域特定语言的目标注释,其中,所述目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;
获取所述低代码平台中生成的代码;
依据所述目标注释和所述低代码平台中生成的代码,生成所述代码的注释。
2.根据权利要求1所述的方法,其特征在于,在获取目标领域特定语言的目标注释之前,所述方法还包括:
获取所述目标领域特定语言的目标特征向量;
将所述目标特征向量输入目标循环神经网络,对所述目标领域特定语言进行注释,并得到所述目标注释,其中,所述目标循环神经网络为基于所述低代码平台中的多个领域特定语言和第一循环神经网络构建的网络。
3.根据权利要求2所述的方法,其特征在于,在获取所述目标领域特定语言的目标特征向量之前,所述方法还包括:
基于结构的遍历方法,对所述目标领域特定语言进行遍历,得到遍历结果;
依据所述遍历结果和所述遍历的顺序,将所述目标领域特定语言转换为节点序列和顺序序列;
将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量;
对所述第一词向量和所述第二词向量进行卷积处理,得到所述目标特征向量。
4.根据权利要求3所述的方法,其特征在于,将所述节点序列转换为第一词向量,并将所述顺序序列转换为第二词向量包括:
获取多个第一目标信息和多个第二目标信息,其中,每个第一目标信息用于表示所述节点序列中的每个节点的属性信息,每个第二目标信息用于表示所述顺序序列中的每个顺序的属性信息;
将所述多个第一目标信息转换为多个第三词向量,并将所述多个第二目标信息转换为多个第四词向量;
依据所述多个第三词向量和所述节点序列的长度,得到所述第一词向量;
依据所述多个第四词向量和所述顺序序列的长度,得到所述第二词向量。
5.根据权利要求2所述的方法,其特征在于,在将所述目标特征向量输入目标循环神经网络进行处理,得到所述目标注释之前,所述方法还包括:
获取目标数据集;
按照预设比例,将所述目标数据集划分为训练集、验证集和测试集;
采用所述训练集对所述第一循环神经网络进行学习训练,得到训练结果;
采用所述验证集对所述训练结果进行校验,得到预测结果;
依据所述预测结果和实际的注释结果,确定第二循环神经网络,其中,所述实际的注释结果用于表示所述多个领域特定语言的实际注释;
采用所述测试集对所述第二循环神经网络进行测试,得到所述目标循环神经网络。
6.根据权利要求5所述的方法,其特征在于,依据所述预测结果和实际的注释结果,确定第二循环神经网络包括:
对所述预测结果和实际的注释结果进行计算,得到损失函数;
依据所述损失函数,确定所述第二循环神经网络。
7.根据权利要求5所述的方法,其特征在于,在获取目标数据集之前,所述方法还包括:
获取开源的代码注释语料库;
依据所述多个领域特定语言和所述代码注释语料库,生成第一数据集;
将所述第一数据集中的多个领域特定语言转换为多个第一特征向量,并将所述第一数据集中的多个第一注释转换为多个第二特征向量,其中,每个第一注释为所述第一数据集中的每个领域特定语言对应的注释;
依据所述多个第一特征向量和所述多个第二特征向量,生成所述目标数据集。
8.根据权利要求7所述的方法,其特征在于,将所述第一数据集中的多个第一注释转换为多个第二特征向量包括:
将所述每个第一注释中的每个单词转换为目标长度的向量,得到多个第一向量;
依据所述多个第一向量,得到所述每个第一注释的第三特征向量;
按照第二注释的长度,对所述每个第一注释的第三特征向量进行处理,得到所述多个第二特征向量,其中,所述第二注释为所述多个第一注释中长度最长的注释。
9.一种代码注释的生成装置,其特征在于,包括:
第一获取单元,用于获取目标领域特定语言的目标注释,其中,所述目标领域特定语言用于描述在低代码平台中进行可视化开发的逻辑;
第二获取单元,用于获取所述低代码平台中生成的代码;
第一生成单元,用于依据所述目标注释和所述低代码平台中生成的代码,生成所述代码的注释。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的代码注释的生成方法。
11.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的代码注释的生成方法。
CN202210609785.7A 2022-05-31 2022-05-31 代码注释的生成方法及装置、处理器和电子设备 Pending CN114968325A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210609785.7A CN114968325A (zh) 2022-05-31 2022-05-31 代码注释的生成方法及装置、处理器和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210609785.7A CN114968325A (zh) 2022-05-31 2022-05-31 代码注释的生成方法及装置、处理器和电子设备

Publications (1)

Publication Number Publication Date
CN114968325A true CN114968325A (zh) 2022-08-30

Family

ID=82957591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210609785.7A Pending CN114968325A (zh) 2022-05-31 2022-05-31 代码注释的生成方法及装置、处理器和电子设备

Country Status (1)

Country Link
CN (1) CN114968325A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230098939A1 (en) * 2021-09-29 2023-03-30 Jpmorgan Chase Bank, N.A. Method and system for automatic assignment of code topics

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230098939A1 (en) * 2021-09-29 2023-03-30 Jpmorgan Chase Bank, N.A. Method and system for automatic assignment of code topics
US11782700B2 (en) * 2021-09-29 2023-10-10 Jpmorgan Chase Bank, N.A. Method and system for automatic assignment of code topics

Similar Documents

Publication Publication Date Title
CN111708539B (zh) 一种应用程序代码转换方法、装置、电子设备和存储介质
EP2518620A1 (en) Methods for code generation from semantic models and rules
CN113342842A (zh) 基于计量知识的语义查询方法、装置和计算机设备
US9183501B2 (en) Upper merged ontology for it architecture
US11269760B2 (en) Systems and methods for automated testing using artificial intelligence techniques
US11816456B2 (en) Notebook for navigating code using machine learning and flow analysis
US11526679B2 (en) Efficient transformer language models with disentangled attention and multi-step decoding
US20230177363A1 (en) Generation of query templates for knowledge-graph based question answering system
US11327722B1 (en) Programming language corpus generation
CN115509514B (zh) 一种前端数据模拟方法、装置、设备及介质
CN113849162A (zh) 一种利用模型驱动和深度神经网络相结合的代码生成方法
US11573790B2 (en) Generation of knowledge graphs based on repositories of code
CN115952298A (zh) 供应商履约风险分析方法及相关设备
CN114968325A (zh) 代码注释的生成方法及装置、处理器和电子设备
Murtazina et al. The ontology-driven approach to intelligent support of requirements engineering in agile software development
CN117473054A (zh) 基于知识图谱的通用智能问答方法及装置
CN116974554A (zh) 代码数据处理方法、装置、计算机设备和存储介质
Wang et al. Go-clone: graph-embedding based clone detector for Golang
Al-Obeidallah et al. A structural rule-based approach for design patterns recovery
CN115048083A (zh) 组件的可视化方法、装置、存储介质及电子设备
Al-Azzoni et al. On persisting EMF data using blockchains
CN116383883B (zh) 一种基于大数据的数据管理权限处理方法及系统
CN112015426A (zh) 一种代码管理方法、装置及设备
Esteves et al. Mex interfaces: Automating machine learning metadata generation
CN108255802B (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