中文

基于众包知识的代码搜索查询扩展

软件工程 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