Deep API Learning
Title | Deep API Learning |
Publication Type | Conference Paper |
Year of Publication | 2016 |
Authors | Gu, Xiaodong, Zhang, Hongyu, Zhang, Dongmei, Kim, Sunghun |
Conference Name | Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering |
Date Published | November 2016 |
Publisher | ACM |
Conference Location | New York, NY, USA |
ISBN Number | 978-1-4503-4218-6 |
Keywords | API, API usage, APIs, applications programming interfaces, code search, compositionality, Deep Learning, pubcrawl, Resiliency, RNN |
Abstract | Developers often wonder how to implement a certain functionality (e.g., how to parse XML files) using APIs. Obtaining an API usage sequence based on an API-related natural language query is very helpful in this regard. Given a query, existing approaches utilize information retrieval models to search for matching API sequences. These approaches treat queries and APIs as bags-of-words and lack a deep understanding of the semantics of the query. We propose DeepAPI, a deep learning based approach to generate API usage sequences for a given natural language query. Instead of a bag-of-words assumption, it learns the sequence of words in a query and the sequence of associated APIs. DeepAPI adapts a neural language model named RNN Encoder-Decoder. It encodes a word sequence (user query) into a fixed-length context vector, and generates an API sequence based on the context vector. We also augment the RNN Encoder-Decoder by considering the importance of individual APIs. We empirically evaluate our approach with more than 7 million annotated code snippets collected from GitHub. The results show that our approach generates largely accurate API sequences and outperforms the related approaches. |
URL | https://dl.acm.org/doi/10.1145/2950290.2950334 |
DOI | 10.1145/2950290.2950334 |
Citation Key | gu_deep_2016 |