您现在的位置是:首页 > 未分类 > 脸书推出代码搜索工具NCS,让开发者用自然语言就能搜索代码博客日记

脸书推出代码搜索工具NCS,让开发者用自然语言就能搜索代码

19-07-03未分类围观26

简介 脸书推出代码搜索工具NCS,让开发者用自然语言就能搜索代码 脸书为了让开发者可以快速找到需要功能的代码片段,开发了新的代码搜索工具NCS(Neural Code Search),开发者可以直

脸书推出代码搜索工具NCS,让开发者用自然语言就能搜索代码

 脸书为了让开发者可以快速找到需要功能的代码片段,开发了新的代码搜索工具NCS(Neural Code Search),开发者可以直接使用自然语言进行代码搜索。


NCS使用GitHub储存库当作训练资料库,以热门开发者论坛Stack Overflow上的问题进行搜索,而模型可以正确回答诸如"如何隐藏Android屏幕键盘?"以及"如何删除整个资料夹以及属性?"等问题,回传相关的代码片段。

微信截图_20190703151841.jpg

NCS是一种结合自然语言以及资讯搜索技术的应用,脸书提到,不少开发者的需求,早就已经存在于大型代码储存库当中,因此可以使用自然语言描述问题,直接从代码库中得到答案,将能加快开发工作。NCS还附有扩充套件UNIF,当有足够的监督式资料,便能使用这个扩充套件进行监督式训练,以改进模型的性能。


 NCS模型以嵌入(Embedding)的方式撷取程序语意,也就是说,经过适当地计算,语意相似的代码实体在向量空间会相当靠近,像是隐藏或是关闭Android屏幕键盘的问题,即便两个功能程式码不同,但是在向量空间相当靠近。

微信截图_20190703145646.jpg

脸书以这个概念建构NCS模型,在建置模型的阶段,每个代码片段都会被嵌入到向量空间中,而在执行查询的时候,使用者的查询会被映像到同一个向量空间中,向量的距离是估计代码片段和查询相关的程度。


GitHub存储库中的代码,被当作训练NCS模型的资料,在Stack Overflow上评估NCS的性能,脸书把Stack Overflow上的标题作为查询,并把答案中的代码当成是解答,然后评量NCS对查询的回应,出现在Stack Overflow解答前1、前5以及前10的次数。在创建的287个问题中,NCS的回答出现在前10的有175个问题,相当是整个资料集的60%,其中前5的有136个问题,回答就跟问题的最佳解答相同的有83题。


Tags:

相关文章

本站推荐