Improving code readability classification using convolutional neural networks

Qing Mi*, Jacky Keung, Yan Xiao, Solomon Mensah, Yujin Gao

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

32 Citations (Scopus)

Abstract

Context: Code readability classification (which refers to classification of a piece of source code as either readable or unreadable) has attracted increasing concern in academia and industry. To construct accurate classification models, previous studies depended mainly upon handcrafted features. However, the manual feature engineering process is usually labor-intensive and can capture only partial information about the source code, which is likely to limit the model performance. Objective: To improve code readability classification, we propose the use of Convolutional Neural Networks (ConvNets). Method: We first introduce a representation strategy (with different granularities) to transform source codes into integer matrices as the input to ConvNets. We then propose DeepCRM, a deep learning-based model for code readability classification. DeepCRM consists of three separate ConvNets with identical architectures that are trained on data preprocessed in different ways. We evaluate our approach against five state-of-the-art code readability models. Results: The experimental results show that DeepCRM can outperform previous approaches. The improvement in accuracy ranges from 2.4% to 17.2%. Conclusions: By eliminating the need for manual feature engineering, DeepCRM provides a relatively improved performance, confirming the efficacy of deep learning techniques in the task of code readability classification.

Original languageEnglish
Pages (from-to)60-71
Number of pages12
JournalInformation and Software Technology
Volume104
DOIs
Publication statusPublished - Dec 2018

Keywords

  • Code readability
  • Convolutional Neural Network
  • Deep learning
  • Empirical software engineering
  • Open source software
  • Program comprehension

Fingerprint

Dive into the research topics of 'Improving code readability classification using convolutional neural networks'. Together they form a unique fingerprint.

Cite this