中文

通过挖掘群体知识为编程任务推荐综合解决方案

软件工程 2019-03-21 v2

摘要

开发者常在网上搜索与其编程任务相关的代码示例。遗憾的是,他们面临两个主要问题。首先,由于其查询(任务描述)与解决方案相关信息之间的词汇鸿沟,搜索受阻。其次,检索到的解决方案可能不全面,即代码段可能缺少简明解释。这些问题使开发者需浏览数十篇文档以综合出合适方案。为解决这两个问题,我们提出 CROKAGE(群体知识答案生成器),一种接受编程任务描述(查询)并为之提供综合解决方案的工具。我们的解决方案不仅包含相关代码示例,也包含其简明解释。我们提出的方法用来自 Stack Overflow 问答线程的相关 API 类扩展任务描述,从而缓解词汇鸿沟问题。此外,我们对高质量答案进行自然语言处理,然后返回包含代码示例与代码解释的程序解决方案,不同于以往研究。我们使用 48 个编程查询评估该方法,表明其以统计显著优势超越包括最优方法在内的六种基线。此外,我们与 29 名开发者用 24 个任务(查询)的评估确认了 CROKAGE 在建议代码示例相关性、代码解释益处和整体方案质量(代码+解释)上优于最优工具。

关键词

引用

@article{arxiv.1903.07662,
  title  = {Recommending Comprehensive Solutions for Programming Tasks by Mining Crowd Knowledge},
  author = {Rodrigo F. G. Silva and Chanchal K. Roy and Mohammad Masudur Rahman and Kevin A. Schneider and Klerisson Paixao and Marcelo de Almeida Maia},
  journal= {arXiv preprint arXiv:1903.07662},
  year   = {2019}
}

备注

Accepted at ICPC, 12 pages, 2019