软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2022年第5期:预训练增强的代码克隆检测技术

发布日期:

作者:冷林珊,刘爽,田承霖,窦淑洁,王赞,张梅山

单位:冷林珊,天津大学 新媒体与传播学院, 天津 30007211,刘爽,天津大学 智能与计算学部, 天津 30035002,田承霖,天津大学 智能与计算学部, 天津 30035003,窦淑洁,天津大学 智能与计算学部, 天津 30035004,王赞,天津大学 新媒体与传播学院, 天津 300072;天津大学 智能与计算学部, 天津 30035005,张梅山,天津大学 新媒体与传播学院, 天津 30007206

关键词:代码克隆;预训练;LSTM

基金:国家自然科学基金(U1836214, 61802275); 天津大学自主创新基金(2020XRG-0022)

代码克隆检测是软件工程领域的一项重要任务, 对于语义相似但语法差距较大的四型代码克隆的检测尤为困难. 基于深度学习的方法在四型代码克隆的检测上已经取得了较好的效果, 但是使用人工标注的代码克隆对进行监督学习的成本较高. 提出了两种简单有效的预训练策略来增强基于深度学习的代码克隆检测模型的代码表示, 以减少监督学习模型中对大规模训练数据集的需求. 首先, 使用ngram子词丰富对词嵌入模型进行预训练, 以增强克隆检测模型对词表之外的词的表示. 同时, 采用函数名预测作为辅助任务对克隆检测模型参数进行预训练. 通过这两个预训练策略, 可以得到一个有更准确的代码表示能力的模型, 模型被用来作为克隆检测中的代码表示模型并在克隆检测任务上进行有监督训练. 在标准数据集BigCloneBench (BCB)和OJClone上进行实验. 结果表明采用两种预训练增强的模型仅仅使用极少量的训练样例(BCB上100个克隆对和100个非克隆对, OJClone上200个克隆对和200个非克隆对)就能达到现有方法使用超过6百万个训练样例得到的结果.

来源:2022年第5期

《软件学报》期刊编辑部

查看软件学报杂志2022年第5期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员