CN115756475B 一种基于序列生成对抗网络的代码注释生成方法及装置 (浙江大学)_第1页
CN115756475B 一种基于序列生成对抗网络的代码注释生成方法及装置 (浙江大学)_第2页
CN115756475B 一种基于序列生成对抗网络的代码注释生成方法及装置 (浙江大学)_第3页
CN115756475B 一种基于序列生成对抗网络的代码注释生成方法及装置 (浙江大学)_第4页
CN115756475B 一种基于序列生成对抗网络的代码注释生成方法及装置 (浙江大学)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种基于序列生成对抗网络的代码注释生本发明提出了一种基于序列生成对抗网络的代码注释生成方法及装置,通过引入强化学释生成算法生成效果有限,为了进一步提升效网络间完成损失函数梯度的传递,建立对抗关2述S1中,采用公开数据集CodeSearchNet中针对代码到文本生成任务专门清洗的数据集函数计算生成注释序列与真实注释序列的损失,并进行梯度传递优化网络;优化器使用3S4具体为:在序列生成对抗网络设计中,策略梯度是指将生成网络选择序列下一个单词token的过程看作一种选择策略,通过调整这一策略使得生成网络能够选择更贴合真实的梯度J(θ)的计算表示为:对生成过程中不完整的注释序列Y1:t(t<T),采取蒙特卡洛搜索对未生成部分的注释是判别网络给生成网络的奖励得分,其本质是判别网络认为当前注释序列为代码基于以上过程建立生成网络与判别网络之间的对抗关系,生成网择token生成注释序列,判别网络接受代码和生成注释作为输入并判断该注释序列是否为4导梯度下降的损失,生成网络完成梯度更新后再次生成新的注释序列传给判别网络做判而判别网络的更新在生成网络进行一定轮次的更新后单独进行,其原理与预训练一在调整完生成网络和判别网络的预训练阶段后,再依据BLEU_控制流图编码器的输入;生成注释的序列中最初只有标识序列开始的<bos>对应的token,此后为已选定单词的token序列,以代码序列和当前生成注释序列作为生成网络代码编码索代价更大,时间消耗更多;直到出现序列结束标识<eos>,得到生成注释;根据语料库token对应单词转换为完整英文注释序10.一种基于序列生成对抗网络的代码注释生成装置,包括存储器和一个或多个处理于实现如权利要求1_9中任一项所述的基于序列生成对抗网络的5[0001]本发明涉及代码注释生成与判别,尤其涉及一种基于编码器一解码器框架和Seq2Seq与Graph2Seq融合的代码注释生成方法,基于卷积神经网络的代码注释判别方法,和使用方式等,完备的代码注释能帮助开发者快速掌握代码实体的核心内容与核心意图,6[0011]根据本说明书的第一方面,提供一种基于序列生成对抗网络的代码注释生成方专门清洗的数据集CodeXGLUE的java数据部分,该数据集本身已划分为含164923条数据的7针对代码和注释中驼峰命名词和蛇形命名词进行拆词;清洗掉代码中包含注释内容的样构特征向量和语义特征向量后将二者融合得到最终的特征向量;解码器也采用的20忽视权重较小的80以在最大化保留特征的同时,最小化资源消耗,加快训练速网络选择序列下一个单词token的过程看作一种选择策略,通过调整这一策略使得生成网[0024]对生成过程中不完整的注释序列Y1:t(t<T),采取蒙特卡洛搜索(MonteCarlosearch)对未生成部分的注释序列进行快速选词生成,同时由于蒙特卡洛快速生成的序列8代码选择token生成注释序列,判别网络接受代码和生成注释作为输入并判断该注释序列9[0033]根据本说明书的第二方面,提供一种基于序列生成对抗网络的代码注释生成装述可执行代码时,用于实现如第一方面所述的基于序列生成对抗网络的代码注释生成方[0041]本发明使用了CodeSearchNet团队提供的专用于代码一文本生成任务的数据集[0044]第二个网络是判别网络,采用了主流的卷积神经网络(ConvolutionalNeural[0057]本发明采用Husain等人收集并处理的CodeSearchNet数据集中编程语言为Java的[0064](2)清洗掉代码中重复包含注释内容的样例,未能完全分离注释的代码会对代码[0066](4)对于字符串和数字(包括科学计数法),不同的字符串和不同的数字在代码中的单词,或为作为batch同时处理补齐不同序列的长度和标识序列生成的开始和结束的情[0069]常见的用于Seq2Seq的序列模型有RNNSearch模型和Transformer模型两种,本发明选择采用两者中被认为效果更好的Transformer模型做生成网络的语义特征学习基础模[0070]本发明在生成网络处理前先基于静态分析工具得到代码的控制流图,如图2所示的特征向量只保留其中最重要的20忽视权重较小的80以在最大化保留特征的同时,的学习进行二八处理,即保留权重最大,最重要的20抛弃权重较小可以忽略的80以1.0[0081]判别网络(Discriminator,D)主要完成判断输入数据是真实还是虚假的任务,该[0088]在序列生成对抗网络设计中,策略梯度是指将生成网络选择序列下一个单词token的过程看作一种选择策略,通过调整这一策略使得生成网络能够选择更贴合真实的略梯度J(θ)的计算可以表示为:评估,因此对生成过程中不完整的注释序列Y1:t[0096]基于以上三个公式可建立生成网络与判别网络之间的对抗关系,生成网络选择token生成注释序列,判别网络接受生成注释序列作为输入并判断该注释序列为真的概率已选定单词的token序列,以代码序列和当前生成注释序列作为生成网络代码编码器的输方法是贪心方法,即每次选择概率最大的单词,也可选择效果更好的束搜索(Beam根据语料库token对应单词转换为完整英文注释序列。供了基于序列生成对抗网络的代码注释生成装置的[0106]本发明基于序列生成对抗网络的代码注释生成装置的实施例可以应用在任意具器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而[0107]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的[0110]所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡述

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论