難解なコードをAIで要約、可視化。Facebook AI Researchがデモページと論文を公開

このエントリーをはてなブックマークに追加

機械翻訳を活用し、難解なコードの要約、構造の可視化をしてくれる「Code2Seq」論文デモページをイスラエル工科大学とFacebook AI Researchが公開しました。

膨大な量のコードを簡単な文章で要約

他人が書いたコードは、「どんな処理なのか」を知るだけでも、理解が容易になります。Code2Seqは、関数の中でどんな処理ををしているのか、簡単な文章で教えてくれます。

Code2Seqには、自然言語処理の分野で頻繁に使用される手法(Encoder-Decoder構造のモデル)が用いられています。

左ボックスのJavaのコードではそれぞれ、

  • 赤い部分 → contains
  • 青い部分 → ignore
  • 緑の部分 → case

を示しています。

右ボックスのC#のコードは、青い線で囲まれたstring型の「“map”」が、緑色で囲われた「File」で置き換えられることを、以下の文章で要約しています。

replace a string in a text file

コードの要約があることで、例えばプルリクエストの際にどんな処理なのか、瞬時に理解できます。

処理をツリー構造で可視化

コードの要約に加え、抽象構文木と呼ばれるコードの処理過程をツリー構造にして可視化してくれます。

処理がツリー構造で可視化されることで、どこでどのように分岐し、どのような結果が得られるのか、理解しやすくなります。

興味がある方は、デモページで試してみてはどうでしょうか。