基于注意力机制的Graph2Seq代码摘要模型研究
发布时间:2022-02-10 00:24
代码摘要是代码功能的自然语言描述,高质量的摘要能够有效帮助代码的理解和软件的维护工作,代码摘要一直是软件开发中重要的组成部分。然而,在软件工程中,代码缺少摘要导致代码维护工作困难是困扰工业界已久的问题,因此研究如何通过代码自动生成对应的代码摘要具有非常大的研究意义和应用价值。在代码摘要的研究中,我们的主要工作是尝试解决两个问题:问题1,代码是一种强结构化的语言,这和弱结构化的自然语言十分不同,如何充分利用代码的结构化语义信息是代码摘要任务的关键问题;问题2,代码中的变量名,方法名等单词是一种开放性的单词,常规的自然语言处理方法(如使用代替低频词)会导致大量的词典外单词的问题。在本论文中,我们对现阶段有关自然语言处理和代码摘要的相关工作进行研究,提出了基于注意力机制的Graph2Seq代码摘要模型。论文的主要贡献点在于,1.为了克服现有的关于基于抽象语法树遍历的代码摘要模型存在的问题,本文提出了一种基于注意力机制的Tree2Seq代码摘要改进模型。2.在此基础上,本文参考当前关于代码和图深度学习的相关研究,在代码的抽象语法树上增加数据流等语义信息,将代码进一步拓展成代码图(Code Gr...
【文章来源】:浙江大学浙江省211工程院校985工程院校教育部直属院校
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
图1-1自动生成代码摘要流程图??
是通过假设所有变量名都是符合驼峰命名法(CamelCase),然后根据驼峰命??名法的规则将变量名拆分开,但是这个假设的应用场景十分有限,在实际的代码??中并不能保证所有的变量名都符号驼峰命名法。模型结构如图1-3所示:?????r?■;??■?\?I?I??思想向1?思想向量?思想向薆?!??S?S?S?i??编码器???审查1?+?审查2?+?审查3???解码器??I?— ̄i—"?— ̄i— ̄?牛??:?」?」?」??注意力机制??图1-3审查网络结构示意图??6??
?连结??图2-1含隐藏状态的循环神经网络??如图2-1所示,给定一个单词序列丨3^丨,每个单词都对应着一个[??维的向量表示x,。RNN在任何一个时间步r都会输出一个隐藏向量/7,,可以看做??是前/个单词的向量表示。/7,是使用函数g获得的,该函数g的输入是前一时刻的??隐藏向量以及当前时刻的单词向量x,:??乃,=容("—丨,乂)?(2.1)??函数g可以表示为:??g(/U,x,)?=?cr(fV/,/,-hl_l+lV,,.xl)?(2.2)??10??
【参考文献】:
期刊论文
[1]基于深度学习的代码分析研究综述[J]. 张峰逸,彭鑫,陈驰,赵文耘. 计算机应用与软件. 2018(06)
本文编号:3617912
【文章来源】:浙江大学浙江省211工程院校985工程院校教育部直属院校
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
图1-1自动生成代码摘要流程图??
是通过假设所有变量名都是符合驼峰命名法(CamelCase),然后根据驼峰命??名法的规则将变量名拆分开,但是这个假设的应用场景十分有限,在实际的代码??中并不能保证所有的变量名都符号驼峰命名法。模型结构如图1-3所示:?????r?■;??■?\?I?I??思想向1?思想向量?思想向薆?!??S?S?S?i??编码器???审查1?+?审查2?+?审查3???解码器??I?— ̄i—"?— ̄i— ̄?牛??:?」?」?」??注意力机制??图1-3审查网络结构示意图??6??
?连结??图2-1含隐藏状态的循环神经网络??如图2-1所示,给定一个单词序列丨3^丨,每个单词都对应着一个[??维的向量表示x,。RNN在任何一个时间步r都会输出一个隐藏向量/7,,可以看做??是前/个单词的向量表示。/7,是使用函数g获得的,该函数g的输入是前一时刻的??隐藏向量以及当前时刻的单词向量x,:??乃,=容("—丨,乂)?(2.1)??函数g可以表示为:??g(/U,x,)?=?cr(fV/,/,-hl_l+lV,,.xl)?(2.2)??10??
【参考文献】:
期刊论文
[1]基于深度学习的代码分析研究综述[J]. 张峰逸,彭鑫,陈驰,赵文耘. 计算机应用与软件. 2018(06)
本文编号:3617912
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3617912.html