[发明专利]一种预训练增强的代码克隆检测方法在审

专利信息
申请号: 202111283972.2 申请日: 2021-11-01
公开(公告)号: CN113986345A 公开(公告)日: 2022-01-28
发明(设计)人: 刘爽;冷林珊;田承霖 申请(专利权)人: 天津大学
主分类号: G06F8/75 分类号: G06F8/75;G06K9/62;G06N3/04;G06N3/08
代理公司: 天津市北洋有限责任专利代理事务所 12201 代理人: 刘子文
地址: 300350 天津市津南区海*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 训练 增强 代码 克隆 检测 方法
【说明书】:

发明公开一种预训练增强的代码克隆检测方法,包括以下步骤:(1)使用子词丰富方法对单词进行词向量训练,同时能对词表之外的单词进行更好地表示。(2)使用函数名预测预训练任务来获取函数片段的语义信息,减少了对有标注数据集的依赖。(3)使用少量有标注数据对克隆检测模型进行微调,以达到更好的效果。(4)通过学习代码片段的语义,从而达到更好的分类效果。

技术领域

本发明涉及代码克隆检测领域,特别是对于IV型代码克隆的检测。

背景技术

代码克隆指的是在代码语句构成上或者语义上相似的代码片段,其普遍存在于软件项目之中,尤其在有众多参与者的大规模项目中存在更多。代码克隆产生的原因有很多,主要是开发者在开发的过程中为了提高效率,包括复制粘贴已有的代码片段并进行适当的增减语句或调换语句顺序,或使用开发框架、设计模式等[1]。代码克隆检测是软件工程领域的一项重要任务,对于语义相似但语法差距较大的四型代码克隆的检测尤为困难。

代码克隆检测问题已经被广泛研究。其中较为流行的方法是从源代码和抽象语法树(AST)中提取特征,通过计算特征的相似度判断是否为克隆对。近年来,特征表示学习方法已经引起了学者们广泛的兴趣。这些方法通过获得词嵌入和复杂的神经网络结构来编码源代码或者AST,可以获得较好的检测效果。但是这些方法都使用到了大规模有标注数据集,然而获取数据集的代价对于代码克隆领域来说是巨大的,因为它需要熟练掌握不同语言的程序员进行高质量的标注,因此获得多种语言的数据集代价更大。

代码克隆没有形式化定义,不同的研究人员对克隆的判定有不同的量化方法。较为公认的标准是代码克隆可以被分为四种类型。Ⅰ型克隆表示两段代码在除了注释、布局和空格的以外完全相同。Ⅱ型克隆指的是替换用户定义的标识符,在注释、类型和布局上有变化,但语法或结构相似的代码段。这些克隆也称为参数化克隆。Ⅲ型克隆涉及代码片段对的插入和删除,经过进一步修改(如添加或删除语句)的复制片段,以及对空格、标识符、布局、注释和类型的更改。Ⅳ型克隆指的是具有相似语义但语法结构有所差异的代码片段。Ⅳ型克隆的识别在本质上与Ⅰ-Ⅲ型克隆不同,IV型克隆更偏向语义,即代码片段看上去不相似,但是都实现了相同或者相似的功能。如图1a和图1b中的两段代码所示。

具体涉及的技术如下:

1.自然语言模型Word2Vec

Word2Vec[2]模型的目的是将自然语言文本转化为神经网络所能处理的向量格式,生成的词向量用于神经网络的分类或学习等任务。主要的模型类型有词袋模型和Skip-gram模型两种。

其中,为代码片段A经过分词后的单词,Ew为查找矩阵,其在模型中是固定的,为经过模型训练后的词向量。

2.深度学习模型Long Short-Term Memory(LSTM)

LSTM是一种循环神经网络(RNN),主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题而提出的模型。相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

3.预训练

预训练模型是指利用大数据集的训练数据,先行训练出可以表示语义信息的模型,用于下游任务。在自然语言处理领域,预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习输入句子的每一个成员的上下文相关的表示,从而隐式地学习到了通用的语法语义知识。利用预训练模型可以将从开放领域学到的知识迁移到下游任务,以改善低资源任务,对低资源语言处理也非常有利。使用预训练模型+微调机制具备很好的可扩展性,在支持一个新任务时,只需要利用该任务的标注数据进行微调即可。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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