Skip to main content
QUICK REVIEW

[論文レビュー] CodeSum: Translate Program Language to Natural Language

Xing Hu, Yuhan Wei|arXiv (Cornell University)|Aug 6, 2017
Software Engineering Research参考文献 3被引用数 13
ひとこと要約

本稿では、アテンションベースのシーケンス・ツー・シーケンス(Seq2Seq)フレームワーク内での抽象構文木(AST)の構造に配慮した走査を活用することで、ソースコードの自然言語記述を生成するニューラルコード要約モデルであるCodeSumを提案する。Java、C#、SQLのコーパス(新規の産業用Javaコーパスを含む)で評価された結果、既存の手法を著しく上回る最先端の性能を達成した。

ABSTRACT

During software maintenance, programmers spend a lot of time on code comprehension. Reading comments is an effective way for programmers to reduce the reading and navigating time when comprehending source code. Therefore, as a critical task in software engineering, code summarization aims to generate brief natural language descriptions for source code. In this paper, we propose a new code summarization model named CodeSum. CodeSum exploits the attention-based sequence-to-sequence (Seq2Seq) neural network with Structure-based Traversal (SBT) of Abstract Syntax Trees (AST). The AST sequences generated by SBT can better present the structure of ASTs and keep unambiguous. We conduct experiments on three large-scale corpora in different program languages, i.e., Java, C#, and SQL, in which Java corpus is our new proposed industry code extracted from Github. Experimental results show that our method CodeSum outperforms the state-of-the-art significantly.

研究の動機と目的

  • ソフトウェア保守における非効率なコード理解の課題に対処し、ソースコードの要約を簡潔に生成すること。
  • 抽象構文木(AST)をより効果的に活用することで、コード要約におけるプログラム構造の表現を向上させること。
  • 要約生成中にコードの文法的および構造的情報を捉える方法を開発すること。
  • Javaを含む複数のプログラミング言語にわたり、モデルを評価すること、特に新規に構築された産業用Javaコーパスを用いること。

提案手法

  • CodeSumは、エンド・ツー・エンドのコード要約を実現するため、アテンションベースのシーケンス・ツー・シーケンス(Seq2Seq)ニューラルネットワークアーキテクチャを採用している。
  • 構造に基づく走査(SBT)を用いて、抽象構文木(AST)の順序付き表現を生成し、構造的意味を保持する。
  • SBTは、プログラムの制御フローやデータフローを反映するようにASTを走査することで、曖昧さがなく構造を保ったシーケンスを保証する。
  • モデルは、双方向LSTMを用いてASTシーケンスを符号化し、自己回帰的デコーダーを用いて自然言語にデコードする。
  • アテンション機構により、デコード中にコードトークンと要約語との間でアライメントが行われ、関連性と滑らかさが向上する。
  • モデルは、スケジュールド・サンプリングを用いた交差エントロピー損失により、コード-要約ペアのエンド・ツー・エンドで訓練される。

実験結果

リサーチクエスチョン

  • RQ1構造に配慮したAST走査は、平坦化またはランダムな走査手法と比較して、コード要約の性能を向上させるか?
  • RQ2CodeSumは、Java、C#、SQLのような多様なプログラミング言語でどのように性能を発揮するか?
  • RQ3新たに構築された産業用Javaコーパスの使用は、モデルの一般化能力および実世界への適用可能性を向上させるか?
  • RQ4CodeSumは、既存の最先端のコード要約モデルをどの程度上回るか?

主な発見

  • CodeSumは、評価された3つのコーパス(Java、C#、SQL)すべてで、既存の最先端モデルを著しく上回った。
  • 提案されたASTの構造に基づく走査(SBT)は、ベースライン走査戦略と比較して、より正確で意味的に意味のあるコード要約を生成した。
  • GitHubから抽出した新規に構築された産業用Javaコーパスでも、優れた性能を発揮し、実世界の関連性を示した。
  • 定量的評価では、すべての言語でROUGEおよびBLEUスコアが一貫して向上しており、アーキテクチャおよびトレーニング戦略の有効性が確認された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。