摘要

生成任务旨在实现全自动化地产生自然语言描述源代码的功能,使其便于软件维护和程序理解。目前,主流的基于Transformer的方法只考虑源代码的文本和结构化语义特征,忽略了与源代码密切相关的API文档等外部语义特征;其次,在使用大规模数据的情况下,由于Transformer结构的自注意力模块需要计算所有相似度分数,因此存在计算成本高和内存占用量大的问题。为解决以上问题,该文提出了一种基于改进Transformer结构的融合多种语义特征的代码摘要生成方法。该方法采用三个独立编码器充分学习源代码的多种语义特征(文本、结构和外部API文档),并使用非参数化傅里叶变换替代编码器中的自注意力层,通过线性变换降低使用Transformer结构的计算时间和内存占用量,在公开数据集上的实验结果证明了该方法的有效性。