多模态代码表示及其与自然语言交互研究

来源 :浙江大学 | 被引量 : 0次 | 上传用户:schunter
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着现代计算机软件及开源社区的快速发展,软件维护与管理成为影响软件开发效率和质量的关键因素。如何从大量开源代码库中学习知识,从而提高软件开发效率和质量实现软件自动化,是当前软件工程领域的重要科学课题。目前巳有很多研究将自然语言处理技术应用到程序语言分析上并取得了一定效果,但依然面临一些困难和挑战:(1)现有方法虽然考虑了代码分词所产生的词素序列或抽象语法树等特征,但忽略了代码的控制流等图结构特征。(2)现有深度学习模型无法推断出代码不同部分对模型结果的贡献。(3)现有模型没有很好地处理代码的开放式词汇以及在代码摘要生成时候容易出现词汇外单词。
  针对以上所述困难和挑战,本文重点研究了代码表示学习、代码片段检索以及代码摘要生成等关键技术,提出了一系列自动化工具,旨在为软件开发者提供高性能自动化工具,提升软件开发效率和友好性。本文主要工作与贡献如下:
  1.针对传统方法在代码表示上只考虑了代码分词所产生的词素序列或代码抽象语法树进行表征,而忽略了代码的控制流图等图结构信息。本文调研了不同模态对代码表示的性能影响,同时提出一种多模态学习方法将代码所呈现的不同模态特征(包括代码的非结构化和结构化特征)融合到一个表示向量中,从而使得代码表示更加全面。通过在一个真实C语言数据上,设计代码片段检索和代码摘要生成等两个实际任务并展开充分的实验,结果验证了多模态表示学习在代码表示上性能有一定提升。
  2.针对传统代码片段检索方法无法体现各模态贡献度的不同,本文提出了一种基于注意力机制的多模态网络MMAN用于代码片段检索。通过在一个真实C语言数据上展开充分的实验,并和传统基线方法进行对比,结果验证了基于注意力机制的MMAN模型对代码片段检索性能有所提升,同时通过可视化不同模态所贡献的权重为MMAN提供了一个可解释性。
  3.针对传统代码摘要生成方法忽略控制流图、代码学习过程中噪声过多等问题,本文引入了一种别名感知的代码摘要生成范式,通过别名分析技术大幅度降低词汇量,并提出一种基于深度强化学习的复制一生成器网络MMRCN,实现了代码自动摘要生成, 实验结果验证了通过在一个真实C语言数据上展开充分的实验,并和传统基线方法进行对比,结果验证了MMRCN模型对代码摘要生成性能有所提升。
其他文献
随着互联网软硬件技术的不断进步,各种电子商务平台蓬勃发展,网络购物成为人们生活中不可或缺的一部分,而网络服装购物成为其中最热门的一个应用,因此如何有效的对网络服装图像进行检索至关重要。针对这一问题,跨场景服装图像检索应运而生,通过输入服装图像快速而准确地检索出所需产品,大大提高了用户的网购体验。跨场景服装检索受到了越来越多专家学者的关注,但目前仍存在很多问题,主要面临的问题包括如下几个方面:1)日
学位
蜜罐技术作为一种主动防御方式可通过诱骗攻击者达到消耗攻击资源的目的,而蜜罐自身的虚假属性面临被攻击者识别的风险,从而绕开蜜罐陷阱转而攻击真实资源。本文课题提出了一种基于区块链技术的阵列蜜罐防御方案,构建由多种服务组成的真假切换蜜罐阵列,通过不断地变换服务真伪属性迷惑攻击者,为计算机网络安全领域提供防护方案。在表象上真实资源与虚假蜜罐已自成一体,即便攻击者觉察到蜜罐的存在,若其仍保持攻击动机,将无法
学位
在高性能计算中,如何根据用户提交的任务需求,对处理核等资源进行合理的按需分配是计算机系统结构的重要研究内容。但目前,该领域还存在诸如调度目标动态性,任务约束多样化及任务对资源需求多样性等问题,这些问题已成为制约众核任务调度效率和系统效能的关键因素。因此,基于调度目标动态性、任务和资源需求多样性,有针对地提出可以支持高效的多目标优化调度算法和调度目标灵活插拔的众核任务调度体系,将有利于调度效率和系统
学位