基于结构相对位置引导 Transformer 的源代码摘要生成
计算与语言
2022-02-15 v1 软件工程
摘要
源代码摘要旨在为编程语言生成简洁清晰的自然语言描述。撰写良好的代码摘要有助于程序员参与软件开发与维护过程。为学习源代码的语义表示,近期研究致力于将代码的语法结构融入如 Transformer 的神经网络中。此类基于 Transformer 的方法比其他包括循环神经网络(RNNs)在内的神经网络能更好地捕捉长距离依赖,然而多数未考虑词元间的结构相对关联,例如抽象语法树(ASTs)中的相对位置,而这有利于代码语义学习。为建模结构依赖,我们提出一种结构相对位置引导的 Transformer,名为 SCRIPT。SCRIPT 首先通过解析源代码的 ASTs 获得词元间的结构相对位置,然后将它们传入两类 Transformer 编码器。一种 Transformer 直接依据结构相对距离调整输入;另一种 Transformer 在计算自注意力分数时编码结构相对位置。最后,我们堆叠这两类 Transformer 编码器以学习源代码表示。实验结果表明,所提 SCRIPT 在基准数据集上相对于 SOTA 方法在 BLEU、ROUGE-L 和 METEOR 指标上分别至少高出 1.6%、1.4% 和 2.8%。我们进一步展示了所提 SCRIPT 如何捕捉结构相对依赖。
引用
@article{arxiv.2202.06521,
title = {Source Code Summarization with Structural Relative Position Guided Transformer},
author = {Zi Gong and Cuiyun Gao and Yasheng Wang and Wenchao Gu and Yun Peng and Zenglin Xu},
journal= {arXiv preprint arXiv:2202.06521},
year = {2022}
}
备注
12 pages, SANER 2022