Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
开源中国 2019-08-20 00:00:00 发布的技术动态 - OurCoders (我们程序员)
开源中国
2019-08-20 00:00:00 发布
【Stack Overflow 引入 CROKAGE,搜问题不用再东拼西凑】网页链接

许多开发者使用 Stack Overflow 搜索开发中遇到的问题,有时候需要查询的结果中有通俗的讲解,而且最好还能够带上代码 demo,但是两者同时很完美地满足要求还是比较困难的。不过最近 Stack Overflow 官方博客上介绍了一种智能化的技术,或许可以解决这一问题。

新技术名叫 CROKAGE(Crowd Knowledge Answer Generator,群众知识答案生成器),它来源于今年早些时候一个计算机科学研究小组发表的一篇论文,CROKAGE 可以将提问作为查询,然后返回相关的、全面的编程解决方案,所谓全面,就是说它不仅有代码片段,还包括简洁的自然语言解释,这样开发者就不用在众多的答案中拼凑出一个解决方案。

CROKAGE 使用 Stack Overflow 上的数百万个 Q&A 作为训练语料库进行训练,还扩展了自然语言查询(任务描述),包括从 Stack Overflow 中仔细挖掘出来的独特的开源软件库和功能术语。

对于返回来的候选答案,研究人员组合了四个加权因子进行排序,他们利用传统的信息检索(IR)指标,如 TF-IDF 和非对称相关性,同时为了适应 Stack Overflow 的环境,还采用了非常适合软件特定文档的针对性排序机制。

简单来讲,整个运作机制如前边的图片所示,主要分为几个步骤:A. 语料库准备;B. 构建模型、map、索引;C. 索相关答案;D. 整合编程解决方案。

研究团队还对结果进行了对比,如图 2 所示,在对比中,CROKAGE 给出的建议答案中,代码示例的相关性、代码解释的清晰度以及整体解决方案的质量(也就是代码+解释的整体质量),比目前最先进的工具产出了更好的结果。

目前 CROKAGE 还有一些局限性,比如它仅支持 Java 语言的相关查询,而且如果问题描述比较差,那工具也无法给出如何改进的建议。

开发者可以通过 网页链接 体验该功能。