摘要:针对基于深度学习的重构检测方法中存在的问题,即开发人员没有一致性地记录重构操作,导致的提交信息不可靠以及语言单一性问题,提出了一种的跨语言重构检测方法RefCode。首先,采用重构收集工具从不同编程语言中收集提交信息、代码变更信息和重构类型,再通过代码变更信息生成编辑序列,将所有数据组合为数据集;然后,将CodeBERT预训练模型与BiLSTM-attention模型相结合,在数据集上进行训练和测试;最后,从六个方面对模型进行评估,以验证方法的有效性。结果表明,RefCode相较于只采用提交信息作为LSTM模型输入的重构检测方法,在精度和召回率方面均实现了约50%的显著提升。研究结果实现了跨语言重构检测,并有效弥补了提交信息不可靠的缺陷。