说人话,搜代码,Facebook发布神经代码搜索数据集+benchmark

郭一璞 发自 中关村

量子位 报道 | 公众号 QbitAI

怎么才能方便的找自己需要的代码?

最好是能用人话来直接搜索、说什么就给什么那种。

Facebook刚刚发布了新benchmark和数据集,用于评估神经代码搜索模型。

说人话,搜代码,Facebook发布神经代码搜索数据集+benchmark

比如在去年滑铁卢大学、Facebook和UC伯克利的研究者发布的NCS模型,还有MIT、Facebook和UC伯克利发布的UNIF这个模型上,都可以运行。

在这类模型上,给到一个自然语言的query,比如:

How can I convert a stack trace to a string?
如何将栈追踪转化为字符串?”

代码搜索模型就会在整个语料库里搜索相关的代码片段。

因此,Facebook此次推出的数据集包含以下三个部分:

总共包含3个部分:

GitHub存储库

由GitHub上近24549个星数最高的Android库的代码片段组成的搜索语料库,包含Python脚本。

搜索语料库

依靠前面的24549个库,解析其中的方法主体,总共包括4,716,814个。给到自然语言query后,代码搜索模型从中搜索出需要的代码片段。

每个方法主体已经给到了包括它的ID、文件路径、起始行、结束行、url等在内的相关信息。

评估数据集

包含287个堆栈溢出问答对,包括其ID、问题、答案url、答案几个部分,这些问题来自Stack Exchange。

在NCS和UNIF两个模型和他们的变体上的运行结果如下:

说人话,搜代码,Facebook发布神经代码搜索数据集+benchmark

传送门

论文

Neural Code Search Evaluation Dataset

Hongyu Li, Seohyun Kim, Satish Chandra

https://arxiv.org/abs/1908.09804

GitHub

https://github.com/facebookresearch/Neural-Code-Search-Evaluation-Dataset

NCS模型

Retrieval on source code: a neural code search

Saksham Sachdev, Hongyu Li, Sifei Luan, Seohyun Kim, Koushik Sen, Satish Chandra

https://dl.acm.org/citation.cfm?id=3211353

UNIF模型

When Deep Learning Met Code Search

Jose Cambronero, Hongyu Li, Seohyun Kim, Koushik Sen, Satish Chandra

https://arxiv.org/abs/1905.03813

版权所有,未经授权不得以任何形式转载及使用,违者必究。