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.
翻译:最近的研究表明,软件开发者所撰写的网络查询在检索相关结果方面并不十分成功,比一般目的的网络查询要差得多。迄今为止,大多数方法都用软件工程专用自动查询重新设计技术解决了这一问题,这些技术没有开发者参与,但受原始查询内容的限制。换句话说,这些技术自动改进现有查询,但不能提供以前未提及的新概念。目标:在本文件中,我们提出一种技术来指导软件开发者手工改进自己的网络查询。我们研究一种对话方法,在不成功查询之后,提出旨在获取更多查询术语的澄清问题,从而向开发者提供一个清晰的方面,从而可以改进查询。方法:我们描述一套来自软件开发者查询内容的澄清问题,以及推荐新发布查询的神经方法。结果:我们的评估表明,建议技术是准确的,预测了80%的时间和范围超出简单的基准,以及从一个最新的标准化学习到级的澄清方法,从而可以向开发者提供一个清晰的清晰的清晰的清晰度。结论:从一个可靠的开发者基线到一个经过实验结果,从一个经过思考的开发者到一个适当的基准,结论是没有被描述的、经过测试的、经过研究的、经过研究的开发者测测测测的实验室的精确的基线。