基于众包知识的代码搜索查询扩展
软件工程
2017-03-07 v1
摘要
由于代码搜索是软件开发实践中开发者频繁进行的活动,提高代码搜索的性能是一项关键任务。在代码搜索所采用的基于文本检索的搜索技术中,术语不匹配问题是影响检索有效性的关键语言问题。通过重新表述查询,查询扩展为解决术语不匹配问题提供了有效途径。在本文中,我们提出了基于众包知识的查询扩展(QECK),一种提高代码搜索算法性能的新技术。QECK 从 Stack Overflow 上高质量的伪相关反馈问答对中识别特定于软件的扩展词,以自动生成扩展查询。此外,我们将 QECK 结合到经典的 Rocchio 模型中,提出了基于 QECK 的代码搜索方法 QECKRocchio。我们进行了三个实验来评估我们的 QECK 技术,并在包含真实代码片段和问答对集合的大规模语料库中研究了 QECKRocchio。结果表明,QECK 将三种代码搜索算法的性能在 Precision 上最高提升了 64%,在 NDCG 上提升了 35%。同时,与 SOTA 的查询扩展方法相比,QECK Rocchio 在 Precision 上提升了 22%,在 NDCG 上提升了 16%。
关键词
引用
@article{arxiv.1703.01443,
title = {Query Expansion Based on Crowd Knowledge for Code Search},
author = {Liming Nie and He Jiang and Zhilei Ren and Zeyi Sun and Xiaochen Li},
journal= {arXiv preprint arXiv:1703.01443},
year = {2017}
}
备注
14 pages, 5 figures, IEEE Transactions on Services Computing, 2016