Topic modeling of public repositories at scale using names in source code
This work provides a scalable method for analyzing programming projects through natural language in code, which is incremental as it adapts existing topic modeling techniques to a large-scale, domain-specific dataset.
The paper tackled the problem of applying topic modeling to names in source code across 13.6 million repositories to infer high-level project topics, and it addressed duplicate repositories using Locality Sensitive Hashing, resulting in open-access tools and datasets.
Programming languages themselves have a limited number of reserved keywords and character based tokens that define the language specification. However, programmers have a rich use of natural language within their code through comments, text literals and naming entities. The programmer defined names that can be found in source code are a rich source of information to build a high level understanding of the project. The goal of this paper is to apply topic modeling to names used in over 13.6 million repositories and perceive the inferred topics. One of the problems in such a study is the occurrence of duplicate repositories not officially marked as forks (obscure forks). We show how to address it using the same identifiers which are extracted for topic modeling. We open with a discussion on naming in source code, we then elaborate on our approach to remove exact duplicate and fuzzy duplicate repositories using Locality Sensitive Hashing on the bag-of-words model and then discuss our work on topic modeling; and finally present the results from our data analysis together with open-access to the source code, tools and datasets.