[发明专利]基于深度学习的Java程序内部注释的生成方法及系统有效
申请号: | 202110449761.5 | 申请日: | 2021-04-25 |
公开(公告)号: | CN113076133B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 陈林;汪值;李言辉 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F16/33;G06F40/289 |
代理公司: | 南京华鑫君辉专利代理有限公司 32544 | 代理人: | 王方超 |
地址: | 210000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 深度 学习 java 程序 内部 注释 生成 方法 系统 | ||
1.基于深度学习的Java程序内部注释的生成方法,其特征在于,包括如下步骤:
步骤SS1:通过从GitHub中获取Stars数排名靠前的项目,然后通过静态分析工具JDT提取Java源码中的方法信息,然后识别出对应的方法信息,提取出对应的内部注释和方法语句列表;
步骤SS2:根据注释的位置,遍历方法信息中的语句,通过位置信息和数据流信息得到注释对应的语句列表,得到:注释,目标代码对;
步骤SS3:根据注释的类型进行过滤,选择Verb-dobj形式的注释;
步骤SS4:分析方法信息内部实现的数据流信息,根据变量之间的定义使用关系,得到和目标代码段相关联的代码上下文;
步骤SS5:对注释、目标代码以及上下文进行预处理,所述预处理过程包括分词、标识符切分,单词小写化;最终处理完成得到:注释,目标代码,代码上下文组成的三元组数据集;
步骤SS6:对构建的数据集随机划分成训练集、验证集和测试集,同时构建编码器解码器网络;
步骤SS7:所述步骤SS6中划分中的训练集用于模型训练,并且通过在验证集上进行评估,得到在验证集上效果最好的模型作为目标模型;
步骤SS8:用所述步骤SS7获得的目标模型对测试集中的数据进行预测,生成预测的注释。
2.根据权利要求1所述的基于深度学习的Java程序内部注释的生成方法,其特征在于,所述步骤SS1具体包括:通过从GitHub中获取Stars数排名靠前的Java项目,得到5281个项目,下载到本地之后,通过静态分析工具JDT来提取Java方法中的信息,提取代码和注释,每个注释信息包括唯一路径、注释文本、类型、开始行、结束行,语句列表;所述唯一路径包含文件名+类名+方法名+参数名,所述类型包含行注释还是块注释,所述开始行和所述结束行包含单行注释的开始行和结束行相同。
3.根据权利要求1所述的基于深度学习的Java程序内部注释的生成方法,其特征在于,所述步骤SS2具体包括:对步骤SS1中的数据进行处理,根据注释和代码的位置与关系确定注释的目标代码;首先确定注释的初始目标语句列表为注释的下一行到以空行分割或者代码块结束的所有语句;然后通过变量的定义使用依赖、代码的语义相似性依赖、代码-注释依赖来更加精确的选择注释对应的目标语句列表;每个数据表项为:注释信息,目标语句列表,方法语句列表。
4.根据权利要求1所述的基于深度学习的Java程序内部注释的生成方法,其特征在于,所述步骤SS3具体包括:对步骤SS2中的注释进行处理,通过Stanford coreNLP工具集对注释进行磁性标注和依存分析,选择以动词开头并且包含dobj直接宾语结构的注释,进一步的去除包含的被注释的代码、技术债。
5.根据权利要求1所述的基于深度学习的Java程序内部注释的生成方法,其特征在于,所述步骤SS4具体包括:基于步骤SS3中的目标语句列表和方法语句列表,通过数据流分析,提取目标语句列表和方法语句列表中存在的变量定义使用关系与变量的使用定义关系,构建出上下文语句列表;最终每一个数据表项为:注释信息,目标语句列表,上下文语句列表。
6.根据权利要求1所述的基于深度学习的Java程序内部注释的生成方法,其特征在于,所述步骤SS5具体包括:对步骤SS4中的数据进行处理,首先对于语句中的标识符,通过驼峰式命名法进行切分,通过正则表达式设计完成标识符的处理过程;然后将Java代码通过标点符号进行切分,将代码转换为深度学习模型可以识别的单词序列;同时对由标点和空格隔开的英文注释进行分词,最后将注释以及代码转换为小写,每个数据的表现形式为:注释,目标代码,上下文代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110449761.5/1.html,转载请声明来源钻瓜专利网。