论文标题
使用澄清问题来改善软件开发人员的网络搜索
Using clarification questions to improve software developers' Web search
论文作者
论文摘要
上下文:最近的研究表明,软件开发人员编写的Web查询在检索相关结果方面并不是很成功,与通用网络查询相比,效果差得多。到目前为止,大多数方法已经解决了针对特定于软件工程的自动查询重新制定技术的问题,这些问题无需开发人员参与,但受原始查询内容的限制。换句话说,这些技术会自动改善现有查询,但不能贡献新的,以前没有提及的概念。 目的:在本文中,我们提出了一种指导软件开发人员手动改进自己的网络搜索查询的技术。我们研究了一种遵循不成功的查询的对话方法,旨在引发其他查询术语,从而为开发人员提供了可以改善查询的明确维度。 方法:我们描述了一组澄清问题,这些问题是从软件开发人员查询的语料库中得出的,以及向新发行的查询推荐它们的神经方法。 结果:我们的评估表明,建议技术是准确的,可以预测有效的澄清问题80%的时间,并且优于简单的基线以及最先进的学习级别(LTR)基准。 结论:如实验结果所示,所描述的方法能够向软件开发人员推荐适当的澄清问题,并被从新手到经验丰富的专业人员的开发人员样本中被认为是有用的。
Context: Recent research indicates that Web queries written by software developers are not very successful in retrieving relevant results, performing measurably worse compared to general purpose Web queries. Most approaches up to this point have addressed this problem with software engineering-specific automated query reformulation techniques, which work without developer involvement but are limited by the content of the original query. In other words, these techniques automatically improve the existing query but can not contribute new, previously unmentioned, concepts. Objective: In this paper, we propose a technique to guide software developers in manually improving their own Web search queries. We examine a conversational approach that follows unsuccessful queries with a clarification question aimed at eliciting additional query terms, thus providing to the developer a clear dimension along which the query could be improved. Methods: We describe a set of clarification questions derived from a corpus of software developer queries and a neural approach to recommending them for a newly issued query. Results: Our evaluation indicates that the recommendation technique is accurate, predicting a valid clarification question 80% of the time and outperforms simple baselines, as well as, state-of-the-art Learning To Rank (LTR) baselines. Conclusion: As shown in the experimental results, the described approach is capable at recommending appropriate clarification questions to software developers and considered useful by a sample of developers ranging from novices to experienced professionals.