[发明专利]一种基于最近邻算法的代码变更日志自动生成方法有效

专利信息
申请号: 201910967684.5 申请日: 2019-10-12
公开(公告)号: CN111090460B 公开(公告)日: 2021-05-04
发明(设计)人: 蔡亮;张洋;鄢萌;刘忠鑫;夏鑫;李善平;王新宇 申请(专利权)人: 浙江大学
主分类号: G06F8/73 分类号: G06F8/73
代理公司: 杭州求是专利事务所有限公司 33200 代理人: 邱启旺
地址: 310058 浙江*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 近邻 算法 代码 变更 日志 自动 生成 方法
【说明书】:

发明公开了一种基于最近邻算法的代码变更日志自动生成方法,属于代码变更日志自动生成领域。该方法包括:输入数据的预处理、训练集数据预处理、通过词袋模型获取词频向量对的集合、通过KNN算法计算候选中间结果、计算BLEU‑4值,最终获得输出结果。该方法具有模型结构简单,解释性强,模型不需要训练,实际运行时间较NMT大大缩减,对噪声不敏感,鲁棒性强的特点。

技术领域

本发明属于代码变更日志自动生成领域,具体地涉及一种基于最近邻算法 的代码变更日志自动生成方法。

背景技术

目前,代码变更日志的技术已被广泛研究。DeltaDoc是将源代码的变更作为 输入,通过符号执行的方法来获得路径谓词,然后使用一组预定义的规则和转换 生成提交消息。ChangeScribe首先通过分析相应的源代码的变更和抽象语法树, 以提取必要信息。然后它用提取的信息填充预定义的模板来作为本次提交的日志。 NMT则首先将深度神经网络运用到其该领域,其做法是使用神经机器翻译算法 自动从源码中生成精简的代码变更日志。

但是目前代码克隆检测工具中普遍存在以下问题:

(1)模型结构复杂,缺乏可解释性;

(2)模型训练和运行时间花费大;

(3)对噪声敏感,鲁棒性不强。

发明内容

本发明的对现有技术进行改进的目的,提供一种基于最近邻算法的代码变 更日志自动生成方法。

本发明是通过以下技术方案实现的:一种基于最近邻算法的代码变更日志自动生成方法,具体包括以下步骤:

步骤一:输入数据的预处理:每一个原始数据的提交都对应于一个diff文件, 所述diff文件通过Git原生命令git diff获得,所述diff文件保存工作区中的当 前文件和历史版本文件的差异内容。

步骤二:训练集数据预处理:对步骤一所得diff文件进行训练,所述diff文 件中包含工程的commit对,通过正则表达式过滤掉所述diff文件中的由集成开 发工具自动生成的冗余信息的commit对或者缺失信息的commit对,最终获得 训练集数据。每个commit对由diff文件和与之对应的commit message组成。

步骤三:通过词袋模型获取词频向量对的集合:将待生成日志diff文件通过 词袋模型建立所述diff文件的词频向量对的集合。所述词频向量对表示为d,ti, 其中d表示diff文件生成的词向量,ti表示训练集中第i个数据对应的词向量; 词向量的维度记为n,diff文件的词汇表集合记为D,第i个数据对应词词频向量 对的集合记为Ti,n=|D∪Ti|。

步骤四:KNN算法计算候选中间结果:对步骤三中获得的词频向量对的集 合分别做余弦相似度计算,获得相似度值,将相似度值最大的5个词频向量对作 为候选中间结果:

其中,为ti向量的第j个分量,dj为diff文件生成的词向量的第j个分量。

步骤五:计算BLEU-4值:对步骤四中得到的候选中间结果所对应的词频向 量对d,ti,分别计算BLEU-4值,将其中BLEU-4值最大的词频向量对所对应 的commit message文件作为最终的结果输出。

进一步地,步骤5中所述BLEU-4值的计算方法如下:

首先计算修正的n个连续的单词片段精确度,对于任意的n,所述单词片段 精确度通过以下计算得到:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910967684.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top