全网唯一标准王
(19)中华 人民共和国 国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111682428.5 (22)申请日 2021.12.3 0 (71)申请人 中山大学 地址 510275 广东省广州市新港西路13 5号 (72)发明人 何坤宁 陈湘萍 黄袁 周晓聪  郑子彬  (74)专利代理 机构 北京集佳知识产权代理有限 公司 11227 代理人 彭祯奇 (51)Int.Cl. G06F 8/73(2018.01) G06F 40/169(2020.01) G06N 3/04(2006.01) G06N 3/08(2006.01) (54)发明名称 一种代码注释生成方法及装置 (57)摘要 本申请公开一种代码注释生成方法及 装置, 本申请通过 获取第一项目的源代码, 将源代码编 译成字节码, 根据字节码生成控制流程图, 将字 节码及控制流程图输入注释翻译模 型, 得到注释 翻译模型输出的源代码的注释 。 本申请方案通过 将第二项目的源代码转化成字节码和控制流程 图, 并通过第二项目的字节码和控制流程图训练 注释翻译模 型, 得到注释翻译模 型输出的第二项 目的源代码的注释, 相比于现有技术, 由于第二 项目和第一项目的源代码的字节码具有相似性, 可以利用第二项目的训练数据训练注释翻译模 型, 得到的注释翻译模型可以供具有相似字节码 的第一项目使用, 降低了注释翻译模 型的学习成 本。 权利要求书2页 说明书9页 附图2页 CN 114296792 A 2022.04.08 CN 114296792 A 1.一种代码注释生成方法, 其特 征在于, 包括: 获取第一项目的源代码; 将所述源代码编译成字节码; 根据所述字节码生成控制流 程图; 将所述字节码及所述控制流程图输入注释翻译模型, 得到所述注释翻译模型输出的所 述源代码的注释; 所述注释翻译模型, 以第 二项目的字节码及所述第 二项目的字节码的控制流程图作为 训练样本, 以第二项目的源代码的注释为训练标签训练得到 。 2.根据权利要求1所述的方法, 其特征在于, 所述注释翻译模型包括位置编码层、 编码 器、 解码器、 全连接层和GRU编码层; 所述注释翻译模型的训练过程, 包括: 通过位置编码层, 对获取的所述样本字节码及所述样本控制流程图进行位置编码, 得 到语言序列; 通过编码器, 对所述样本 字节码进行处 理得到编码特 征; 通过解码器, 根据所述语言序列生成与所述编码特 征对应的解码结果; 通过GRU编码层, 对所述样本控制流 程图进行处 理得到特 征向量; 通过全连接层, 根据所述 解码结果和所述特 征向量, 生成所述注释; 利用损失函数对生成的所述注释, 与所述样本字节码及样本控制流程图对应的注释标 签的差值进行计算, 得到翻译损失值; 根据所述翻译损失值, 更新注释翻译模型的参数。 3.根据权利要求2所述的方法, 其特征在于, 所述根据所述解码结果和所述特征向量, 生成所述注释, 包括: 基于预设词汇 表, 利用如下公式预测生成所述注释中的各个单词: P({yi|y1,..,yi‑1},xc,xv)=softmax(W*Concat(Transformer{y1,..,yi‑1},xc),GRU (xv))+b) 其中, P表示预测下一个单词是yi的概率, yi代表生成解码结果中的第i个单词, {y1,.., yi‑1}表示解码结果, xc表示字节码, xv表示控制流图, W表示全连接层的权重矩阵, b表示全连 接层的偏置矩阵, G RU(xv)表示控制流程图的特征向量, softmax作为激活函数, Pi'表示加入 了标签平 滑参数的P, K表示预设词汇 表中的单词总数, 为预设参数。 4.根据权利要求3所述的方法, 其特 征在于, 所述损失函数, 包括: 其中, L表示损失函数。 5.根据权利要求1所述的方法, 其特征在于, 所述根据所述字节码生成控制流程图, 包 括: 将所述字节码反编译为 三地址码; 将所述三地址码划分为多个 基本块并按字节码的书 写顺序连接, 生成控制流 程图。权 利 要 求 书 1/2 页 2 CN 114296792 A 26.根据权利要求2所述的方法, 其特征在于, 在所述注释翻译模型的训练过程之前, 还 包括: 对所述样本 字节码和所述注释进行 预处理, 得到新的样本 字节码和新的注释; 将所述新的样本 字节码和控制流 程图作为训练样本, 新的注释作为训练标签。 7.根据权利要求6所述的方法, 其特征在于, 对所述样本字节码和所述注释进行预处 理, 得到新的样本 字节码和新的注释, 包括: 获取本地变量表, 所述本地变量表为保存在本地的记录有用户注释习惯的变量的表; 对所述样本 字节码的字节码Code区进行除杂处 理, 得到除杂后的字节码Code区; 将所述除杂后的字节码Code区与所述本地变量表结合, 得到新的样本 字节码; 将所述注释通过 预设分隔规则, 分割得到多个单词; 将所述单词的形态转换为预设形态, 得到预设形态的单词, 并组成得到新的注释。 8.根据权利要求7所述的方法, 其特征在于, 在将所述单词的形态转换为预设形态, 得 到预设形态的单词, 并组成新的注释之后, 还 包括: 对所述新的样本字节码和新的注释进行去重, 得到去重后的新的样本字节码和新的注 释。 9.一种代码注释生成装置, 其特 征在于, 包括: 源代码获取 单元, 用于获取第一项目的源代码; 字节码编译单 元, 用于将所述源代码编译成字节码; 控制流程图生成单 元, 用于根据所述字节码生成控制流 程图; 模型输出单元, 用于将所述字节码及所述控制流程图输入注释翻译模型, 得到所述注 释翻译模型输出的所述源代码的注释; 所述注释翻译模型, 以第 二项目的字节码及所述第 二项目的字节码的控制流程图作为 训练样本, 以第二项目的源代码的注释为训练标签训练得到 。 10.根据权利要求9所述的方法, 其特 征在于, 所述控制流 程图生成单 元, 包括: 第一控制流 程图生成子单 元, 用于将所述字节码反编译为 三地址码; 第二控制流程图生成子单元, 用于将所述三地址码划分为多个基本块并按字节码的书 写顺序连接, 生成控制流 程图。权 利 要 求 书 2/2 页 3 CN 114296792 A 3

.PDF文档 专利 一种代码注释生成方法及装置

文档预览
中文文档 14 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种代码注释生成方法及装置 第 1 页 专利 一种代码注释生成方法及装置 第 2 页 专利 一种代码注释生成方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 21:46:41上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。