中文

通过增加上下文提升神经代码表示

软件工程 2025-10-15 v1 人工智能

摘要

自动化程序理解是许多软件工程任务(如代码摘要生成和克隆检测)的基础。近期深度学习模型取得了强劲结果,但通常仅依赖源代码,忽略了诸如版本历史或结构关系等上下文信息。这限制了其捕捉代码如何演化和运行的方式的能力。我们对丰富代码表示所携带的上下文信号如何影响神经模型性能进行了实证研究。评估了两个下游任务:代码克隆检测和代码摘要生成,使用 SeSaMe(1,679 个 Java 方法)和 CodeSearchNet(63,259 个方法)。对五个代表性模型(CodeBERT、GraphCodeBERT、CodeT5、PLBART、ASTNN)进行微调,分别在仅代码和上下文增强设置下进行训练。结果表明,上下文通常会提升性能:版本历史在克隆检测(例如 CodeT5 提升 15.92% F1)和摘要生成(例如 GraphCodeBERT 提升 5.56% METEOR)中一致性提升,而调用图效果因模型和任务而异。组合多种上下文可进一步获得提升(最高达 +21.48% macro-F1)。对 100 段 Java 代码片段的人类评估确认,上下文增强的摘要在准确性和内容充分性方面显著受到青睐(p <= 0.026;|delta| 最高达 0.55)。这些发现凸显了上下文信号提升代码理解潜力,并为优化神经软件工程模型中的上下文编码开辟了新方向。

关键词

引用

@article{arxiv.2510.12082,
  title  = {Enhancing Neural Code Representation with Additional Context},
  author = {Huy Nguyen and Christoph Treude and Patanamon Thongtanunam},
  journal= {arXiv preprint arXiv:2510.12082},
  year   = {2025}
}

备注

34 pages, 7 figures, 11 tables