中文

LAMNER:使用字符语言模型与命名实体识别的代码注释生成

计算与语言 2022-04-21 v1 人工智能 软件工程

摘要

代码注释生成是为给定代码方法或函数生成高层自然语言描述的任务。尽管研究者已探索多种自动生成代码注释的方法,先前工作主要考虑以整体语义形式表示代码 token(例如,使用语言模型学习代码 token 的语义),并将代码的其他属性(如代码结构树)作为模型的辅助输入。这存在两个局限:1)以整体形式学习代码 token 可能无法简洁地捕获源代码中的信息;2)代码 token 不包含额外的句法信息,而这在编程语言中本就至关重要。本文中,我们提出 LAnguage Model and Named Entity Recognition(LAMNER),一种能够有效编码代码构造并捕获代码 token 结构属性的代码注释生成器。我们使用字符级语言模型学习语义表示以编码代码 token。对于 token 的结构属性,训练一个命名实体识别模型来学习不同类型的代码 token。这些表示随后被送入编码器-解码器架构以生成代码注释。我们在流行的 Java 数据集上用四个常用指标评估 LAMNER 及其他基线生成的注释。结果表明 LAMNER 有效,并在 BLEU-1、BLEU-2、BLEU-3、BLEU-4、ROUGE-L、METEOR 和 CIDEr 上分别比最佳基线模型提升 14.34%、18.98%、21.55%、23.00%、10.52%、1.44% 和 25.86%。此外,我们将 LAMNER 的代码表示与基线模型融合,融合模型相较未融合模型一致表现出提升。人工评估进一步表明 LAMNER 生成高质量代码注释。

关键词

引用

@article{arxiv.2204.09654,
  title  = {LAMNER: Code Comment Generation Using Character Language Model and Named Entity Recognition},
  author = {Rishab Sharma and Fuxiang Chen and Fatemeh Fard},
  journal= {arXiv preprint arXiv:2204.09654},
  year   = {2022}
}

备注

Accepted at ICPC 2022