面向海量开源资源的代码摘要与标签自动生成技术研究

来源 :国防科技大学 | 被引量 : 0次 | 上传用户:ji5214
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,开源生态系统发展迅猛,优质的开源项目层出不穷。开源生态的迅速发展随之带来了海量的开源资源。面对如此海量的开源资源,能否有效地为开源代码提供丰富的代码描述信息,快速高效地定位代码片段,是高质开源资源复用,提高软件开发者效率,促进开源社区持续正向发展的关键性因素。然而,由于开源项目基数庞大且增加迅速、迭代频繁,开源代码结构复杂、组织无序并且缺乏规范文档,如何丰富代码片段和自然语言的关联,从而促进开源资源的复用和传播是当前面临的重大挑战。针对上述挑战,本文围绕开源代码的缺乏标注文档的问题,研究了海量开源代码数据的高效采集技术,并在获取大规模开源数据的基础上,研究了基于深度学习代码摘要和标签自动生成方法,为开源资源的复用和传播提供有力支撑。具体创新点如下1、面向GitHub社区的开源数据采集技术。开源社区蕴含着海量的开源资源,数据庞大并且迭代频繁。丰富的开源数据库是开源资源复用和软件工程科研工作者进行高效研究的关键资源。基于这样的考虑,本文利用GitHub社区提供的API接口,结合软件代码仓库协议,提出并实现了可以持续增量采集并实时更新GitHub社区数据的方法,在此基础上,为了挖掘蕴含在软件代码仓库中软件开发历史行为数据,我们通过自然语言处理方法解析软件代码仓库历史数据。通过对40000个开源代码仓库和数千开源项目数据的持续稳定采集,验证了我们方法的有效性。2、基于深度学习的代码摘要自动生成技术。开源项目由于贡献人员多,水平参差,加之缺乏代码注释,这对软件开发者快速理解和复用代码片段带来了困难,导致高质开源代码难以被有效复用。我们将软件工程经验知识与深度神经网络相结合,提出了适用于开源项目方法级别自动化代码摘要生成方法。我们利用GitHub中流行度排名前1500的Java项目,抽取了超过39万组代码片段与自然语言的对应关系。实验结果表明我们的摘要生成的准确率比当前最新工作高32.5%,验证了模型的有效性。3、面向开源资源检索的代码标签生成技术。开源生态的迅速发展给软件开发者提供海量的软件代码片段,但同时也对软件开发者通过自然语言描述查询定位代码片段带来阻碍。为了促进通过自然语言描述定位代码片段的效率,提高代码片段复用的效率,我们结合传统的TF-IDF方法和循环神经网络方法,提出针对自然语言查询语句生成代码标签的方法。我们利用GitHub中流行度排名前5000的Java开源项目,抽取70多万组自然语言—代码片段数据。实验结果表明方法在代码标签生成方面准确率高,让代码检索准确率提升17.04%,从而验证了方法的有效性。
其他文献
如今,计算机软件已经成为人们生活中不可或缺的一部分了,然而,计算机软件所面临的安全问题也随之增长,漏洞就是威胁人们隐私安全的主要原因之一。同时,由于近些年来多核体系
隐写是一种新兴的信息安全技术,它可将信息隐藏到多媒体载体中而不会引起载体的显著变化,因而常被用作秘密通信。随着网络语音通信技术的发展和普及,以网络语音作为载体的隐
近年来P2P网贷平台风险事件层出不穷,平台的风控机制和保障机制不断受到外界质疑,让投资人望而却步。平台为了增强自身信用,挽回声誉,开始探索新的模式增信。“P2P网贷平台+
目前,有机发光二极管(organic light-emitting diode,OLED)领域研究发展迅速,但是器件仍存在效率滚降和工作电压过高等方面的问题。如何解决这些问题成为了研究热点。本文采用
Patatin是一组分子量约40 k Da的马铃薯块茎专一性蛋白,通常有糖基化修饰,其含量可占到马铃薯块茎总可溶性蛋白的40%左右。Patatin启动子赋予其编码基因的块茎专一性表达,是
目的:使用肌电图仪采集兔眼轮匝肌不同位点及不同运动状态的肌电信号,并初步研究其肌电图特征。通过MATLAB软件对肌电信号进行还原,进一步研究眼轮匝肌不同位点不同运动状态
随着社会需求的增加、科技技术的进步,半导体集成电路应用于生活的方方面面,成为社会生活不可或缺的一部分。然而传统场效应晶体管受亚阈值摆幅、短沟道效应等因素的限制不再
随着互联网技术的快速发展,人们对信息容量和传输速度的要求不断提高,电子器件的性能逐渐面临瓶颈。与传统的电子技术相比,全光网络在信息的容量和数据传输速率等方面有更多
随着信息科学技术的发展,网络支付系统、云计算、物联网技术的成熟,人们对于隐私保护及信息安全的问题也越来越重视。分组密码由于其软硬件实现效率高、易于标准化等特点被广
随着通信领域的飞速发展以及人们生活水平的不断提高,人们对数据流量的需求呈现出爆炸式增长的趋势,大带宽、高速率、低时延,接入方式灵活多样等用户需求使得传统的接入网难