中文

利用深度学习检测冗余方法注释

软件工程 2018-06-13 v1 计算与语言

摘要

软件中的注释对维护与复用至关重要。但除规范性建议外,关于何种注释有用缺乏实际支持或量化理解。本文中,我们引入识别对其旨在文档化的代码无信息注释的任务。为解决此问题,我们引入代码注释蕴涵的概念,高蕴涵表明注释的自然语言语义可直接由代码推断。尽管并非所有被蕴涵的注释均为低质量,但过于易被推断的注释,例如复述代码的注释,被广泛由软件风格权威所不提倡。基于此,我们开发了名为 CRAIC 的工具,其对方法级注释的冗余性评分。高度冗余的注释随后可由开发者扩充或删除。CRAIC 使用深度语言模型利用大型软件语料库,无需昂贵的蕴涵人工标注。我们展示 CRAIC 能以与人类判断良好一致执行注释蕴涵任务。我们的发现亦对文档化工具有启示。例如,我们发现 Javadoc 中的常见标签从代码的可预测性至少为非 Javadoc 句子的两倍,表明 Javadoc 标签不如更自由的注释具信息性。

关键词

引用

@article{arxiv.1806.04616,
  title  = {Deep Learning to Detect Redundant Method Comments},
  author = {Annie Louis and Santanu Kumar Dash and Earl T. Barr and Charles Sutton},
  journal= {arXiv preprint arXiv:1806.04616},
  year   = {2018}
}

备注

12 pages