當前位置:
首頁 > 科技 > 臉書讓開發者用自然語言就能搜索程序代碼

臉書讓開發者用自然語言就能搜索程序代碼

臉書為了讓開發者可以快速找到需要功能的程序代碼片段,開發了新的程序代碼搜索工具NCS(Neural Code Search),開發者可以直接使用自然語言進行程序代碼搜索。

NCS使用GitHub存儲庫當作訓練資料庫,以熱門開發者論壇Stack Overflow上的問題進行搜索,而模型可以正確回答諸如「如何隱藏Android屏幕鍵盤?」以及「如何刪除整個文件夾以及內容?」等問題,回傳相關的程序代碼片段。

NCS是一種結合自然語言以及信息搜索技術的應用,臉書提到,不少開發者的需求,早就已經存在於大型程序代碼存儲庫其中,因此可以使用自然語言描述問題,直接從程序代碼庫中得到答案,將能加快開發工作。NCS還附有擴展組件UNIF,當有足夠的監督式數據,便能使用這個擴展組件進行監督式訓練,以改進模型的性能。

NCS模型以嵌入(Embedding)的方式截取程序語義,也就是說,經過適當地計算,語義相似的程序代碼實體在矢量空間會相當靠近,像是(下圖)隱藏或是關閉Android屏幕鍵盤的問題,即便兩個功能程序代碼不同,但是在矢量空間相當靠近。

臉書以這個概念構建NCS模型,在構建模型的階段,每個程序代碼片段都會被嵌入到矢量空間中,而在執行查詢的時候,用戶的查詢會被映射到同一個矢量空間中,矢量的距離是估計程序代碼片段和查詢相關的程度。

GitHub存儲庫中的程序代碼,被當作訓練NCS模型的數據,在Stack Overflow上評估NCS的性能,臉書把Stack Overflow上的標題作為查詢,並把答案中的程序代碼當成是解答,然後評量NCS對查詢的回應,出現在Stack Overflow解答前1、前5以及前10的次數。在創建的287個問題中,NCS的回答出現在前10的有175個問題,相當是整個數據集的60%,其中前5的有136個問題,回答就跟問題的最佳解答相同的有83題。

最近臉書在搜索程序代碼研究進行了不少研究,在不久前才剛發布了程序代碼推薦工具Aroma,讓開發者以程序代碼搜程序代碼的方式,針對相同問題,探索其他更好的解決方式。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 十輪網 的精彩文章:

負載均衡器HAProxy 2.0發布,支持更完善動態配置功能
微軟封鎖Windows PC和不安全的藍牙版FIDO密鑰配對

TAG:十輪網 |