Req2Lib: A Semantic Neural Model for Software Library Recommendation
This addresses the challenge for developers in finding suitable libraries efficiently, though it appears incremental as it builds on existing neural methods for recommendation.
The paper tackles the problem of recommending third-party software libraries based on project requirement descriptions, proposing Req2Lib, a neural model that uses a Sequence-to-Sequence approach with domain-specific word embeddings, and reports accurate recommendations in an evaluation with data from 5,625 Java projects.
Third-party libraries are crucial to the development of software projects. To get suitable libraries, developers need to search through millions of libraries by filtering, evaluating, and comparing. The vast number of libraries places a barrier for programmers to locate appropriate ones. To help developers, researchers have proposed automated approaches to recommend libraries based on library usage pattern. However, these prior studies can not sufficiently match user requirements and suffer from cold-start problem. In this work, we would like to make recommendations based on requirement descriptions to avoid these problems. To this end, we propose a novel neural approach called Req2Lib which recommends libraries given descriptions of the project requirement. We use a Sequence-to-Sequence model to learn the library linked-usage information and semantic information of requirement descriptions in natural language. Besides, we apply a domain-specific pre-trained word2vec model for word embedding, which is trained over textual corpus from Stack Overflow posts. In the experiment, we train and evaluate the model with data from 5,625 java projects. Our preliminary evaluation demonstrates that Req2Lib can recommend libraries accurately.