基于神经网络的代码文档自动生成技术

来源 :南京大学 | 被引量 : 0次 | 上传用户:zhouwei9471
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,软件开源使得开发者可以方便地通过分布式版本控制工具进行协作开发,但同时开发者往往会花费大量时间去理解其他开发者在同一项目上的代码贡献。为此,在分布式协作开发环境下,代码文档(如代码注释和代码提交信息文本)具有非常重要的作用。目前还没有一个完备且要求开发者必须遵守的编写文档规则,并且不同开发者有着不同的开发习惯和编码风格,所以代码文档往往存在着缺失、质量低下等问题。这将严重影响开发者的协同开发效率,甚至影响软件生态系统演化速度。本文工作致力于改进开源软件生态系统中代码文档稀缺或质量低下等问题,辅助开发者更快地理解代码意图,保证协同开发效率和软件质量。围绕Java开源软件生态系统中代码注释和Git提交文档的自动生成问题,本文的主要贡献有:(1)针对代码注释稀缺或质量低下的问题,提出了一种基于程序分析和循环神经网络的代码注释生成技术,并实现了工具Deep Propagate-NL。首先使用程序分析技术提取软件源代码中方法结构信息;接着基于JVM字节码构建调用关系图并设计约束进行注释传递;随后构建基于循环神经网络的序列到序列深度神经网络模型,将传递给调用方法的注释与代码信息同时作为训练输入,自动生成自然语言代码注释。为了评估方法有效性,从Github上收集了727个Java项目,经过注释传递后形成超过170000条数据集,在实验中与两个现有代码自动生成基线方法进行比较。实验结果显示,Deep Propagate-NL在机器翻译评估指标累计BLEU-4分数和METEOR分数为38.2%和26.4%,均高于现有基线方法。此外,实验中的人工审查工作验证了Deep Propagate-NL能生成质量较高的自然语言描述注释,相比基线方法,能更好地帮助开发人员进行代码理解。(2)针对开源软件生态系统中Git提交文档稀缺或质量等问题,提出了一种基于文件版本结构和循环神经网络的Git提交文档自动生成技术,并实现了工具Deep Commit。首先构建一个动宾模式过滤器,过滤掉提交文档中会对模型训练产生负向作用的数据;接着定义版本间代码变更的原子变更和提交事务,并基于文件差分技术提取形成提交事务文档;随后构建基于循环神经网络的序列到序列深度神经网络模型,将提交事务和提交文档作为训练输入,自动生成自然语言Git提交文档。为了评估方法有效性,从Github上收集了200个Java项目,经过过滤和提取提交事务后形成40000条数据集,在实验中与两个现有提交文档自动生成基线方法进行比较。实验结果显示,Deep Commit在机器翻译评估指标累计BLEU-4分数和METEOR分数为11.7%和9.1%,均高于现有基线方法。此外,实验中验证了基于动宾模式过滤器的有效性,案例分析表明了Deep Commit能生成质量较高的自然语言描述提交文档,相比基线方法,能更好地辅助开发人员理解代码变更。
其他文献
学位
随着中国经济的飞速发展,期货行业在社会生产中扮演越来越重要的角色。相比于国外成熟的期货市场,我国期货市场具有发展时间较短、机构户占比过少的特点。企业参与期货市场的好处是可以利用期货规避生产经营风险。在金融服务实体化的趋势下,提升机构户占比是国内期货行业未来发展的方向之一。期货机构户开户流程繁琐,同时行业性质导致期货公司对账户后续服务要求较高。笔者实习公司通过调研,明确期货公司原有系统的不足和改进的
近年来随着数字化转型不断加速,各行业都开始重视数据存储的方式。而区块链作为一种可溯源、不可篡改且去中心化的分布式数据存储架构,在全球掀起了热潮。如今以Hyperledger Fabric为代表的区块链架构已经不仅仅能够为金融领域服务,还为监管科技、支付、物流等多种行业提供了一种降低信任成本和交易成本的新途径。与此同时,智能合约作为开发人员与区块链网络交互的唯一中介,其开发方式需要得到更多的关注。然
学位
学位
工作目的:系统性红斑狼疮(SLE)是一种复杂的自身免疫性疾病,涉及多系统多器官,已经明确其发病机制由多个生物学过程及信号通路参与,但仍有空白待填充。这项研究旨在借助生信分析学探讨参与SLE发病机制的通路及多个基因之间的相互作用。方法:在GEO数据库下载了GSE24706和GSE81622两个数据集,并依靠生信分析的手段寻找SLE与健康患者之间的差异表达基因,以及通过富集分析确定这些基因参与的通路,
近年来,随着造山带学术思路、研究方法以及测试技术的逐步发展,前人对北祁连造山带和北秦岭造山带早古生代蛇绿岩、弧火山岩、基性-中酸性侵入岩体、(超)高压变质岩进行了深入的研究,对于北祁连造山带和北秦岭造山带的形成演化历史取得了进一步认识。秦岭-祁连造山带结合部位是中国南北俩大陆块群和中央造山带东西衔接的十字结合带,是当今大陆动力学研究的关键地带。秦岭-祁连造山带结合部位被新阳-元龙断裂分割为北祁连东
工业生产和日常生活带来严重的水体油污染问题,开发一种操作简便、效果良好、使用寿命长的油水分离材料具有重要意义。过滤型油水分离膜材料由于制备方便、可在室温下放大运行而受到广泛关注。静电纺丝纳米纤维膜具有相互连通的孔道、较大的孔隙率和可调控的表面结构,可应用于油水混合液及其乳化液的分离。相比于传统的膜分离材料,电纺膜的渗透通量要高出一个数量级,但是在循环使用过程中也存在抗污染性较差、耐用性较弱等问题。
在幼儿园开展劳动教育,能够帮助幼儿树立正确的劳动观念,培养劳动意识。幼儿教师要结合幼儿的年龄特点,发挥园地优势,创造劳动氛围,让幼儿在兴趣的驱动下积极参与劳动,提高劳动的活力,做到"悦"劳"越"动。由于一些家长将幼儿看作"掌中宝",很少让幼儿参加劳动,也不让幼儿做一些力所能及的事,以至于幼儿的劳动能力得不到有效提高。
期刊
重金属离子的含量过多或过少,都会对我们的生活环境、身体健康造成一定的影响。铁离子在人体中发挥着重要作用,如氧传递、电子传递和酶反应。而过量铁离子会引起严重的细胞损伤,Fe2+是Fenton反应的潜在催化剂,该反应通过产生羟基自由基而导致严重的细胞损伤。汞(Hg)是一种液态金属,一般以汞(I)和汞(II)两种离子状态存在,含有汞(Ⅰ)和汞(Ⅱ)的盐溶于水有很大的生物毒性。次氯酸(HClO)是一种活性