论文笔记 | 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

将代码生成和代码摘要视为对偶任务,因为一个是从自然语言生成对应的代码,一个是从代码生成对应的自然语言描述。基本的模型架构如下图:
在这里插入图片描述

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,最终输出。结构如下:
在这里插入图片描述

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

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

模型架构是encoder-decoder,其中用到的是Transformer。架构图如下:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章