big code: Deep Learning On Code with an Unbounded Vocabulary [EasyChair 2018]

原文:Deep Learning On Code with an Unbounded Vocabulary

作者:Milan Cvitkovic

單位:加州理工學院(Caltech, California Institute of Technology)、Amazon AI

會議:EasyChair 2018

模型

在這裏插入圖片描述

  1. 講源代碼轉成AST
  2. 在AST的基礎上加各種邊,如數據流,控制流
  3. (本文重點)變量的結點和subtoken之間加邊
  4. 用GGNN訓練

效果

FILL-IN-THE-BLANK

Fixed Vocab CharCNN Only Graph Vocab (ours) Unseen files from seen repos AST 0.580.600.89Augmented AST 0.800.900.97Entirely unseen repos AST 0.360.480.80Augmented AST 0.590.840.92 \begin{array}{cl|ccc} \hline & & \text{Fixed Vocab } & \text{CharCNN Only } & \text{Graph Vocab (ours) }\\ \text{Unseen files from seen repos } & \text{AST } & 0.58 & 0.60 & 0.89\\ \hline & \text{Augmented AST } & 0.80 & 0.90 & {\boldsymbol{\mathbf{0 . 9 7}}}\\ \text{Entirely unseen repos } & \text{AST } & 0.36 & 0.48 & 0.80\\ & \text{Augmented AST } & 0.59 & 0.84 & {\boldsymbol{\mathbf{0 . 9 2}}} \end{array}

Variable Naming

Fixed Vocab CharCNN Only Graph Vocab (ours) Unseen files from seen repos AST 0.23(7.22)0.22(8.67)0.49(3.87)Augmented AST 0.19(7.64)0.20(7.46)0.53(3.68)Entirely unseen repos AST 0.05(8.66)0.06(8.82)0.38(4.81)Augmented AST 0.04(8.34)0.06(8.16)0.41(4.28)\begin{array}{cl|ccc} \hline & & \text{Fixed Vocab } & \text{CharCNN Only } & \text{Graph Vocab (ours) }\\ \text{Unseen files from seen repos } & \text{AST } & 0.23 (7.22) & 0.22 (8.67) & 0.49 (3.87)\\ \hline & \text{Augmented AST } & 0.19 (7.64) & 0.20 (7.46) & {\boldsymbol{\mathbf{0 . 5 3} (\mathbf{3 . 6 8})}}\\ \text{Entirely unseen repos } & \text{AST } & 0.05 (8.66) & 0.06 (8.82) & 0.38 (4.81)\\ & \text{Augmented AST } & 0.04 (8.34) & 0.06 (8.16) & {\boldsymbol{\mathbf{0 . 4 1 (4 . 2 8)}}} \end{array}

小結

又一個加邊狂魔。

論文裏掛的GitHub,點開是沒有的,所以看不了代碼。

subtokenast node之間加個邊也是很不錯的

這個論文要是數據集用的是微軟的那個java-small就好了,可以好好比一下,可惜是自己爬的。

參考

數據集
在這裏插入圖片描述

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