[发明专利]一种基于代码更改关键类判定的代码提交注释预测方法有效
申请号: | 201911167191.X | 申请日: | 2019-11-25 |
公开(公告)号: | CN110908709B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 郑子彬;时福源;陈湘萍;李全忠 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F16/35 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 代码 更改 关键 判定 提交 注释 预测 方法 | ||
1.一种基于代码更改关键类判定的代码提交注释预测方法,其特征在于,包括:
S10输入代码提交数据,从代码提交数据中修改前的代码、修改后的代码与代码修改内容中提取代码实体间结构耦合特征作为代码结构特征;
S20从代码更改内容中获取代码修改特征;
S30对代码修改内容进行分类标注,将代码核心的修改内容标注为代码更改关键类,将为了完成核心修改所进行的依赖性改动内容标注为代码更改非关键类;
S40将代码结构特征、代码修改特征及分类标注输入机器学习框架LightGBM训练,获取判别代码更改关键类与代码更改非关键类的最优模型作为代码更改关键类预测模型;
S50筛选出具有书写规范且具有准确表达代码更改内容的注释信息的代码输入代码更改关键类预测模型,获取代码更改内容的代码更改关键类或代码更改非关键类;
S60将代码更改内容的代码更改关键类输入深度学习框架分词、编码、解码并分类处理,获得代码更改关键类的概率矩阵,并以其与代码的提交注释的均方误差作为损失函数进行训练,以均方误差最小的深度学习框架为提交注释预测模型;
S70将待预测的代码数据输入训练好的提交注释预测模型获取代码注释的预测结果。
2.如权利要求1所述的基于代码更改关键类判定的代码提交注释预测方法,其特征在于,所述S10的具体步骤为:
S101定义提交修改中当前实体引用其他实体的次数为入度,提交修改中其他实体引用当前实体的次数为出度;
S102将代码提交数据分类整理为修改前的代码、修改后的代码、代码修改内容;
S103以分类后的修改前的代码、修改后的代码、代码修改内容为不同的代码实体,提取代码实体间结构的耦合特征。
3.如权利要求2所述的基于代码更改关键类判定的代码提交注释预测方法,其特征在于,所述耦合特征包括:表示修改提交的类与类平均入度的特征CF1、表示修改提交的类与类入度总和的特征CF2、表示修改提交的类与类平均出度的特征CF3、表示修改提交的类与类出度总和的特征CF4、表示修改提交的方法与类平均入度的特征CF5、表示修改提交的方法与类入度总和的特征CF6、表示修改提交的方法与属性平均入度的特征CF7、表示修改提交的方法与属性入度总和的特征CF8、表示修改提交的方法与方法平均入度的特征CF9、表示修改提交的方法与方法入度总和的特征CF10、表示修改提交的方法与方法平均出度的特征CF11、表示修改提交的方法与方法出度总和的特征CF12。
4.如权利要求1所述的基于代码更改关键类判定的代码提交注释预测方法,其特征在于,所述代码修改特征包括:表示新增代码行数的特征MF1、表示修改代码行数的特征MF2、表示删除代码行数的特征MF3、表示新增类数量的特征MF4、表示修改类数量的特征MF5、表示删除类数量的特征MF6、表示重命名类数量的特征MF7、表示新增方法数量的特征MF8、表示删除方法数量的特征MF9、表示重命名方法数量的特征MF1、表示变更返回类型方法数量的特征MF11、表示参数类型变更数量的特征MF12、表示参数名变更数量的特征MF13、表示新增参数数量的特征MF14、表示删除参数数量的特征MF15、表示属性名变更数量的特征MF16、表示属性类型变更数量的特征MF17、表示条件表达式变更数量的特征MF18。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911167191.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:器件测试方法、装置及电子设备
- 下一篇:车用控制器热测试系统及方法