[发明专利]一种基于机器翻译模型的代码注释生成方法有效
申请号: | 201911133186.7 | 申请日: | 2019-11-18 |
公开(公告)号: | CN111090461B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 郑子彬;马蒙蒙;周晓聪 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F40/58;G06F40/242;G06N3/0442;G06N3/0455 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 机器翻译 模型 代码 注释 生成 方法 | ||
本发明公开一种基于机器翻译模型的代码注释生成方法,将所获取含注释的代码语料库划分为源代码方法序列语料库和对应的源代码注释语料库;将源代码注释语料库中源代码注释作输入seq2seq模型;提取源代码方法序列生成抽象语法树,将节点的标识符替换为节点类别且结构化遍历得到保留结构信息的序列输入seq2seq模型;将结构信息输入编码层生成隐含状态序列和结构信息的编码输出并输入注意力机制层,根据隐含状态序列和结构信息的编码输出之间匹配程度计算上下文向量;将结构信息的编码输出和上下文向量输入解码层,并计算训练样本目标的序列概率分布;由源代码注释和序列概率分布生成基于序列机器翻译模型。
技术领域
本发明涉及软件开发领域,尤其涉及一种基于机器翻译模型的代码注释生成方法。
背景技术
随着互联网时代不断发展,其涉及领域逐渐繁多,应用于之上的各类平台软件体系愈加庞大,给后期软件维护人员的维护工作增加了纷繁复杂的困难。在软件工程中,阅读代码是一项基本任务,而通常来说,软件维护人员通常不是原始开发人员,且人员流动导致开发人员不得不接管不熟悉的软件代码,同时在代码审查中也需要处理大量不熟悉的源代码。另有研究表明,在企业大型应用开发中,开发人员阅读代码的时间往往比编写代码所需的时间更多。这时,代码注释可以在此问题上提供帮助。
在源代码中,编写完整的代码注释可以大大提高代码的可读性;阅读代码注释可以使人更快理解代码,节省理解代码的时间,大大提高工作效率。但同时,编写良好注释的习惯由于既繁琐又耗时往往被程序人员所忽视。自动化生成代码注释的方法亟需提上日程。
近年来,机器学习和深度学习的广泛应用,给了自动化方法生成代码注释带来新的挑战和机遇,成为一个可以解决自动生成代码注释问题的良好契机。本文即研究使用自然语言处理领域的机器翻译模型训练源代码特征来生成代码注释的方法。
早期的代码注释生成方式很大程度上依赖相关人员工作技能经验的先验知识,直接阅读代码进行静态分析或者考虑程序运行过程中输入输出关系等来进行动态分析标注。但随着程序规模的逐渐庞大,传统方式依赖人力即耗时又费力且效率低下。研究使用深度学习方式自动生成代码注释,将源代码内容的特征数据进行训练提取代码特征,可以自动化充分挖掘代码隐含语义,提高程序理解的效率。
目前代码注释生成方法主要有两种思路。
一种是使用IR方法为类和方法生成注释,常见的模型由空间模型(VSM)和潜在语义索引(LSI),以从类似的代码片段中搜索注释。这种方法的限制在于当变量标识符和方法名称命名不当时,很难从中提取准确的关键字,并且他们比较依赖于代码库中相似代码片段的相似程度。
另外一种方式是将问题抽象为自然语言处理领域中的机器翻译问题,使用解决机器翻译问题的方法来生成相关学习模型。使用的模型一般是处理序列问题的深度学习模型,从开始的循环神经网络(recurrent neural network,RNN)和长短时记忆网络(longshort term memory,LSTM),增加注意力(attention)机制,到后来使用序列到序列(Seq2seq)模型。通过对模型使用大量数据集训练构建大规模源代码的概率模型,不同于IR方式使用关键词合成注释,此种方法直接从代码中自动提取丰富特征生成相应代码注释。
RNN通过增加隐藏层中结点连接引入循环机制处理序列相关问题,适用于处理较长序列情形。基于RNN及其变体LSTM可用于对程序语言建模以获得代码序列的特征向量表示。注意力转移机制使得神经网络在生成当前输出时动态关注输入中与其更加相关的内容,在输入较长的情况下也能减轻对于长序列的记忆负担,有效提高模型性能。Seq2seq模型用于对输入输出序列进行映射建模,它包含解码器和编码器,编码器将输入序列转化为特征向量,解码器则根据该向量生成输出序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911133186.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种热偶生产绝缘套保护管切割装置
- 下一篇:一种显示方法及电子设备