基于门控卷积神经网络的代码自动摘要算法
发布时间:2021-09-07 19:02
随着互联网技术的发展和开源社区的兴起,开源代码的数量急剧增加,从开源社区中发掘出有用信息需要耗费大量的时间和精力。自动摘要技术广泛地应用于文本主要内容的获取,但针对代码的相关技术研究较少。本文使用深度学习思想解决这一问题,利用卷积神经网络(Convolutional Neural Networks,CNN)模型提取代码特征,从而缓解信息爆炸带给人们的时间精力问题。本文对代码自动摘要问题进行了分析,将问题拆分为代码特征提取和摘要自动生成两个子问题,结合深度学习中端到端的模型设计思想,在设计模型时综合考虑这两个问题,提出了一种基于深度学习的代码自动摘要模型。本文首先对代码特征提取问题进行了研究,本文使用门控卷积神经网络提取代码的文本特征,在门控卷积神经网络中,对输入元素添加位置信息以获取序列中词的位置,引入门控线性单元使模型可以选择对预测有益的词或者特征,利用残差连接解决梯度弥散问题。本文使用抽象语法树卷积神经网络提取代码的结构特征,在抽象语法树卷积神经网络中,使用Tree-Based CNN和Pre-Order CNN相结合的方式,获取语法树中节点的完整信息。本文其次对摘要自动生成问题进...
【文章来源】:云南大学云南省 211工程院校
【文章页数】:58 页
【学位级别】:硕士
【部分图文】:
图2-2:门控卷积神经网络模型结构图??资料来源:FAIR:《Language?Modeling?with?Gated?Convolutional?Networks》,2016?年
?(2.2)??其中,P为每个词对应的概率,g为Softmax函数。??Google团队[3Q1提出了?Seq2Seq模型的改进模型,其模型结构如图2-4所示。??W?X?Y?Z?<EOS>??;k?h?“?>?^?A???^?^?^??>????????A?“?i?v?“?“?“?i?[??ABC?<EOS>?W?X?Y?Z??图2_4:?Seq2Seq改进模型结构图??资料来源:Google?Brain:《Sequence?to?Sequence?Learning?with?Neural?Networks》,2014?年。??图2-4为在时间维度上进行展开的模型图,在未展开的情况下,Encoder端??使用一个神经网络接收输入序列“AB?CEOS(EOS=EndofSentence,句末标记)”,??在接收过程中,每隔一个时间点接收一个字或者词,在读取到EOS时停止输入,??最后输出一个向量作为输入序列的语义表征向量。Decoder端使用第二个神经网??络接收到Encoder端产生的输出向量后,再输出对应的语义向量,此时每个时间??点输出词的概率都与前一个时间点的输出相关,最后将输入序列依次映射为“W??X?Y?Z?EOS”,从而实现语句的翻译任务。??2.2.2?注意力机制(Attention?Mechanism)??注意力机制(AttentionMechanism)最早被提出是在视觉图像领域。之后由??于Google?Brain团队157]在RNN模型的基础上引入了注意力机制来完成图像分类??任务
?0.1??图2-7:?Beam?Search算法示例图??以图2-7为例,K的值为2,?K为集束宽度(Beam?Width)。??首先,在[0.1,0.1,0.3,0.4,0.1]概率分布中挑选出概率最大的两个数值:0.3和??0.4,代表的序列分别为Je和moi。??然后,将Je和moi分别作为解码器端的输入,获得两个概率分布,再从得??到的两个概率分布中选择概率和最大的组成序列:0.3+0.8和0.4+0.6,代表的序??列分别为Je?suis和moi?suis。??以此类推,得到最终的两个序列,分别为Je?suis?dtudiant和moi?suis?dtudiant,??两者相比,前者的概率和最大,即为最终结果。??2.2.4?双语互译质量辅助工具算法(BLEU)??在机器翻译领域当中,需要一个用来衡量机器翻译结果与人工翻译结果匹配??度的指标。为了能够获取更好的效果
【参考文献】:
期刊论文
[1]基于结构感知双编码器的代码注释自动生成[J]. 徐少峰,潘文韬,熊赟,朱扬勇. 计算机工程. 2020(02)
[2]基于改进Sequence-to-Sequence模型的文本摘要生成方法[J]. 周健,田萱,崔晓晖. 计算机工程与应用. 2019(01)
[3]一种改进的基于抽象语法树的软件源代码比对算法[J]. 刘楠,韩丽芳,夏坤峰,曲通. 信息网络安全. 2014(01)
[4]一个重建GCC抽象语法树的方法[J]. 刘文伟,刘坚. 计算机工程与应用. 2004(18)
硕士论文
[1]基于抽象语法树的程序代码抄袭检测技术研究[D]. 赵彦博.内蒙古师范大学 2010
本文编号:3390085
【文章来源】:云南大学云南省 211工程院校
【文章页数】:58 页
【学位级别】:硕士
【部分图文】:
图2-2:门控卷积神经网络模型结构图??资料来源:FAIR:《Language?Modeling?with?Gated?Convolutional?Networks》,2016?年
?(2.2)??其中,P为每个词对应的概率,g为Softmax函数。??Google团队[3Q1提出了?Seq2Seq模型的改进模型,其模型结构如图2-4所示。??W?X?Y?Z?<EOS>??;k?h?“?>?^?A???^?^?^??>????????A?“?i?v?“?“?“?i?[??ABC?<EOS>?W?X?Y?Z??图2_4:?Seq2Seq改进模型结构图??资料来源:Google?Brain:《Sequence?to?Sequence?Learning?with?Neural?Networks》,2014?年。??图2-4为在时间维度上进行展开的模型图,在未展开的情况下,Encoder端??使用一个神经网络接收输入序列“AB?CEOS(EOS=EndofSentence,句末标记)”,??在接收过程中,每隔一个时间点接收一个字或者词,在读取到EOS时停止输入,??最后输出一个向量作为输入序列的语义表征向量。Decoder端使用第二个神经网??络接收到Encoder端产生的输出向量后,再输出对应的语义向量,此时每个时间??点输出词的概率都与前一个时间点的输出相关,最后将输入序列依次映射为“W??X?Y?Z?EOS”,从而实现语句的翻译任务。??2.2.2?注意力机制(Attention?Mechanism)??注意力机制(AttentionMechanism)最早被提出是在视觉图像领域。之后由??于Google?Brain团队157]在RNN模型的基础上引入了注意力机制来完成图像分类??任务
?0.1??图2-7:?Beam?Search算法示例图??以图2-7为例,K的值为2,?K为集束宽度(Beam?Width)。??首先,在[0.1,0.1,0.3,0.4,0.1]概率分布中挑选出概率最大的两个数值:0.3和??0.4,代表的序列分别为Je和moi。??然后,将Je和moi分别作为解码器端的输入,获得两个概率分布,再从得??到的两个概率分布中选择概率和最大的组成序列:0.3+0.8和0.4+0.6,代表的序??列分别为Je?suis和moi?suis。??以此类推,得到最终的两个序列,分别为Je?suis?dtudiant和moi?suis?dtudiant,??两者相比,前者的概率和最大,即为最终结果。??2.2.4?双语互译质量辅助工具算法(BLEU)??在机器翻译领域当中,需要一个用来衡量机器翻译结果与人工翻译结果匹配??度的指标。为了能够获取更好的效果
【参考文献】:
期刊论文
[1]基于结构感知双编码器的代码注释自动生成[J]. 徐少峰,潘文韬,熊赟,朱扬勇. 计算机工程. 2020(02)
[2]基于改进Sequence-to-Sequence模型的文本摘要生成方法[J]. 周健,田萱,崔晓晖. 计算机工程与应用. 2019(01)
[3]一种改进的基于抽象语法树的软件源代码比对算法[J]. 刘楠,韩丽芳,夏坤峰,曲通. 信息网络安全. 2014(01)
[4]一个重建GCC抽象语法树的方法[J]. 刘文伟,刘坚. 计算机工程与应用. 2004(18)
硕士论文
[1]基于抽象语法树的程序代码抄袭检测技术研究[D]. 赵彦博.内蒙古师范大学 2010
本文编号:3390085
本文链接:https://www.wllwen.com/kejilunwen/zidonghuakongzhilunwen/3390085.html