收藏 分销(赏)

基于类原型与深度学习的类注释生成方法.pdf

上传人:自信****多点 文档编号:641405 上传时间:2024-01-22 格式:PDF 页数:6 大小:972.08KB
下载 相关 举报
基于类原型与深度学习的类注释生成方法.pdf_第1页
第1页 / 共6页
基于类原型与深度学习的类注释生成方法.pdf_第2页
第2页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第26卷第9期2023年9月软件工程 S O F T W A R E E N G I N E E R I N GVol.26 No.9Sep.2023文章编号:2096-1472(2023)09-0012-06DOI:10.19644/ki.issn2096-1472.2023.009.003收稿日期:2 0 2 3-0 2-2 0基金项目:“十三五”国家密码发展基金理论项目(MM J J 2 0 1 8 0 2 0 2)基于类原型与深度学习的类注释生成方法李 睿1,赵逢禹2,刘 亚1(1.上海理工大学光电信息与计算机工程学院,上海 200093;2.上海出版印刷高等专科学校信息与智能工程系,

2、上海 200093);摘 要:现有的代码注释生成技术大多针对方法粒度,而对于面向对象程序,类才是其核心组成,因此对类生成注释是很有必要的。针对这一问题,提出一种结合类原型与深度学习技术对类生成注释的方法。首先,确定类原型并选择对应类注释模板;其次,提取类中信息填充模板,对类中的方法通过双编码器模型训练得到方法代码注释。实验结果表明,方法粒度上提出的双编码器模型在方法代码注释生成的结果评估中表现较好,类粒度的注释准确性较高。关键词:代码注释;类注释模板;类原型;双编码器;深度学习中图分类号:T P 3 1 1 文献标志码:AC l a s s A n n o t a t i o n G e n

3、e r a t i o n M e t h o d B a s e d o n C l a s s P r o t o t y p e a n d D e e p L e a r n i n gLI Rui1,ZHAO Fengyu2,LIU Ya1(1.School of Optical-Electrical&Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China;2.Department of Information and Intelligent Engine

4、ering,Shanghai Publishing and Printing College,Shanghai 200093,China);A b s t r a c t:Most of the existing code annotation generation techniques are targeted at method granularity.For object-oriented programs,classes are their core components,so it is necessary to generate annotations for classes.To

5、 solve this problem,this paper proposes a class annotation generation method combining class prototype and deep learning technology.Firstly,the class prototype is determined and the corresponding class annotation template is selected.Secondly,information in the class is extracted to fill the templat

6、e,and the method code annotation is obtained by training the bi-encoder model for the methods in the class.The experimental results show that the proposed bi-encoder model in terms of method granularity performs better in the result evaluation score of method code annotation generation,and the annot

7、ation accuracy of class granularity is higher.K e y w o r d s:code annotation;class annotation template;class prototype;bi-encoder;deep learning0引言(I n t r o d u c t i o n)在许多软件系统中,代码源文件的注释经常出现不完整、过时甚至缺失等情况,对这些系统代码进行维护与完善时,开发人员需要花费大量时间理解代码1。当代码内部有较准确的注释文本时,开发人员可以通过浏览注释文本快速理解相关代码片段的含义,从而节省维护时间,提高维护质量

8、。自动代码注释生成技术是用于提高代码可读性和可维护性的有效方法,目前针对代码注释自动生成的研究大致分为以下两类:基于模板的注释自动生成和基于深度学习的注释自动生成。基于模板自动生成的代码注释可读性较高,但缺乏对具体代码结构信息的获取能力,而基于深度学习的代码注释生成研究大多应用于方法粒度,对于复杂的类结构的注释生成比较第 26卷第 9期李 睿等:基于类原型与深度学习的类注释生成方法困难。针对上述两类自动代码注释生成技术存在的问题,本文结合模板与深度学习技术,提出一种为类自动生成注释的方法,首先确定当前类所属的类原型,并选择对应类注释模板,提取类中的信息填充到模板中,其次针对类中方法的注释生成问

9、题,提出构建一种基于注意力机制的双编码器模型,实现代码到注释的映射,最后通过实验验证了本方法的可行性与实际应用效果。1相关研究(R e l a t e d r e s e a r c h)基于模板的注释生成方法,首先需要预定义一组启发式规则,其次提取代码的关键信息并通过启发式规则生成自然语言描述。H I L L等2提出一种基于软件单词使用模型(S o f t w a r e W o r d U s a g e M o d e l,S WUM)分析J a v a方法签名的方法,为J a v a方法生成自然语言注释。S R I D HA R A等3在H I L L等研究的基础上进一步考虑了方法体内

10、含有的代码,提出一种基于启发式规则的方法为方法代码生成注释,该方法主要分为内容选择和注释生成两个阶段。MO R E N O等4将关注的代码粒度从方法级别提升到类级别,首先确定类和方法的原型,其次通过结合原型信息与预先定义的基于方法和数据成员访问级别的启发式规则,并通过现有的文本生成工具对J a v a类生成描述性摘要。基于规则模板生成的代码注释容易理解,但受限于模板只能为特定的代码结构生成注释,对于模板之外的代码无法灵活地生成有效的代码注释。基于深度学习的注释生成方法通过神经网络对代码中包含的信息进行挖掘,得到其特征向量表示,并通过模型进行训练,最终得到自然语言描述。目前,大量的研究主要采用神

11、经机器翻译(N e u r a l M a c h i n e T r a n s l a t i o n,NMT)模型,通过提取不同的代码特征信息,使用不同的神经网络结构进行训练得到代码注释。I Y E R等5率先将深度神经网络引入自动代码摘要研 究,提 出 代 码-描 述 嵌 入 神 经 网 络(C o d e-D e s c r i p t i o n E m b e d d i n g N e u r a l N e t w o r k,C O D E N N)方法,在长短期记忆网络(L o n g-S h o r t T e r m M e m o r y,L S TM)的基础上通过

12、引入注意力机制构建一个端到端的学习网络,从而自动生成代码摘要。HU A N G等6采用门控循环单元(G a t e d R e c u r r e n t U n i t s,G R U)作为编码器和解码器,并为代码块生成注释,G R U是对L S TM网络的一种改进,能够保留较长的上下文信息7。C A I等8提出使用树形长短期记忆网络(T r e e-L S TM),通过引入语法类型信息对程序代码进行结构化编码,并在解码时采用多种策略对抽象语法树的节点进行筛选,最终生成代码注释。基于深度学习的自动代码注释方法可以较灵活地为代码片段生成注释,在面对复杂程序代码时,仍然具有良好的结构学习能力,但

13、目前大多只应用于方法粒度,针对类粒度的代码片段无法生成较为全面的注释。2类注释生成方法(C l a s s a n n o t a t i o n g e n e r a t i o n m e t h o d)本文提出的基于类原型与深度学习为类生成注释的方法活动图如图1所示,主要包括以下几步:第一步,提取类中方法,确定类中方法原型,并通过类中方法原型的分布确定类原型;第二步,为不同的类原型选择不同的类注释模板;第三步,针对类注释模板中各部分的信息设计相应的提取规则,并将提取到的信息填充到类注释模板中;第四步,对于类中的主要方法通过深度学习模型得到方法注释,将方法代码注释填充到类注释模板中,得

14、到完整类注释。图1 基于类原型与深度学习的类注释生成模型活动图F i g.1 A c t i v i t y d i a g r a m o f c l a s s a n n o t a t i o n g e n e r a t i o n m o d e l b a s e d o n c l a s s p r o t o t y p e a n d d e e p l e a r n i n g2.1类原型分类类原型是项目设计中类的角色和责任的简单抽象,开发人员可以通过类原型较快地了解类在系统中的一般职责。在软件的维护和发展过程中,对类原型的准确描述是必要的,S T A R O N等

15、9验证了类原型信息在程序理解任务中的有效性。本文首先对类的原型进行识别,确定类的职责,其次为不同的类原型选择不同的类注释模板。目前,在类与方法的原型识别领域已有大量研究,文献1 0 首先提出了一种方法原型的自动识别技术,并给出了方法原型的分类法;文献1 1 在此基础上提出一种根据方法原型分布确定类原型的方法,并给出了类原型的分类法。为了构建符合类职责的注释模板,本文参照文献1 1 对方法原型和类原型的分类方法进行重新定义,将方法原型分类为5类,类原型分类为4类,其中方法原型分布是类原型分类的重要特征。表1给出了本文定义的方法原型分类及原型描述,表2中给出了本文定义的类原型分类、原型描述及分类规

16、则。表 1 方法原型分类Tab.1 Method prototype taxonomy方法原型分类原型描述a c c e s s o r访问器方法:返回本地字段的相关信息m u t a t o r变换器方法:更改本地字段c o n s t r u c t o r构造方法:在创建对象时调用c o l l a b o r a t o r协作方法:将对象与其他类型对象连接处理c o n t r o l l e r控制器方法:更改外部对象状态的逻辑处理方法31软件工程2023年9月表 2 类原型分类描述Tab.2 Taxonomy and description of class prototype类

17、原型分类原型描述分类规则E n t i t y封装数据和行为的实 体,由 访 问器、变换器、构造方法和少数协作方法组成,不包括控制器方法同时满足以下三条规则:规则1为a c c+m u t+c o n45m t d;规则2为c o l23m t d;规则2为c o n t+c o n45m t dL a r g e c l a s s具有较多功能的类,由访问器、变换器、构造方法和协作方法组成满足以下任意一条规则:规则1为a c c0,m u t0,c o n0,c o l0;规则2为当前类不属于E n t i t y,B o u n d a r y,C o n t r o l l e r 在表

18、2的类原型分类规则中,a c c表示类中访问器类型方法的数量,m u t表示类中变换器类型方法的数量,c o n表示类中构造方法的数量,c o l代表类中协作方法的数量,c o n t表示类中控制器类型方法的数量,m t d表示类中方法的总数。2.2类注释模板不同类原型代表不同的职责,代码注释主要关注的信息也不同,例如E n t i t y类型代表实体类,重点关注继承关系、类中属性以及类在项目中的使用情况,由于E n t i t y类中方法大多数为访问器、变换器及创建方法,因此不需要对类中方法进行注释;B o u n d a r y类型代表边界类,多用于与其他类进行通信,因此重点关注类在项目中

19、的使用情况和类中方法的功能;C o n t r o l l e r类型代表控制类,主要负责处理外部对象数据,重点关注继承关系、实现关系、类在项目中的使用情况和类中方法的功能。受篇幅限制,本文以C o n t r o l l e r类原型为例,展示其注释模板(如表3所示)。表 3 C o n t r o l l e r类原型注释模板Tab.3 Controller class prototype annotation templateC o n t r o l l e r类原型注释模板该类为的C o n t r o l l e r类该类的父类为该类具有以下子类:,该类实现了以下接口:,该类在以下

20、类中被调用:,该类主要功能为,2.3类中信息提取规则表4给出了类注释模板中各部分注释内容的提取规则。首先,通过代码抽象语法树(A b s t r a c t S y n t a x T r e e,A S T)结构提取父类、接口的实现类和类中属性;其次,在项目中进行代码搜索提取其子类及该类在其他类中的使用情况,将上述信息填充到预定义的类注释模板中。类中方法是类功能的具体实现,类中方法的注释生成是类注释的难点。针对这一问题,本文首先识别类中的主要方法,对主要方法使用深度学习的技术建立方法代码到代码注释的映射模型,通过该模型获得方法代码的注释并填充到类注释模板中,最终获得完整的类注释。表 4 类中

21、信息提取规则Tab.4 Rules for extracting information from classes类中信息提取规则类名分析A S T继承关系(父类)分析A S T继承关系(子类)在项目中使用代码搜索实现关系分析A S T使用情况在项目中使用代码搜索类中属性分析A S T类中方法通过深度学习训练得到方法代码注释3基于注意力机制的双编码器方法代码注释生成模型(A m o d e l f o r c o d e a n n o t a t i o n g e n e r a t i o n i n b i-e n c o d e r m e t h o d b a s e d o n

22、 a t t e n t i o n m e c h a n i s m)由于方法代码结构复杂,包含较多的序列信息和结构信息,因此仅使用预定义规则提取,无法为方法代码生成较为准确的注释,而深度学习可以捕捉代码的结构信息,并可以通过大量训练得到从代码到注释的映射,本文使用深度学习技术为方法代码生成代码注释。本文在经典编码器-解码器模型的基础上,提出了一种双编码器-解码器的方法代码注释生成模型,其中双编码器包括一个序列编码器和一个树结构编码器,图2展示了该模型网络结构。该模型首先对数据进行预处理,在源码文件中提取以方法为粒度的代码,构建算法提取代码序列和代码抽象语法树结构信息;其次分别将代码序列和

23、抽象语法树序列的向量表示输入各自对应的编码器中进行训练;最后经过注意力机制关注解码重点,将序列向量和抽象语法树向量进行拼接后,由解码器解码得到方法代码注释序列。图2 双编码器-解码器模型F i g.2 D u a l e n c o d e r a n d d e c o d e r m o d e l41第 26卷第 9期李 睿等:基于类原型与深度学习的类注释生成方法3.1序列编码器在经典编码器-解码器模型中,编码器通常使用循环神经网络(R N N)按照时序提取代码序列特征,据目前已有的研究可知,当序列较长时,基于递归机制的R N N可能存在梯度消失或者梯度爆炸问题。G E R S等1 2提

24、出了一种长短期记忆网络(L S TM),相对于R N N而言,L S TM在处理长序列数据时表现更为出色。因此,本文选择L S TM作为双编码器中的序列编码器处理代码序列信息。为了构造序列编码器中的输入方法代码序列,首先利用A n t l r 4语法分析器生成工具将方法代码转化为抽象语法树(A S T),其次对方法A S T进行前序遍历,组成代码序列。算法1给出了提取方法代码序列的算法。算法1:方法代码序列提取算法。输入:方法代码M e t h o d。输出:方法代码对应的t o k e n序列。处理:1.初始化L i s t=;初始化S t a c k;2.R o o t=A S T(M e

25、 t h o d);将方法代码转为抽象语法树3.S t a c k.p u s h(R o o t);根节点入栈4.w h i l e S t a c k 不为空d o n o d e=S t a c k.p o p();L i s t.a d d(n o d e);c h i l d=C o l l e c t i o n s.r e v e r s e(n o d e.c h i l d r e n);逆序该节点的子节点 S t a c k.a d d A l l(c h i l d);添加所有的逆序子节点 e n d w h i l e 5.输出代码序列L i s t的字符串,结束算法。

26、通过上述算法将方法代码转为t o k e n序列后,使用词嵌入将t o k e n序列转换为向量表示Xs=(xs1,xsn),其中s代表序列信息,xsn代表方法片段中第n个t o k e n的向量表示。将向量Xs作为序列编码器的输入,经L S TM训练后输出表示向量,在图2中表示为序列向量hs。3.2树结构编码器本文使用树形长短期记忆网络(T r e e-L S TM)作为树结构编码器处理代码结构信息,T r e e-L S TM能够自下而上地学习代码的抽象语法树结构,有效地避免了代码结构信息丢失的问题1 3。相对于L S TM,T r e e-L S TM门控向量和记忆细胞的更新取决于子节点

27、的状态,对于给定A S T的任意节点j,C(j)表示其子节点集合,树编码器通过输入节点向量xtj和其子节点的隐藏状态htC(j)计算并输出对应的隐藏状态htj,其计算公式如公式(1)所示:htj=f(xtj,htC(j)(1)其中,t代表树结构信息。为了提取方法代码的树结构信息,首先将方法代码表示为抽象语法树(A S T),其次对方法A S T进行后序遍历的同时记录其代码层级关系,得到描述代码树形结构中子节点和父节点关系的序列。算法2展示了提取方法代码树结构序列的算法。算法2:方法代码提取树结构序列算法。输入:方法代码M e t h o d。输出:方法代码对应的树结构序列。处理:1.初始化L

28、i s t=;初始化S t a c k;2.R o o t=A S T(M e t h o d);将方法代码转为抽象语法树3.S t a c k.p u s h(R o o t);根节点入栈4.w h i l e S t a c k 不为空d o n o d e=S t a c k.p o p();c u r r e n t D e p t h=D e p t h(n o d e);获取当前节点的最大深度将当前节点所有子节点入栈n o d e.c h i l d r e n.f o r E a c h(c h i l d-S t a c k.p u s h(c h i l d););L i s

29、 t.a d d F i r s t();e n d w h i l e 5.输出描述代码树结构的L i s t,结束算法。通过自底向上的遍历,最终获取根节点的输出作为树编码器的输出,在图2中通过结构向量ht表示该向量。3.3解码器本文采用融合注意力机制的L S TM作为解码器,首先将序列编码器输出的序列表示向量hs和树编码器输出的结构表示向量ht分别通过注意力机制进行加权求和重新计算权重。其次将注意力机制筛选后的向量进行拼接,得到综合编码向量作为解码器的输入向量。至此,解码器就同时融合了代码的序列信息和结构信息。4实验结果与分析(E x p e r i m e n t a l r e s u

30、 l t s a n d a n a l y s i s)为了全面评估本文提出的基于类原型与深度学习为类自动生成注释的方法,将从以下两个方面进行实验验证:一是评估本文提出的基于注意力机制的双编码器方法代码注释生成模型的性能;二是评估本文提出的结合类原型与深度学习的类粒度注释生成的准确性。4.1数据集本文采用文献1 4 提供的J a v a-m e d数据集进行实验,该数据集收集于软件项目托管平台G i t H u b,包括1 0 0 0个J a v a顶级项目。该数据集包含约4 0 0万个方法,涵盖模型需要的源代码信息和注释信息。本文将数据集按照8 2的比例划分训练集和测试集,其中训练集用于训

31、练双编码器-解码器模型,测试集用于评估双编码器-解码器模型性能及J a v a类注释生成效果。4.2评估指标本文从两个方面评估本文提出方法的应用效果。对于方法代码注释自动生成的双编码器-解码器模型的评估问题,采用B L E U1 5、R O U G E1 6和M E T E O R1 7评估生成方法代码注释的质量,这些指标广泛应用于机器翻译领域。其中,B L E U表示生成句子和真实句子的相似程度,更侧重于准确率,本文选择其中51软件工程2023年9月的B L E U-4作为评估指标;R O U G E与B L E U类似,但更加关注召回率,R O U G E-L基于生成句子和真实句子的最长公

32、共子序列共现统计召回率和准确率;M E T E O R引入了同义词匹配,在计算得分时考虑了词性变换和同义词的情况。三种机器翻译性能评估指标与生成的自然语言注释质量呈正相关。针对类粒度注释的准确性与完整性评估问题,由于类粒度注释生成的相关研究与通用数据集较少,因此本实验采用具有J a v a软件领域开发经验的工程师对类注释进行人工方式的准确性评估。4.3实验结果分析4.3.1 方法粒度的注释生成模型性能对比本文提出的双编码器-解码器模型基于P y t h o n编程语言和P y T o r c h深度学习框架实现,在训练过程中,使用A d a m作为优化器,初始学习率设置为0.0 0 1。其中,

33、双编码器和解码器均具有两个隐藏层,隐藏状态设为2 5 6维,嵌入单词的维度也设为2 5 6维。为了评估本文在方法粒度的注释自动生成中提出的双编码器-解码器模型的有效性,选用方法注释生成领域中常见的注释生成模型进行实验对比。(1)S e q 2 S e q模型+注意力机制5。S e q 2 S e q模型将源代码序列信息输入L S TM中进行编码,引入注意力机制,最终由解码器进行解码获得注释。(2)C o d e 2 S e q模型+注意力机制1 4。C o d e 2 S e q模型通过使用抽象语法树中组合路径的集合表示代码片段,使用B i L S TM作为编码器,并在解码时使用注意力机制选择

34、相关的路径最终解码获得注释序列。(3)T r e e 2 S e q模型+注意力机制1 8。T r e e 2 S e q模型使用T r e e-L S TM作为编码器,将源代码转化为抽象语法树结构,使用编码器自下而上递归对A S T节点进行编码,然后由基于注意力机制的解码器进行解码。表5展示了4种模型在选定的J a v a数据集上的实验评估结果对比。从表5中可以看到,本文提出的双编码器-解码器模型的B L E U-4分数达到3 5.2,并且在各项指标上均优于其他三种对照方法。相对于其他三种模型,本文模型既融合了代码的序列信息,又融合了代码的结构信息,同时引入了注意力机制(A t t n),能

35、充分地获取代码信息,进而提升了注释生成效果。表 5 不同模型的评估指标得分对比Tab.5 Comparison of evaluation index scores of different models模型B L E U-4R O U G E-LM E T E O RS e q 2 S e q+A t t n3 1.84 8.12 1.6C o d e 2 S e q+A t t n3 3.64 9.42 1.8T r e e 2 S e q+A t t n3 4.85 1.62 2.5本文模型3 5.25 1.82 3.84.3.2类粒度的注释生成性能评估为了评估本文结合类原型与深度学习生

36、成类注释的性能,从类原型识别的准确性及类注释的准确性两个方面进行评估。首先在测试数据集中选择部分类,通过人工识别方式进行类原型分类;其次使用本文提出的类原型识别方法对这些类进行原型识别。从表6可以看出,本文提出的类原型识别规则能较准确地识别类的原型。表 6 类注释生成性能评估结果Tab.6 Evaluation results of class annotation generation performance类型实体类边界类控制类大类人工识别数量/个4 95 64 66 0本文方法识别数量/个4 25 13 95 8类注释准确性/%9 08 68 08 2 为了评估生成类注释的准确性,评估者

37、阅读选定类的主要功能和结构并给出对相应类的注释描述,然后与本文生成的类注释进行对比。表6展示了对不同类原型的类注释准确性的评估,评估者认定当类原型为实体类和边界类时,本文方法能较准确地生成符合该类职责的注释,对于类中方法数量较少的控制类能够较为准确地描述类的使用情况,但对于类的功能描述信息较少,对于大类(L a r g e c l a s s)能较为准确地描述类中具体方法的功能,从而反映类的功能。4.4示例展示本文首先通过确定类的原型选择类注释模板,其次提取类中信息填充到模板中,最终生成完整的类注释,表7展示了实验中类原型为C o n t r o l l e r类最终生成的类注释结果。表 7

38、实验结果Tab.7 Experimental results名称结果源代码p u b l i c c l a s s G w t C o n t r o l l e r i m p l e m e n t s C o n t r o l l e r M a n a g e r p r i v a t e i n t i n d e x;p r i v a t e S t r i n g n a m e;p u b l i c b o o l e a n i n s t a n c e(C o n t r o l l e r L i s t e n e r c l,C o l l e c t i

39、 o n a r r a y s)f o r(C o n t r o l l e r L i s t e n e r c:a r r a y s)i f(c.i s I n s t a n c e(c l)r e t u r n t r u e;r e t u r n f a l s e;类注释该类为G w t C o n t r o l l e r的c o n t r o l l e r类;该类实现了以下接口:C o n t r o l l e r M a n a g e r;该类在以下类中被调用:G w t H a n d l e r;该类主要功能为i f t h e C o n t r

40、o l l e r L i s t e n e r i s r e g i s t e r e d r e t u r n t r u e5结论(C o n c l u s i o n)本文通过结合类原型与深度学习技术,提出一种为类生成注释的方法,首先通过确定类原型选择类注释模板,其次提取类中的信息填充模板,对于类中的方法使用带有注意力机制的双编码器模型训练后得到方法注释,最终得到完整的类代码注释。实验表明,本文在方法粒度中提出的双编码器模型在性能61第 26卷第 9期李 睿等:基于类原型与深度学习的类注释生成方法和效果上优于对比模型,完整的类粒度的注释经人工评估后确定具有较高的准确性。未来,

41、可以结合信息搜索以及其他深度学习方法,融合更多的代码信息与注释文本,进一步提高自动生成类注释的质量。参考文献(R e f e r e n c e s)1 S O N G Q W,K O N G X L,W A N G L L,e t a l.A n e m p i r i c a l i n-v e s t i g a t i o n i n t o t h e e f f e c t s o f c o d e c o m m e n t s o n i s s u e r e s o l u-t i o nCHO S S A I N S.2 0 2 0 I E E E 4 4 t h A

42、n n u a l C o m p u t-e r s,S o f t w a r e,a n d A p p l i c a t i o n s C o n f e r e n c e.N e w Y o r k:I E E E,2 0 2 0:9 2 1-9 3 0.2 H I L L E,P O L L O C K L,V I J A Y-S HA N K E R K.A u t o m a t i-c a l l y c a p t u r i n g s o u r c e c o d e c o n t e x t o f N L-q u e r i e s f o r s o f

43、 t-w a r e m a i n t e n a n c e a n d r e u s eCN A R A Y A N R.2 0 0 9 I E E E 3 1 s t I n t e r n a t i o n a l C o n f e r e n c e o n S o f t w a r e E n g i n e e r-i n g.N e w Y o r k:I E E E,2 0 0 9:2 3 2-2 4 2.3 S R I D HA R A G,H I L L E,MU P P A N E N I D,e t a l.T o w a r d s a u t o m a

44、 t i c a l l y g e n e r a t i n g s u mm a r y c o mm e n t s f o r J a v a m e t h o d sCMA R E K G,A D AM C.P r o c e e d i n g s o f t h e 2 5 t h I E E E/A C M I n t e r n a t i o n a l C o n f e r e n c e o n A u t o m a t e d S o f t w a r e E n g i n e e r i n g.N e w Y o r k:I E E E,2 0 1 0

45、:4 3-5 2.4 MO R E N O L,A P O N T E J,S R I D H A R A G,e t a l.A u t o m a t i c g e n e r a t i o n o f n a t u r a l l a n g u a g e s u m m a r i e s f o r J a v a c l a s s e sCD I A N A D.2 0 1 3 2 1 s t I n t e r n a t i o n a l C o n f e r e n c e o n P r o g r a m C o m p r e h e n s i o n.

46、s t r o u d s b u g:I E E E,2 0 1 3:2 3-3 2.5 I Y E R S,K O N S T A S I,C H E U N G A,e t a l.S u mm a r i z i n g s o u r c e c o d e u s i n g a n e u r a l a t t e n t i o n m o d e lCMA R I A B,J O A C H I M B.P r o c e e d i n g s o f t h e 5 4 t h A n n u a l M e e t i n g o f t h e A s s o c

47、i a t i o n f o r C o m p u t a t i o n a l L i n g u i s t i c s.S t r o u s b u g:A s s o c i a t i o n f o r C o m p u t a t i o n a l L i n g u i s t i c s,2 0 1 6:2 0 7 3-2 0 8 3.6 H U A N G Y,H U A N G S H,C H E N H C,e t a l.T o w a r d s a u t o-m a t i c a l l y g e n e r a t i n g b l o c

48、k c o mm e n t s f o r c o d e s n i p p e t sJ.I n f o r m a t i o n a n d S o f t w a r e T e c h n o l o g y,2 0 2 0,1 2 7:1 0 6 3 7 3.7 L I A N G Y D,Z H U K.A u t o m a t i c g e n e r a t i o n o f t e x t d e s c r i p t i v e c o m m e n t s f o r c o d e b l o c k sJ.P r o c e e d i n g s o

49、 f t h e A A A I C o n-f e r e n c e o n A r t i f i c i a l I n t e l l i g e n c e,2 0 1 8,3 2(1):5 2 2 9-5 2 3 6.8 C A I R C,L I A N G Z H,X U B Y,e t a l.T A G:t y p e a u x i l i a r y g u i d i n g f o r c o d e c o mm e n t g e n e r a t i o nD B/O L.(2 0 2 0-0 5-0 6)2 0 2 3-0 2-2 2.h t t p s:a r x i v.o r g/a b s/2 0 0 5.0 2 8 3 5.9 S T A R O N M,K U Z N I A R Z L,WOH L I N C.E m p i r i c a l a s-s e s s m e n t o f u s i n g s t e r e o t y p e s t o i m p r o v e c o m p r e h e n s i o n o f UM L m o d e l s:a s e t o f e x p e r i m e n t sJ.J o u r n a l o f S y s t e m s a n d

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服