論文筆記 | 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。架構圖如下:
在這裏插入圖片描述

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