中文

ROSF:结合信息检索与监督学习的代码片段推荐

软件工程 2017-03-07 v1

摘要

在实现不熟悉的编程任务时,开发者通常会搜索代码示例,从代码示例中学习 API 的使用模式,或者通过复制粘贴和修改来重用它们。为了提供高质量的代码示例,以往的研究提出了几种主要基于信息检索的代码片段推荐方法。在本文中,为了提供更好的推荐结果,我们提出了 ROSF(Recommending cOde Snippets with multi-aspect Features,结合多方面特征的代码片段推荐),一种结合信息检索和监督学习的新方法。在我们的方法中,我们基于两个阶段,即粗粒度搜索和细粒度重排序,为给定的自由形式查询推荐 Top-K 代码片段。首先,我们使用信息检索方法搜索代码片段语料库,生成代码片段候选集。其次,我们通过从训练集中学习到的预测模型,预测候选集中代码片段对应于不同相关性分数的概率值,根据这些概率值对这些候选代码片段进行重排序,并将最终结果推荐给开发者。我们进行了几项实验,在包含 921,713 个真实代码片段的大规模语料库中评估了我们的方法。结果表明,ROSF 是一种有效的代码片段推荐方法,在 Precision 上比 SOTA 方法高出 20%-41%,在 NDCG 上高出 13%-33%。

关键词

引用

@article{arxiv.1703.01446,
  title  = {ROSF: Leveraging Information Retrieval and Supervised Learning for Recommending Code Snippets},
  author = {He Jiang and Liming Nie and Zeyi Sun and Zhilei Ren and Weiqiang Kong and Tao Zhang and Xiapu Luo},
  journal= {arXiv preprint arXiv:1703.01446},
  year   = {2017}
}

备注

14 pages, 6 figures, IEEE Transactions on Services Computing, 2016