RAISEDAL / RAISEReadingList

This repository contains a reading list of Software Engineering papers and articles!
0 stars 0 forks source link

Paper Review: Recommending Comprehensive Solutions for Programming Tasks by Mining Crowd Knowledge #65

Open shihuiMaxine opened 1 year ago

shihuiMaxine commented 1 year ago

Publisher

Shihui(Maxine) Gao

Link to The Paper

https://web.cs.dal.ca/~masud/papers/rodrigo-ICPC2019-pp.pdf

Name of The Authors

Rodrigo F. G. Silva∗, Chanchal K. Roy†, Mohammad Masudur Rahman†, Kevin A. Schneider†, Klerisson Paixao∗, Marcelo de Almeida Maia∗

Year of Publication

2019

Summary

In this paper, the author proposes a new technology–CROKAGE which is a crowds knowledge answer generator for obtaining solutions to programming tasks (the query). CROKAGE reduces lexical gap issues with lexical similarity and word embeddings and uses related API classes from Stack Overflow to find relevant code examples and explanations of tasks by natural language. It consists of four steps: (1) Using Stack Overflow's question-and-answer thread to build a domain-specific knowledge base (2) Building a Lucene index, creating a FastText model and generating an IDF graph; (3) Searching for relevant answers from the corpus according to the programming task description; (4) Finding the highest quality answers in it for programming task combinations and suggested solutions. The authors evaluate our method using 100 programming queries and demonstrate that CROKAGE outperforms six baselines, including four different metrics (Top-K Accuracy, Mean Reciprocal Rank, Average Mean Precision and Average Recall).

Limitation:

CROKAGE only considers questions and their answers tagged with Java.

Contributions of The Paper

  1. Proposed a new technology–CROKAGE which is a crowds knowledge answer generator for obtaining solutions to programming tasks (the query).

  2. Prove NLP2API is better than the current state-of-the-art technique on Top-K Accuracy (Hit@K), Mean Reciprocal Rank (MRR@K), Average Mean Precision (MAP@K) and Average Recall (MR@K) for K=10.

  3. CROKAGE reduces the lexical gap problem.

  4. CROKAGE generates a more comprehensive and informative approach to programming solutions.

  5. CROKAGE explanations are more general, informative, and not limited to standard Java APIs.

Comments

The paper effectively proves that this technology is the best by comparing it with the state-of-the-art existing technology through a large number of descriptions, problems, and data containing formulas and diagrams. This article uses examples to make readers understand better and clearer results than others obtained by using CROKAGE.