Academia.eduAcademia.edu

Outline

NPMREC: NPM Packages and Similar Projects Recommendation System

2021, Data Analytics and Management

https://doi.org/10.1007/978-981-15-8335-3_54

Abstract

Node.js has a default package manager called Node Package Manager (NPM). There exists a command line client, called NPM, and an online database of public and paid-for private packages, known as the NPM registry. The registry is accessed via the user, and the available packages can be browsed and searched through the NPM Web site. Given a new project description, it is crucial to determine the most favorable NPM packages that can be used for the overall success of the project because of the reusable nature of these packages for rapid development. Though the hurdle faced by most of the developers is to select the right one from the vastly present number of NPM packages. Thus, to solve this issue, we propose a method called NPMREC known as NPM package and Similar Projects Recommendation System. It takes a project description as an input and gives a ranked list of NPM packages as the output that can then be used to implement the project with better efficiency. We used custom-built datasets for our approach using libraries.io Web site. The training dataset contains two datasets, firstly, the past project dataset with 589 NPM projects/NPM modules with information about their dependencies/NPM packages; secondly, the NPM package dataset with 759 NPM packages containing the detailed information about the dependencies of these 589 NPM projects/NPM modules. The test dataset contains 105 NPM projects/NPM modules along with information about their dependencies.

References (11)

  1. Raemaekers S, van Deursen A, Visser J (2012) An analysis of dependence on third-party libraries in open source and proprietary systems. In: Sixth international workshop on software quality and maintainability, SQM, vol 12, pp 64-67
  2. Yu S, Woodard CJ (2008) Innovation in the programmable web: characterizing the mashup ecosystem. In: International conference on service-oriented computing. Springer, Berlin, Heidelberg, pp 136-147
  3. Avazpour I, Pitakrat T, Grunske L, Grundy J (2014) Dimensions and metrics for evaluating recommendation systems. In Recommendation systems in software engineering. Springer, Berlin, Heidelberg, pp 245-273
  4. Thung F, Oentaryo RJ, Lo, D, Tian Y (2017) Webapirec: recommending web apis to software projects via personalized ranking. IEEE Trans Emerg Topics Comput Intell 1(3):145-156
  5. Silva C, Ribeiro B (2003) The importance of stop word removal on recall values in text catego- rization. In: Proceedings of the international joint conference on neural networks, vol 3. IEEE, pp 1661-1666
  6. Méndez JR, Iglesias EL, Fdez-Riverola F, Díaz F, Corchado JM (2005) Tokenising, stemming and stopword removal on anti-spam filtering domain. In: Conference of the Spanish association for artificial intelligence. Springer, Berlin, Heidelberg, pp 449-458
  7. Porter MF (1997) An algorithm for suffix stripping. Readings in information retrieval
  8. Schütze H, Manning CD, Raghavan P (2008) Introduction to information retrieval, vol 39. Cambridge University Press, Cambridge, pp 1041-4347
  9. Rajaraman A, Ullman JD (2011) Mining of massive datasets. Cambridge University Press
  10. Nguyen HV, Bai L (2010) Cosine similarity metric learning for face verification. In: Asian conference on computer vision. Springer, Berlin, Heidelberg, pp. 709-720
  11. Likas A, Vlassis N, Verbeek JJ (2003) The global k-means clustering algorithm. Pattern Recogn 36(2):451-461