CN111090461A - 一种基于机器翻译模型的代码注释生成方法 - Google Patents
一种基于机器翻译模型的代码注释生成方法 Download PDFInfo
- Publication number
- CN111090461A CN111090461A CN201911133186.7A CN201911133186A CN111090461A CN 111090461 A CN111090461 A CN 111090461A CN 201911133186 A CN201911133186 A CN 201911133186A CN 111090461 A CN111090461 A CN 111090461A
- Authority
- CN
- China
- Prior art keywords
- sequence
- code
- machine translation
- model
- source 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013519 translation Methods 0.000 title claims abstract description 25
- 238000012549 training Methods 0.000 claims abstract description 25
- 230000007246 mechanism Effects 0.000 claims abstract description 16
- 238000009826 distribution Methods 0.000 claims abstract description 14
- 230000015654 memory Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 230000007787 long-term memory Effects 0.000 claims description 3
- 230000007774 longterm Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 210000002464 muscle smooth vascular Anatomy 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000001418 vibrating-sample magnetometry Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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)
- 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:
S503以S502计算得到当前隐含状态序列的各状态加权和作为当前状态的上下文向量ci,并将之输出,其中当前状态的上下文向量ci的计算公式如下:
优选地,所述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:
S503以S502计算得到当前隐含状态序列的各状态加权和作为当前状态的上下文向量ci,并将之输出,其中当前状态的上下文向量ci的计算公式如下:
优选地,所述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。
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。
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 true CN111090461A (zh) | 2020-05-01 |
CN111090461B 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) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625276A (zh) * | 2020-05-09 | 2020-09-04 | 山东师范大学 | 基于语义与语法信息融合的代码摘要生成方法及系统 |
CN112035099A (zh) * | 2020-09-01 | 2020-12-04 | 北京天融信网络安全技术有限公司 | 一种抽象语法树中节点的向量化表示方法及装置 |
CN112035165A (zh) * | 2020-08-26 | 2020-12-04 | 山谷网安科技股份有限公司 | 基于同构网络的代码克隆检测方法及系统 |
CN112162775A (zh) * | 2020-10-21 | 2021-01-01 | 南通大学 | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 |
CN112381280A (zh) * | 2020-11-06 | 2021-02-19 | 北京航空航天大学 | 一种基于人工智能的算法预测方法 |
CN112394974A (zh) * | 2020-11-23 | 2021-02-23 | 平安科技(深圳)有限公司 | 代码变更的注释生成方法、装置、电子设备及存储介质 |
CN112433754A (zh) * | 2021-01-13 | 2021-03-02 | 南京大学 | 一种基于程序分析的Java函数注释自动生成方法 |
CN112905232A (zh) * | 2021-02-05 | 2021-06-04 | 中国海洋大学 | 一种基于语法分析树的程序代码平行语料挖掘方法及系统 |
CN112905188A (zh) * | 2021-02-05 | 2021-06-04 | 中国海洋大学 | 一种基于生成式对抗gan网络的代码翻译方法及系统 |
CN112947930A (zh) * | 2021-01-29 | 2021-06-11 | 南通大学 | 一种基于Transformer的Python伪代码自动生成方法 |
CN113190219A (zh) * | 2021-05-08 | 2021-07-30 | 南通大学 | 一种基于递归神经网络模型的代码注释生成方法 |
CN113934450A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 生成注释信息的方法、装置、计算机设备和介质 |
CN114741070A (zh) * | 2022-04-12 | 2022-07-12 | 中国联合网络通信集团有限公司 | 代码生成方法、装置、电子设备及存储介质 |
CN116302218A (zh) * | 2023-03-15 | 2023-06-23 | 北京百度网讯科技有限公司 | 函数信息的添加方法、装置、设备以及存储介质 |
CN116841609A (zh) * | 2023-08-28 | 2023-10-03 | 中国兵器装备集团兵器装备研究所 | 代码注释信息的补全方法、系统、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960506A (zh) * | 2018-12-03 | 2019-07-02 | 复旦大学 | 一种基于结构感知的代码注释生成方法 |
US20190227774A1 (en) * | 2018-01-21 | 2019-07-25 | Microsoft Technology Licensing, Llc. | Code completion with machine learning |
CN110399162A (zh) * | 2019-07-09 | 2019-11-01 | 北京航空航天大学 | 一种源代码注释自动生成方法 |
-
2019
- 2019-11-18 CN CN201911133186.7A patent/CN111090461B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190227774A1 (en) * | 2018-01-21 | 2019-07-25 | Microsoft Technology Licensing, Llc. | Code completion with machine learning |
CN109960506A (zh) * | 2018-12-03 | 2019-07-02 | 复旦大学 | 一种基于结构感知的代码注释生成方法 |
CN110399162A (zh) * | 2019-07-09 | 2019-11-01 | 北京航空航天大学 | 一种源代码注释自动生成方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625276A (zh) * | 2020-05-09 | 2020-09-04 | 山东师范大学 | 基于语义与语法信息融合的代码摘要生成方法及系统 |
CN113934450A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 生成注释信息的方法、装置、计算机设备和介质 |
CN112035165A (zh) * | 2020-08-26 | 2020-12-04 | 山谷网安科技股份有限公司 | 基于同构网络的代码克隆检测方法及系统 |
CN112035165B (zh) * | 2020-08-26 | 2023-06-09 | 山谷网安科技股份有限公司 | 基于同构网络的代码克隆检测方法及系统 |
CN112035099A (zh) * | 2020-09-01 | 2020-12-04 | 北京天融信网络安全技术有限公司 | 一种抽象语法树中节点的向量化表示方法及装置 |
CN112035099B (zh) * | 2020-09-01 | 2024-03-15 | 北京天融信网络安全技术有限公司 | 一种抽象语法树中节点的向量化表示方法及装置 |
CN112162775A (zh) * | 2020-10-21 | 2021-01-01 | 南通大学 | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 |
CN112381280A (zh) * | 2020-11-06 | 2021-02-19 | 北京航空航天大学 | 一种基于人工智能的算法预测方法 |
CN112381280B (zh) * | 2020-11-06 | 2023-01-24 | 北京航空航天大学 | 一种基于人工智能的算法预测方法 |
CN112394974A (zh) * | 2020-11-23 | 2021-02-23 | 平安科技(深圳)有限公司 | 代码变更的注释生成方法、装置、电子设备及存储介质 |
CN112394974B (zh) * | 2020-11-23 | 2024-05-07 | 平安科技(深圳)有限公司 | 代码变更的注释生成方法、装置、电子设备及存储介质 |
WO2021208701A1 (zh) * | 2020-11-23 | 2021-10-21 | 平安科技(深圳)有限公司 | 代码变更的注释生成方法、装置、电子设备及存储介质 |
CN112433754A (zh) * | 2021-01-13 | 2021-03-02 | 南京大学 | 一种基于程序分析的Java函数注释自动生成方法 |
CN112433754B (zh) * | 2021-01-13 | 2022-05-31 | 南京大学 | 一种基于程序分析的Java函数注释自动生成方法 |
CN112947930A (zh) * | 2021-01-29 | 2021-06-11 | 南通大学 | 一种基于Transformer的Python伪代码自动生成方法 |
CN112947930B (zh) * | 2021-01-29 | 2024-05-17 | 南通大学 | 一种基于Transformer的Python伪代码自动生成方法 |
CN112905232B (zh) * | 2021-02-05 | 2023-11-28 | 中国海洋大学 | 一种基于语法分析树的程序代码平行语料挖掘方法及系统 |
CN112905188A (zh) * | 2021-02-05 | 2021-06-04 | 中国海洋大学 | 一种基于生成式对抗gan网络的代码翻译方法及系统 |
CN112905232A (zh) * | 2021-02-05 | 2021-06-04 | 中国海洋大学 | 一种基于语法分析树的程序代码平行语料挖掘方法及系统 |
CN113190219A (zh) * | 2021-05-08 | 2021-07-30 | 南通大学 | 一种基于递归神经网络模型的代码注释生成方法 |
CN114741070A (zh) * | 2022-04-12 | 2022-07-12 | 中国联合网络通信集团有限公司 | 代码生成方法、装置、电子设备及存储介质 |
CN116302218A (zh) * | 2023-03-15 | 2023-06-23 | 北京百度网讯科技有限公司 | 函数信息的添加方法、装置、设备以及存储介质 |
CN116302218B (zh) * | 2023-03-15 | 2024-05-10 | 北京百度网讯科技有限公司 | 函数信息的添加方法、装置、设备以及存储介质 |
CN116841609A (zh) * | 2023-08-28 | 2023-10-03 | 中国兵器装备集团兵器装备研究所 | 代码注释信息的补全方法、系统、电子设备和存储介质 |
CN116841609B (zh) * | 2023-08-28 | 2023-11-24 | 中国兵器装备集团兵器装备研究所 | 代码注释信息的补全方法、系统、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111090461B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090461B (zh) | 一种基于机器翻译模型的代码注释生成方法 | |
Wang et al. | Reinforcement-learning-guided source code summarization using hierarchical attention | |
CN111159223B (zh) | 一种基于结构化嵌入的交互式代码搜索方法及装置 | |
Fu et al. | Core: Automatic molecule optimization using copy & refine strategy | |
CN110232186A (zh) | 融合实体描述、层次化类型和文本关系信息的知识图谱表示学习方法 | |
CN108717423B (zh) | 一种基于深度语义挖掘的代码段推荐方法 | |
CN111178051B (zh) | 建筑信息模型自适应的中文分词方法及装置 | |
CN110147544B (zh) | 一种基于自然语言的指令生成方法、装置以及相关设备 | |
CN115357719B (zh) | 基于改进bert模型的电力审计文本分类方法及装置 | |
EP4075292A1 (en) | Method and apparatus for processing database | |
CN113190219A (zh) | 一种基于递归神经网络模型的代码注释生成方法 | |
CN113987199A (zh) | 一种规范自动解译的bim智能审图方法、系统和介质 | |
Li et al. | Neural Chinese address parsing | |
CN117807691A (zh) | 一种基于建筑可视化的信息模型数据集成方法及系统 | |
Zhou et al. | Summarizing source code with hierarchical code representation | |
CN114913938B (zh) | 一种基于药效团模型的小分子生成方法、设备及介质 | |
CN101162480A (zh) | 工程图自动识别与理解的方法 | |
Chen | Extraction and visualization of traceability relationships between documents and source code | |
CN110309214A (zh) | 一种指令执行方法及其设备、存储介质、服务器 | |
CA3139601C (en) | Method for consolidating dynamic knowledge organization systems | |
Zhen et al. | Frequent words and syntactic context integrated biomedical discontinuous named entity recognition method | |
CN113468875A (zh) | 一种面向SCADA系统自然语言交互接口语义分析的MNet方法 | |
Guo et al. | Context‐based transfer learning for low resource code summarization | |
CN114358021A (zh) | 基于深度学习的任务型对话语句回复生成方法及存储介质 | |
Lu et al. | Enhancing source code summarization from structure and semantics |
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 |