论文笔记 | code summarization系列

code summmarization是一个将源代码总结为简单的自然语言的任务,希望能够通过自然语言的描述,节省程序员了解一段代码功能的时间。

包含的论文有:

  1. NAACL 2019, Recommendations for Datasets for Source Code Summarization
  2. NIPS 2019, Code Generation as a Dual Task of Code Summarization
  3. ACL 2020, A Transformer-based Approach for Source Code Summarization
  4. CoRR 2020, Improved Code Summarization via a Graph Neural Network
  5. CoRR 2020, DeepSumm - Deep Code Summarization using Neural Transformer Architecture

NAACL 2019, Recommendations for Datasets for Source Code Summarization

两个贡献点:

  • 揭示了按照项目或者函数划分的方式对于code summarization任务的影响
  • 提供了一个包含210万对Java 方法的数据集和一个句子方法的数据集和描述 数据集下载链接

NIPS 2019, Code generation as a dual task of code summarization

将代码生成和代码摘要视为对偶任务,因为一个是从自然语言生成对应的代码,一个是从代码生成对应的自然语言描述。基本的模型架构如下图:
论文笔记 | code summarization系列_第1张图片

ACL 2020, A Transformer-based Approach for Source Code Summarization

这篇文章主要是利用Transformer模型做code summarization任务。

CoRR 2020, Improved Code Summarization via a Graph Neural Network

将源代码序列和AST的节点和边都作为特征输入模型,计算序列中token和AST中节点的embedding,边利用ConvGNN计算出embedding,得出embedding之后,输入到GRU。然后计算特征embedding和summary的embedding的attention,最终输出。结构如下:
论文笔记 | code summarization系列_第2张图片

优点在于:不仅利用了结构信息AST,也利用到了sequence信息。 并且利用到了多跳的结构信息,图中利用的是2-hop的。

CoRR 2020, DeepSumm - Deep Code Summarization using Neural Transformer Architecture

模型架构是encoder-decoder,其中用到的是Transformer。架构图如下:
论文笔记 | code summarization系列_第3张图片

你可能感兴趣的:(论文笔记,学习总结,代码表示,自然语言处理,神经网络)