A Deep Learning Approach for Searching Cloud-Hosted Software Projects
Petrović Gajo, Vladimir Dimitrieski, Hamido Fujita · Frontiers in artificial intelligence and applications · 2016
Modern software development is highly dependent on existing libraries, frameworks and tools. Finding and learning the ones best suited to solve a given problem can sometimes take a considerable amount of time. Search for appropriate repositories is often done using keywords and standard Web search engines. In this paper we present an alternative way of searching software repositories, based on repository similarity. We have obtained Github repository metadata and constructed a Deep Neural Network, using a Variational Autoencoder, that learns a simplified signature, i.e. latent variable model, of each project. Relying on such simplified representation, we have made a system that can easily obtain similar projects based on the Euclidean distance between the latent variables. We provide a 2D project map of projects constructed based on projects similarity. Our system can also generate metadata for projects that do not exist yet, in order to provide suggestions for future software development.