Import2vec - Learning Embeddings for Software Libraries

03/27/2019
by   Bart Theeten, et al.
0

We consider the problem of developing suitable learning representations (embeddings) for library packages that capture semantic similarity among libraries. Such representations are known to improve the performance of downstream learning tasks (e.g. classification) or applications such as contextual search and analogical reasoning. We apply word embedding techniques from natural language processing (NLP) to train embeddings for library packages ("library vectors"). Library vectors represent libraries by similar context of use as determined by import statements present in source code. Experimental results obtained from training such embeddings on three large open source software corpora reveals that library vectors capture semantically meaningful relationships among software libraries, such as the relationship between frameworks and their plug-ins and libraries commonly used together within ecosystems such as big data infrastructure projects (in Java), front-end and back-end web development frameworks (in JavaScript) and data science toolkits (in Python).

READ FULL TEXT
research
10/11/2022

Code Librarian: A Software Package Recommendation System

The use of packaged libraries can significantly shorten the software dev...
research
05/24/2020

Req2Lib: A Semantic Neural Model for Software Library Recommendation

Third-party libraries are crucial to the development of software project...
research
09/07/2022

So Much in So Little: Creating Lightweight Embeddings of Python Libraries

In software engineering, different approaches and machine learning model...
research
05/14/2018

The EPFL Logic Synthesis Libraries

We present a collection of modular open source C++ libraries for the dev...
research
04/27/2023

string2string: A Modern Python Library for String-to-String Algorithms

We introduce string2string, an open-source library that offers a compreh...
research
06/21/2017

JaTeCS an open-source JAva TExt Categorization System

JaTeCS is an open source Java library that supports research on automati...
research
04/17/2019

JGraphT -- A Java library for graph data structures and algorithms

Mathematical software and graph-theoretical algorithmic packages to effi...

Please sign up or login with your details

Forgot password? Click here to reset