阅读笔记 | Code to Comment “Translation”:Data, Metrics, Baselining & Evaluation

研究对比了代码注释(CCT)与自然语言翻译(WMT)数据,发现CCT数据重复性更高,影响了BLEU评分的准确性。简单信息检索方法在CCT任务中表现良好,可作为基线。建议未来工作采用更多样化的翻译模型,标准化性能度量,并考虑IR基线。
摘要由CSDN通过智能技术生成

在这里插入图片描述

摘要

在这里插入图片描述
最早的代码摘要自动生成方法是建立在【strong syntac-tic theories of comment-structures】之上的,并且依赖于文本模板。近年来,研究人员已经将深度学习方法应用到这项任务中,特别是【trainable generative translation models】,这些模型在自然语言翻译任务中表现很好。

作者在这篇论文里仔细研究了以下基本假设:代码摘要自动生成任务与自然语言翻译任务是足够相似的,因此可以使用相似的模型和评价指标。

在这里插入图片描述

作者分析了代码摘要自动生成任务的以下几个数据集:CodeNN,DeepCom,FunCom, and DocString.
然后将这些数据集与WMT19数据集进行了比较,发现了代码摘要自动生成数据集与WMT19数据集之间的一些有趣的差异。其中,WMT19是一个常用于训练自然语言翻译模型的标准数据集。

在这里插入图片描述

接下来,作者介绍了BLEU这个经常用来评价生成注释的质量的指标,并做了一些【calibrate】BLEU的研究(using “affinity pairs" of methods, from different projects,in the same project, in the same class,etc;)。研究结果表明,目前在某些数据集上的性能可能需要大幅的提高【?】。

在这里插入图片描述

此外,作者还认为,简单的信息检索(IR)方法在这项任务中已经表现得足够好了,因此可以作为一个合理的baseline。

在这里插入图片描述
最后,作者对如何将该论文的研究成果应用于未来的研究提出了一些建议。


1 INTRODUCTION

在这里插入图片描述

在这里插入图片描述
注释可以被看作是代码语义的重述,使用一种不同的、更易于理解的自然语言; 因此,可以将注释生成看作是一种翻译任务,即从一种(编程)语言翻译到另一种(自然)语言。这种观点,加上开源项目中大量的代码(附带注释),为利用统计自然语言翻译(NLT)方面数十年的研究提供了非常有吸引力的可能性。最近的几篇论文[22,26,33,61]探讨了利用统计机器翻译(SMT)方法来学习将代码翻译成英语评论的想法。但是这些任务真的相似吗? 我们有兴趣更详细地了解从代码生成注释的任务与在自然语言之间转换的任务是多么相似。

在这里插入图片描述在这里插入图片描述
注释形成领域特定的方言,它是高度结构化的,具有大量重复的模板。注释通常以诸如“ returns the”、“ outputs”和“ calculate the”这样的模式开头。

3.【 Zipf plots】【?】
在这里插入图片描述在这里插入图片描述
图1比较了WMT德英翻译数据集中英语文本注释(来自用于训练深度学习模型进行代码-注释摘要的数据集[22,26,33])和英语文本注释中的三字母频率:x轴使用对数秩尺度将三元图从最频繁到最不频繁排序,y轴是三元图在语料库中的对数频率。在这里插入图片描述

在这里插入图片描述

代码中的注释显示Zipf图的(注意,对数比例)y轴上的斜率始终较高,这表明注释中包含的重复三元关系远比翻译数据集中的英语多得多。这一观察结果促使我们进一步研究代码注释和 WMT 数据集之间的差异,以及使用机器翻译方法生成代码注释的意义

在这里插入图片描述

在本文中,我们比较了用于注释生成任务的代码注释翻译(CCT)数据集与用于自然语言翻译的常用自然翻译(WMT)数据集。

1.我们发现 CCT 任务的期望输出更具有重复性。
2.我们发现重复性对测量的性能有很强的影响,在 CCT 数据集中的影响比 WMT 数据集中的影响更大。
3.我们发现WMT翻译数据集具有更平滑、更健壮的输入输出依赖关系。相似的德语输入在WMT中有产生相似的英语输出的强烈倾向。然而,这似乎在cct数据集中是存在的。
4.我们报告说,一个简单的信息检索方法可以满足或超过报告的数字从神经模型
5.我们使用不同“亲和力”的方法来评估BLEU本身作为生成评论质量的度量;这为BLEU测度提供了新的视角

在这里插入图片描述

我们的研究结果对该领域的未来工作有一些启示,包括技术方法、测量方法、基准化以及校准 BLEU 评分。

在这里插入图片描述

但是首先,有一个免责声明: 这项工作没有提供任何新的模型或改进的先前结果的 CCT 任务。

2 BACKGROUND & THEORY

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
早期的工作[11,40,48,49]是基于规则的,结合对源代码的一些形式分析来提取特定的信息,然后可以将这些信息放入不同类型的模板中产生注释。另一种方法是使用代码克隆标识为给定的代码生成注释,使用与克隆相关的注释[59]。其他的方法使用了程序员在眼球追踪研究中关注的关键词。还有一些方法使用主题分析来组织代码的描述[37]。

在这里插入图片描述

上面提到的这些开拓者式的方法大多依赖于特定的特征和手工设计的规则来完成产生评论的任务。拥有大量源代码的大型开放源代码库的出现提供了一种新颖的、通用的、统计上严格的、可持有性: 这些大型数据集可以被挖掘为代码注释对,然后可以用于训练模型从代码中产生注释。
在这里插入图片描述

【不懂】
在这里插入图片描述

在经典 SMT 的案例中,DL 不是依赖于特定的归纳偏见,比如短语结构,而是承诺与翻译相关的特征本身可以从大量的数据中学习在这里插入图片描述

最近的几篇文章[24,26,33]已经探索了如何使用这些强大的DL方法来完成代码注释任务

RQ

RQ1. What are the differences between the translation (WMT)data, and code-comment (CCT) data?

翻译(WMT)数据和代码注释(CCT)数据之间有什么区别?
在这里插入图片描述

我们分析了已发表的文献,首先讨论了代码解释翻译(CCT)和统计机器翻译(WMT)数据之间是否存在显著的分布差异。我们的研究考察了输入和输出数据的分布,以及输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值