機械学習を用いた省略識別子の復元手法 (ソフトウェアサイエンス)  [in Japanese] An Approach for Abbreviated Identifier Expansion with Machine Learning  [in Japanese]

Search this Article

Author(s)

    • 岡嶋 秀記 OKAJIMA Hideki
    • 京都工芸繊維大学大学院工芸科学研究科 Graduate School of Science and Technology, Kyoto Institute of Technology
    • 水野 修 MIZUNO Osamu
    • 京都工芸繊維大学大学院工芸科学研究科 Graduate School of Science and Technology, Kyoto Institute of Technology

Abstract

ソースコードの可読性はソフトウェアを開発・保守する上で重要な要素である.識別子はソースコードを正しく理解するための重要な情報源であるが,コーディング時にプログラマの判断でしばしば省略される場合がある.識別子の過度な省略は初見の読者にとって理解の妨げとなりうる.本報告では省略された識別子の元となった識別子を推定する手法を提案する.近年,深層学習を用いて自然言語を学習し,単語の意味を高次元のベクトルで表せるツールword2vecが注目されている.提案手法ではword2vecを用いてソースコードから識別子の意味を表すベクトルに変換し,ベクトル間の距離を比較する事で元の識別子を推定する.オープンソースプロジェクトのリポジトリを用いた事例研究の結果,既存の手法と比べて遜色のない精度が出せると分かった.また,完全に失敗した場合でも意味の関係が深い識別子を提示できるため,プログラミング支援のツールとして有効である.

The readability of source code is a crucial factor on software development and maintenance. Identifier is a essential clue to understand the content of source code, but identifiers are often abbreviated to short form by programmers. Unreasonable abbreviation causes hindrance to understanding for readers faced with unfamiliar code. This paper presents an approach for expanding identifiers using a tool "word2vec." The word2vec is a tool to learn the vector representations of the words in documents by deep learning. In this approach, the candidates of original identifier by transforming source code to the vector representation of identifiers and comparing short identifiers vector with long one are determined. The process on code of open source software repositories is evaluated and it is indicated that the proposed approach is able to successfully expand many abbreviated identifiers compares favourably with previous works. The present approach suggests some similar meaningful identifiers, of abbreviations can't expand correctly. Therefore it is concluded that the present approach is helpful for reading source code.

Journal

  • Technical report of IEICE. SS

    Technical report of IEICE. SS 114(510), 79-84, 2015-03-09

    The Institute of Electronics, Information and Communication Engineers

Codes

  • NII Article ID (NAID)
    110010022018
  • NII NACSIS-CAT ID (NCID)
    AN10013287
  • Text Lang
    JPN
  • ISSN
    0913-5685
  • NDL Article ID
    026327289
  • NDL Call No.
    Z16-940
  • Data Source
    NDL  NII-ELS 
Page Top