Issue No. 05 - Sept.-Oct. (2016 vol. 9)
Liming Nie , School of Software, Dalian University of Technology, Dalian, China
He Jiang , School of Software, Dalian University of Technology, Dalian, China
Zhilei Ren , School of Software, Dalian University of Technology, Dalian, China
Zeyi Sun , School of Software, Dalian University of Technology, Dalian, China
Xiaochen Li , School of Software, Dalian University of Technology, Dalian, China
As code search is a frequent developer activity in software development practices, improving the performance of code search is a critical task. In the text retrieval based search techniques employed in the code search, the term mismatch problem is a critical language issue for retrieval effectiveness. By reformulating the queries, query expansion provides effective ways to solve the term mismatch problem. In this paper, we propose Query Expansion based on Crowd Knowledge (QECK), a novel technique to improve the performance of code search algorithms. QECK identifies software-specific expansion words from the high quality pseudo relevance feedback question and answer pairs on Stack Overflow to automatically generate the expansion queries. Furthermore, we incorporate QECK in the classic Rocchio's model, and propose QECK based code search method
QECKRocchio. We conduct three experiments to evaluate our QECK technique and investigate QECKRocchio in a large-scale corpus containing real-world code snippets and a question and answer pair collection. The results show that QECK improves the performance of three code search algorithms by up to 64 percent in Precision, and 35 percent in NDCG. Meanwhile, compared with the state-of-the-art query expansion method, the improvement of QECK Rocchio is 22 percent in Precision, and 16 percent in NDCG.
Software, Software engineering, Search problems, Search engines, Thesauri
L. Nie, H. Jiang, Z. Ren, Z. Sun and X. Li, "Query Expansion Based on Crowd Knowledge for Code Search," in IEEE Transactions on Services Computing, vol. 9, no. 5, pp. 771-783, 2016.