code summmarization是一个将源代码总结为简单的自然语言的任务,希望能够通过自然语言的描述,节省程序员了解一段代码功能的时间。
包含的论文有:
- NAACL 2019, Recommendations for Datasets for Source Code Summarization
- NIPS 2019, Code Generation as a Dual Task of Code Summarization
- ACL 2020, A Transformer-based Approach for Source Code Summarization
- CoRR 2020, Improved Code Summarization via a Graph Neural Network
- 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。架构图如下: