又一种 IR 与神经网络相结合的代码注释生成方法
软件工程
2021-07-28 v1
摘要
代码注释生成技术旨在为源代码生成自然语言描述。该任务有两类正交的方法,即基于信息检索(IR)的方法与基于神经网络的方法。近期研究聚焦于通过将以 IR 为基础的方法检索到的输入代码及其相似代码片段输入基于神经网络的方法,从而结合二者优势,这能增强基于神经网络的方法输出低频词的能力并进一步提升性能。然而,尽管进展巨大,我们的初步研究揭示当前的结合方式缺乏泛化性并可能导致性能下降。本文中,我们提出一种直截了当但有效的方法来解决现有两类注释生成方法结合的缺陷。我们不以静态方式绑定 IR 与神经网络方法,而是以动态方式结合它们。具体而言,给定输入代码片段,我们首先使用基于 IR 的技术从语料中检索相似代码片段。随后我们使用基于 Cross-Encoder 的分类器动态决定所用的注释生成方法,即若检索到的相似代码片段为真阳性(即与输入语义相似),则直接使用基于 IR 的技术。否则,我们将输入传给基于神经网络的模型以生成注释。我们在大规模 Java 项目数据集上评估了我们的方法。实验结果显示我们的方法取得了 25.45 的 BLEU 分数,相较最先进的基于 IR 的方法、基于神经网络的方法及其结合分别提升了 41%、26% 和 7%。我们提出了一种直截了当但有效的基于 IR 与神经网络动态结合的注释生成方法,其以显著优势超越最先进的方法。
引用
@article{arxiv.2107.12938,
title = {Yet Another Combination of IR- and Neural-based Comment Generation},
author = {Huang Yuchao and Wei Moshi and Wang Song and Wang Junjie and Wang Qing},
journal= {arXiv preprint arXiv:2107.12938},
year = {2021}
}