機械翻訳を活用し、難解なコードの要約、構造の可視化をしてくれる「Code2Seq」の論文とデモページをイスラエル工科大学とFacebook AI Researchが公開しました。
膨大な量のコードを簡単な文章で要約
他人が書いたコードは、「どんな処理なのか」を知るだけでも、理解が容易になります。Code2Seqは、関数の中でどんな処理ををしているのか、簡単な文章で教えてくれます。
Code2Seqには、自然言語処理の分野で頻繁に使用される手法(Encoder-Decoder構造のモデル)が用いられています。
左ボックスのJavaのコードではそれぞれ、
- 赤い部分 → contains
- 青い部分 → ignore
- 緑の部分 → case
を示しています。
右ボックスのC#のコードは、青い線で囲まれたstring型の「“map”」が、緑色で囲われた「File」で置き換えられることを、以下の文章で要約しています。
replace a string in a text file
コードの要約があることで、例えばプルリクエストの際にどんな処理なのか、瞬時に理解できます。
処理をツリー構造で可視化
コードの要約に加え、抽象構文木と呼ばれるコードの処理過程をツリー構造にして可視化してくれます。
処理がツリー構造で可視化されることで、どこでどのように分岐し、どのような結果が得られるのか、理解しやすくなります。
興味がある方は、デモページで試してみてはどうでしょうか。