說人話,搜代碼,F(xiàn)acebook發(fā)布神經(jīng)代碼搜索數(shù)據(jù)集+benchmark
郭一璞 發(fā)自 中關(guān)村
量子位 報道 | 公眾號 QbitAI
怎么才能方便的找自己需要的代碼?
最好是能用人話來直接搜索、說什么就給什么那種。
Facebook剛剛發(fā)布了新benchmark和數(shù)據(jù)集,用于評估神經(jīng)代碼搜索模型。
比如在去年滑鐵盧大學、Facebook和UC伯克利的研究者發(fā)布的NCS模型,還有MIT、Facebook和UC伯克利發(fā)布的UNIF這個模型上,都可以運行。
在這類模型上,給到一個自然語言的query,比如:
How can I convert a stack trace to a string?
如何將棧追蹤轉(zhuǎn)化為字符串?”
代碼搜索模型就會在整個語料庫里搜索相關(guān)的代碼片段。
因此,F(xiàn)acebook此次推出的數(shù)據(jù)集包含以下三個部分:
總共包含3個部分:
GitHub存儲庫
由GitHub上近24549個星數(shù)最高的Android庫的代碼片段組成的搜索語料庫,包含Python腳本。
搜索語料庫
依靠前面的24549個庫,解析其中的方法主體,總共包括4,716,814個。給到自然語言query后,代碼搜索模型從中搜索出需要的代碼片段。
每個方法主體已經(jīng)給到了包括它的ID、文件路徑、起始行、結(jié)束行、url等在內(nèi)的相關(guān)信息。
評估數(shù)據(jù)集
包含287個堆棧溢出問答對,包括其ID、問題、答案url、答案幾個部分,這些問題來自Stack Exchange。
在NCS和UNIF兩個模型和他們的變體上的運行結(jié)果如下:
傳送門
論文
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



