摘要
arXiv:2303.06808v2 宣告类型: replace-cross
摘要:最近的研究显示,源代码学习取得了显著进展,这涉及到使用深度神经网络(DNNs)来解决各种软件工程任务。正如其他基于DNN的领域一样,源代码学习也需要大量的高质量训练数据以实现这些应用的成功。数据增强,一种用于生成额外训练数据的技术,在其他领域(如计算机视觉)中被广泛应用。然而,现有的源代码学习中数据增强的做法仅限于简单的语法保留方法,例如代码重构。在本文中,考虑到源代码也可以表示为文本数据,我们采取了早期的一步来研究原本为自然语言文本设计的数据增强方法在源代码学习中的有效性。为此,我们专注于代码分类任务,并对四个关键代码问题和四个DNN架构进行了全面的经验研究,以评估25种数据增强方法的有效性。我们的研究结果揭示了适用于源代码学习的特定数据增强方法,能够生成更准确和稳健的模型。此外,我们发现即使数据增强方法稍微破坏了源代码的语法,这些方法仍然有益。