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。架構圖如下: