CN111090461B - 一种基于机器翻译模型的代码注释生成方法 - Google Patents

一种基于机器翻译模型的代码注释生成方法 Download PDF

Info

Publication number
CN111090461B
CN111090461B CN201911133186.7A CN201911133186A CN111090461B CN 111090461 B CN111090461 B CN 111090461B CN 201911133186 A CN201911133186 A CN 201911133186A CN 111090461 B CN111090461 B CN 111090461B
Authority
CN
China
Prior art keywords
sequence
code
machine translation
source code
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.)
Active
Application number
CN201911133186.7A
Other languages
English (en)
Other versions
CN111090461A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201911133186.7A priority Critical patent/CN111090461B/zh
Publication of CN111090461A publication Critical patent/CN111090461A/zh
Application granted granted Critical
Publication of CN111090461B publication Critical patent/CN111090461B/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/70Software maintenance or management
    • G06F8/73Program documentation
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Library & Information Science (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开一种基于机器翻译模型的代码注释生成方法,将所获取含注释的代码语料库划分为源代码方法序列语料库和对应的源代码注释语料库;将源代码注释语料库中源代码注释作输入seq2seq模型;提取源代码方法序列生成抽象语法树,将节点的标识符替换为节点类别且结构化遍历得到保留结构信息的序列输入seq2seq模型;将结构信息输入编码层生成隐含状态序列和结构信息的编码输出并输入注意力机制层,根据隐含状态序列和结构信息的编码输出之间匹配程度计算上下文向量;将结构信息的编码输出和上下文向量输入解码层,并计算训练样本目标的序列概率分布;由源代码注释和序列概率分布生成基于序列机器翻译模型。

Description

一种基于机器翻译模型的代码注释生成方法
技术领域
本发明涉及软件开发领域,尤其涉及一种基于机器翻译模型的代码注释生成方法。
背景技术
随着互联网时代不断发展,其涉及领域逐渐繁多,应用于之上的各类平台软件体系愈加庞大,给后期软件维护人员的维护工作增加了纷繁复杂的困难。在软件工程中,阅读代码是一项基本任务,而通常来说,软件维护人员通常不是原始开发人员,且人员流动导致开发人员不得不接管不熟悉的软件代码,同时在代码审查中也需要处理大量不熟悉的源代码。另有研究表明,在企业大型应用开发中,开发人员阅读代码的时间往往比编写代码所需的时间更多。这时,代码注释可以在此问题上提供帮助。
在源代码中,编写完整的代码注释可以大大提高代码的可读性;阅读代码注释可以使人更快理解代码,节省理解代码的时间,大大提高工作效率。但同时,编写良好注释的习惯由于既繁琐又耗时往往被程序人员所忽视。自动化生成代码注释的方法亟需提上日程。
近年来,机器学习和深度学习的广泛应用,给了自动化方法生成代码注释带来新的挑战和机遇,成为一个可以解决自动生成代码注释问题的良好契机。本文即研究使用自然语言处理领域的机器翻译模型训练源代码特征来生成代码注释的方法。
早期的代码注释生成方式很大程度上依赖相关人员工作技能经验的先验知识,直接阅读代码进行静态分析或者考虑程序运行过程中输入输出关系等来进行动态分析标注。但随着程序规模的逐渐庞大,传统方式依赖人力即耗时又费力且效率低下。研究使用深度学习方式自动生成代码注释,将源代码内容的特征数据进行训练提取代码特征,可以自动化充分挖掘代码隐含语义,提高程序理解的效率。
目前代码注释生成方法主要有两种思路。
一种是使用IR方法为类和方法生成注释,常见的模型由空间模型(VSM)和潜在语义索引(LSI),以从类似的代码片段中搜索注释。这种方法的限制在于当变量标识符和方法名称命名不当时,很难从中提取准确的关键字,并且他们比较依赖于代码库中相似代码片段的相似程度。
另外一种方式是将问题抽象为自然语言处理领域中的机器翻译问题,使用解决机器翻译问题的方法来生成相关学习模型。使用的模型一般是处理序列问题的深度学习模型,从开始的循环神经网络(recurrent neural network,RNN)和长短时记忆网络(longshort term memory,LSTM),增加注意力(attention)机制,到后来使用序列到序列(Seq2seq)模型。通过对模型使用大量数据集训练构建大规模源代码的概率模型,不同于IR方式使用关键词合成注释,此种方法直接从代码中自动提取丰富特征生成相应代码注释。
RNN通过增加隐藏层中结点连接引入循环机制处理序列相关问题,适用于处理较长序列情形。基于RNN及其变体LSTM可用于对程序语言建模以获得代码序列的特征向量表示。注意力转移机制使得神经网络在生成当前输出时动态关注输入中与其更加相关的内容,在输入较长的情况下也能减轻对于长序列的记忆负担,有效提高模型性能。Seq2seq模型用于对输入输出序列进行映射建模,它包含解码器和编码器,编码器将输入序列转化为特征向量,解码器则根据该向量生成输出序列。
这两种思路与自然语言处理相反,代码注释的生成使用代码片段来生成注释,而使用编程语言进行编写的源代码是具有明确的结构,现有的方法中并未利用到丰富的结构信息提高模型的精准度。其次,由于代码中含有许多变量名称,所建立的词典将十分庞大,例如在数据集中有790000个唯一标识符,如果使用常见的训练维度30000,将有95%以上的词汇视为未知,根据研究表明,这是不合理的。
发明内容
本发明为克服上述现有技术所述的至少一种缺陷(不足),提供一种基于机器翻译模型的代码注释生成方法。
本发明旨在至少在一定程度上解决上述技术问题。
为了达到上述技术效果,本发明的技术方案如下:
一种基于机器翻译模型的代码注释生成方法,包括:
S10获取含注释的代码语料,提取代码语料中的高频词构建词典,将代码语料库划分为源代码方法序列语料库和对应的源代码注释语料库;
S20提取源代码注释语料库中源代码注释作为训练样本目标Y输入seq2seq模型;
S30提取源代码方法序列生成抽象语法树,将节点的标识符替换为节点的type类别且结构化遍历得到保留结构信息的序列作为模型训练样本X,将模型训练样本X将输入seq2seq模型;
S40将结构信息X输入编码层生成作为模型参数的隐含状态序列S和结构信息的编码输出h;
S50将隐含状态序列S和结构信息的编码输出h输入注意力机制层,注意力机制层根据隐含状态序列S和结构信息的编码输出h之间匹配程度计算得到上下文向量C;
S60将结构信息的编码输出h和上下文向量C输入解码层,并计算训练样本目标Y的序列概率分布;
S70由源代码注释和序列概率分布生成基于序列机器翻译模型。
优选地,所述S30具体包括:
S301对源代码序列生成抽象语法树,其中抽象语法树至少包括方法的类型名和参数作为叶结点词语表征;
S302从根节点开始,使用一对括号来表示结构信息,将本节点放在括号里以及最后;
S303遍历根节点的所有子节点,对于所有子节点生成一对括号并将子节点放在括号后面;
S304通过S302和S303步骤的递归遍历,以子节点为根节点的树结构生成一个包含结构信息的序列;
S305将词典之外的方法名替换为结点在抽象语法树中类型名作为词典征。
优选地,所述编码器采用长短时记忆网络LSTM模型,假设编码器当前状态为t,使用当前状态的结构信息xt和上一状态隐含状态序列st-1经过长短时记忆网络LSTM模型生成当前隐含状态序列st和当前结构信息的编码输出ht
优选地,所述S50具体为:
S501将隐含状态序列S和结构信息的编码输出h输入注意力机制层,假设ei,j为当前隐含状态序列sj和上一状态结构信息的编码输出hi-1的匹配程度,计算公式如下:
ei,j=a(hi-1,sj),
S502设隐含状态序列S包括各状态s1,...sm,假设注意机制层中的当前隐含状态序列为sj,计算当前隐含状态序列sj的权重αi,j
Figure BDA0002278037840000041
S503以S502计算得到当前隐含状态序列的各状态加权和作为当前状态的上下文向量ci,并将之输出,其中当前状态的上下文向量ci的计算公式如下:
Figure BDA0002278037840000042
优选地,所述S60具体为:
S601将训练样本目标Y序列化为y1,y2,...,yi-1,yi,计算基于ci和y1,y2,...,yi-1的分布概率预测序列y:p(yi|y1,y2,…,yi-1,x)=g(yi-1,hi,ci),g为yi的概率;
S602以概率g的信息熵为目标函数,通过最优梯度下降算法最小化目标损失函数生成训练样本目标Y的序列概率分布。
优选地,所述S10中词典的选取维度为3000个单词,抽象语法树序列限制在400维度。
优选地,所述含注释的代码语料从开源的面向开源及私有软件项目的托管平台中获取。
优选地,所述长短时记忆网络LSTM模型用于生成隐含状态序列的隐含层维度为512,长短时记忆网络LSTM模型的词嵌入维度为512。
优选地,所述最优梯度下降算法的梯度为100,学习率为0.5,学习率衰减值为0.99。
优选地,所述最优梯度下降算法的前向传播值为0.5。
与现有技术相比,本发明技术方案的有益效果是:本发明使用了基于序列的机器翻译模型来处理源代码中的结构化信息,同时又提出一种新的抽象语法树遍历方法和基于特定领域的方法来处理未知词汇。
附图说明
图1为本发明的方法流程图。
图2为本发明所述S303一实施例的方法示意图。
具体实施方式
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
一种基于机器翻译模型的代码注释生成方法,包括:
S10获取含注释的代码语料,提取代码语料中的高频词构建词典,将代码语料库划分为源代码方法序列语料库和对应的源代码注释语料库;
S20提取源代码注释语料库中源代码注释作为训练样本目标Y输入seq2seq模型;
S30提取源代码方法序列生成抽象语法树,将节点的标识符替换为节点的type类别且结构化遍历得到保留结构信息的序列作为模型训练样本X,将模型训练样本X将输入seq2seq模型;
S40将结构信息X输入编码层生成作为模型参数的隐含状态序列S和结构信息的编码输出h;
S50将隐含状态序列S和结构信息的编码输出h输入注意力机制层,注意力机制层根据隐含状态序列S和结构信息的编码输出h之间匹配程度计算得到上下文向量C;
S60将结构信息的编码输出h和上下文向量C输入解码层,并计算训练样本目标Y的序列概率分布;
S70由源代码注释和序列概率分布生成基于序列机器翻译模型。
优选地,所述S30具体包括:
S301对源代码序列生成抽象语法树,其中抽象语法树至少包括方法的类型名和参数作为叶结点词语表征;
S302从根节点开始,使用一对括号来表示结构信息,将本节点放在括号里以及最后;
S303遍历根节点的所有子节点,对于所有子节点生成一对括号并将子节点放在括号后面;
S304通过S302和S303步骤的递归遍历,以子节点为根节点的树结构生成一个包含结构信息的序列;
S305将词典之外的方法名替换为结点在抽象语法树中类型名作为词典征。
优选地,所述编码器采用长短时记忆网络LSTM模型,假设编码器当前状态为t,使用当前状态的结构信息xt和上一状态隐含状态序列st-1经过长短时记忆网络LSTM模型生成当前隐含状态序列st和当前结构信息的编码输出ht
优选地,所述S50具体为:
S501将隐含状态序列S和结构信息的编码输出h输入注意力机制层,假设ei,j为当前隐含状态序列sj和上一状态结构信息的编码输出hi-1的匹配程度,计算公式如下:
ei,j=a(hi-1,sj),
S502设隐含状态序列S包括各状态s1,...sm,假设注意机制层中的当前隐含状态序列为sj,计算当前隐含状态序列sj的权重αi,j
Figure BDA0002278037840000071
S503以S502计算得到当前隐含状态序列的各状态加权和作为当前状态的上下文向量ci,并将之输出,其中当前状态的上下文向量ci的计算公式如下:
Figure BDA0002278037840000072
优选地,所述S60具体为:
S601将训练样本目标Y序列化为y1,y2,...,yi-1,yi,计算基于ci和y1,y2,...,yi-1的分布概率预测序列y:p(yi|y1,y2,…,yi-1,x)=g(yi-1,hi,ci),g为yi的概率;
S602以概率g的信息熵为目标函数,通过最优梯度下降算法最小化目标损失函数生成训练样本目标Y的序列概率分布。
优选地,所述S10中词典的选取维度为3000个单词,抽象语法树序列限制在400维度。
优选地,所述含注释的代码语料从开源的面向开源及私有软件项目的托管平台中获取。
优选地,所述长短时记忆网络LSTM模型用于生成隐含状态序列的隐含层维度为512,长短时记忆网络LSTM模型的词嵌入维度为512。
优选地,所述最优梯度下降算法的梯度为100,学习率为0.5,学习率衰减值为0.99。
优选地,所述最优梯度下降算法的前向传播值为0.5。
本发明将训练源代码对应注释作为训练输入Y,使用抽象语法生成树生成方法,之后使用结构化遍历方式去遍历保存结构化信息,并在之后针对唯一词汇过于庞大的问题将未出现在词典中的词汇(可能包含许多标识符)替换为它的类型名。本发明中词典选取维度为3000个单词,S3中使用抽象语法树序列限制在400维度
S4和S6中使用的LSTM模型隐藏层使用512维度,词嵌入维度同样为512。训练过程中使用的minibatch为100,学习率在0.5,学习率衰减值为0.99。为了防止过拟合,dropout值为0.5。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (10)

1.一种基于机器翻译模型的代码注释生成方法,其特征在于,包括:
S10获取含注释的代码语料库,提取代码语料库中的高频词构建词典,将代码语料库划分为源代码方法序列语料库和对应的源代码注释语料库;
S20提取源代码注释语料库中源代码注释作为训练样本目标Y输入seq2seq模型;
S30提取源代码方法序列生成抽象语法树,将节点的标识符替换为节点的type类别且结构化遍历得到保留结构信息的序列作为模型训练样本X,将模型训练样本X将输入seq2seq模型;
S40将结构信息X输入编码层生成作为模型参数的隐含状态序列S和结构信息的编码输出h;
S50将隐含状态序列S和结构信息的编码输出h输入注意力机制层,注意力机制层根据隐含状态序列S和结构信息的编码输出h之间匹配程度计算得到上下文向量C;
S60将结构信息的编码输出h和上下文向量C输入解码层,并计算训练样本目标Y的序列概率分布;
S70由源代码注释和序列概率分布生成基于序列机器翻译模型。
2.如权利要求1所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述S30具体包括:
S301对源代码序列生成抽象语法树,其中抽象语法树至少包括方法的类型名和参数作为叶结点词语表征;
S302从根节点开始,使用一对括号来表示结构信息,将本节点放在括号里以及最后;
S303遍历根节点的所有子节点,对于所有子节点生成一对括号并将子节点放在括号后面;
S304通过S302和S303步骤的递归遍历,以子节点为根节点的树结构生成一个包含结构信息的序列;
S305将词典之外的方法名替换为结点在抽象语法树中类型名作为词典征。
3.如权利要求1所述的基于机器翻译模型的代码注释生成方法,其特征在于,编码器采用长短时记忆网络LSTM模型,假设编码器当前状态为t,使用当前状态的结构信息xt和上一状态隐含状态序列st-1经过长短时记忆网络LSTM模型生成当前隐含状态序列st和当前结构信息的编码输出ht
4.如权利要求1所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述S50具体为:
S501将隐含状态序列S和结构信息的编码输出h输入注意力机制层,假设ei,j为当前隐含状态序列sj和上一状态结构信息的编码输出hi-1的匹配程度,计算公式如下:
ei,j=a(hi-1,sj),
S502设隐含状态序列S包括各状态s1,...sm,假设注意机制层中的当前隐含状态序列为sj,计算当前隐含状态序列sj的权重αi,j
Figure FDA0004099950670000021
S503以S502计算得到当前隐含状态序列的各状态加权和作为当前状态的上下文向量ci,并将之输出,其中当前状态的上下文向量ci的计算公式如下:
Figure FDA0004099950670000022
5.如权利要求1所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述S60具体为:
S601将训练样本目标Y序列化为y1,y2,...,yi-1,yi,计算基于ci和y1,y2,...,yi-1的分布概率预测序列y:p(yi|y1,y2,…,yi-1,x)=g(yi-1,hi,ci),g为yi的概率;
S602以概率g的信息熵为目标函数,通过最优梯度下降算法最小化目标损失函数生成训练样本目标Y的序列概率分布。
6.如权利要求1所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述S10中词典的选取维度为3000个单词,抽象语法树序列限制在400维度。
7.如权利要求1所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述含注释的代码语料从开源的面向开源及私有软件项目的托管平台中获取。
8.如权利要求3所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述长短时记忆网络LSTM模型用于生成隐含状态序列的隐含层维度为512,长短时记忆网络LSTM模型的词嵌入维度为512。
9.如权利要求5所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述最优梯度下降算法的梯度为100,学习率为0.5,学习率衰减值为0.99。
10.如权利要求9所述的基于机器翻译模型的代码注释生成方法,其特征在于,所述最优梯度下降算法的前向传播值为0.5。
CN201911133186.7A 2019-11-18 2019-11-18 一种基于机器翻译模型的代码注释生成方法 Active CN111090461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911133186.7A CN111090461B (zh) 2019-11-18 2019-11-18 一种基于机器翻译模型的代码注释生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911133186.7A CN111090461B (zh) 2019-11-18 2019-11-18 一种基于机器翻译模型的代码注释生成方法

Publications (2)

Publication Number Publication Date
CN111090461A CN111090461A (zh) 2020-05-01
CN111090461B true CN111090461B (zh) 2023-04-28

Family

ID=70393521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911133186.7A Active CN111090461B (zh) 2019-11-18 2019-11-18 一种基于机器翻译模型的代码注释生成方法

Country Status (1)

Country Link
CN (1) CN111090461B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625276B (zh) * 2020-05-09 2023-04-21 山东师范大学 基于语义与语法信息融合的代码摘要生成方法及***
CN112035165B (zh) * 2020-08-26 2023-06-09 山谷网安科技股份有限公司 基于同构网络的代码克隆检测方法及***
CN112035099B (zh) * 2020-09-01 2024-03-15 北京天融信网络安全技术有限公司 一种抽象语法树中节点的向量化表示方法及装置
CN112162775A (zh) * 2020-10-21 2021-01-01 南通大学 一种基于Transformer和混合代码表示的Java代码注释自动生成方法
CN112381280B (zh) * 2020-11-06 2023-01-24 北京航空航天大学 一种基于人工智能的算法预测方法
CN112394974B (zh) * 2020-11-23 2024-05-07 平安科技(深圳)有限公司 代码变更的注释生成方法、装置、电子设备及存储介质
CN112433754B (zh) * 2021-01-13 2022-05-31 南京大学 一种基于程序分析的Java函数注释自动生成方法
CN112947930B (zh) * 2021-01-29 2024-05-17 南通大学 一种基于Transformer的Python伪代码自动生成方法
CN112905188A (zh) * 2021-02-05 2021-06-04 中国海洋大学 一种基于生成式对抗gan网络的代码翻译方法及***
CN112905232B (zh) * 2021-02-05 2023-11-28 中国海洋大学 一种基于语法分析树的程序代码平行语料挖掘方法及***
CN113190219A (zh) * 2021-05-08 2021-07-30 南通大学 一种基于递归神经网络模型的代码注释生成方法
CN114741070A (zh) * 2022-04-12 2022-07-12 中国联合网络通信集团有限公司 代码生成方法、装置、电子设备及存储介质
CN116302218B (zh) * 2023-03-15 2024-05-10 北京百度网讯科技有限公司 函数信息的添加方法、装置、设备以及存储介质
CN116841609B (zh) * 2023-08-28 2023-11-24 中国兵器装备集团兵器装备研究所 代码注释信息的补全方法、***、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960506A (zh) * 2018-12-03 2019-07-02 复旦大学 一种基于结构感知的代码注释生成方法
CN110399162A (zh) * 2019-07-09 2019-11-01 北京航空航天大学 一种源代码注释自动生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671355B2 (en) * 2018-01-21 2020-06-02 Microsoft Technology Licensing, Llc. Code completion with machine learning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960506A (zh) * 2018-12-03 2019-07-02 复旦大学 一种基于结构感知的代码注释生成方法
CN110399162A (zh) * 2019-07-09 2019-11-01 北京航空航天大学 一种源代码注释自动生成方法

Also Published As

Publication number Publication date
CN111090461A (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
CN111090461B (zh) 一种基于机器翻译模型的代码注释生成方法
CN111310438B (zh) 基于多粒度融合模型的中文句子语义智能匹配方法及装置
CN108416058B (zh) 一种基于Bi-LSTM输入信息增强的关系抽取方法
Fu et al. Core: Automatic molecule optimization using copy & refine strategy
CN111651557B (zh) 一种自动化文本生成方法、装置及计算机可读存储介质
CN110232186A (zh) 融合实体描述、层次化类型和文本关系信息的知识图谱表示学习方法
CN108681557B (zh) 基于自扩充表示和相似双向约束的短文本主题发现方法及***
CN108717423B (zh) 一种基于深度语义挖掘的代码段推荐方法
CN1661593B (zh) 一种计算机语言翻译方法及其翻译***
CN111178051B (zh) 建筑信息模型自适应的中文分词方法及装置
CN110147544B (zh) 一种基于自然语言的指令生成方法、装置以及相关设备
CN117076653A (zh) 基于思维链及可视化提升上下文学习知识库问答方法
CN107305543B (zh) 对实体词的语义关系进行分类的方法和装置
CN113987199B (zh) 一种规范自动解译的bim智能审图方法、***和介质
CN113190219A (zh) 一种基于递归神经网络模型的代码注释生成方法
US20230153335A1 (en) Searchable data structure for electronic documents
CN116151132A (zh) 一种编程学习场景的智能代码补全方法、***及储存介质
CN114528398A (zh) 一种基于交互双重图卷积网络的情感预测方法及***
CN111400584A (zh) 联想词的推荐方法、装置、计算机设备和存储介质
CN110245349A (zh) 一种句法依存分析方法、装置及一种电子设备
CN116432611A (zh) 文稿写作辅助方法、***、终端及存储介质
CN116861269A (zh) 工程领域的多源异构数据融合及分析方法
CN111259176B (zh) 融合有监督信息的基于矩阵分解的跨模态哈希检索方法
WO2023103914A1 (zh) 文本情感分析方法、装置及计算机可读存储介质
CN116663567A (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