Adapting Neural Text Classification for Improved Software Categorization
This work addresses software maintenance tasks like repository navigation and feature elicitation for developers and maintainers, but it is incremental as it adapts existing methods rather than introducing a new paradigm.
The paper tackled the problem of software categorization by adapting neural text classification methods to source code, showing that existing algorithms perform poorly on code and comments but their proposed approach outperforms previous techniques and a state-of-the-art neural text classification method.
Software Categorization is the task of organizing software into groups that broadly describe the behavior of the software, such as "editors" or "science." Categorization plays an important role in several maintenance tasks, such as repository navigation and feature elicitation. Current approaches attempt to cast the problem as text classification, to make use of the rich body of literature from the NLP domain. However, as we will show in this paper, text classification algorithms are generally not applicable off-the-shelf to source code; we found that they work well when high-level project descriptions are available, but suffer very large performance penalties when classifying source code and comments only. We propose a set of adaptations to a state-of-the-art neural classification algorithm and perform two evaluations: one with reference data from Debian end-user programs, and one with a set of C/C++ libraries that we hired professional programmers to annotate. We show that our proposed approach achieves performance exceeding that of previous software classification techniques as well as a state-of-the-art neural text classification technique.