[發明專利]一種基于樹形神經網絡的代碼推薦方法有效
| 申請號: | 202010185481.3 | 申請日: | 2020-03-17 |
| 公開(公告)號: | CN111459491B | 公開(公告)日: | 2021-11-05 |
| 發明(設計)人: | 陶傳奇;林鍇;黃志球 | 申請(專利權)人: | 南京航空航天大學 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06N3/04;G06N3/08 |
| 代理公司: | 江蘇圣典律師事務所 32237 | 代理人: | 賀翔 |
| 地址: | 210016 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 樹形 神經網絡 代碼 推薦 方法 | ||
本發明公開了一種基于樹形神經網絡的代碼推薦方法,包括:對由代碼塊構成的數據集進行預處理,并構建訓練集;對訓練集中每個樣本的待推薦代碼行上文代碼部分進行處理,將其解析成抽象語法樹,提取根節點到待推薦代碼行的路徑信息,并調整抽象語法樹和樣本的注釋信息;訓練由transformer模型改進得到的AST?Transformer模型,將抽象語法樹、注釋信息以及根節點到推薦點的路徑信息作為輸入,推薦代碼行序列作為輸出;提取用戶已編寫代碼及其相關注釋信息,預測下一行可能的代碼。本發明的方法對transformer模型進行改進以適應樹形結構,使用到了代碼中的注釋信息,更好的幫助模型學習語義信息,做出高質量的推薦。
技術領域
本發明屬于智能化軟件開發的代碼推薦領域,具體涉及一種基于樹形神經網絡的代碼推薦方法。
背景技術
隨著物聯網的不斷發展,用戶量不斷加大且用戶對軟件功能的需求不斷增加,這使得軟件開發的規模不斷增大,另外編程語言的不斷更新,也使得開發人員開發難度不斷加大。開發人員在軟件開發過程經常要通過搜索引擎等方法搜索其他開發者的代碼作為參考完成自己的任務,但對于搜索引擎得到的參考代碼并不能很好的切合自己已寫的代碼。開發者通常還要閱讀自己的代碼,對參考代碼進行一定的修改才能得到自己想要的形式,這對開發人員是在時間和精力上極大的消耗,大大拉長了軟件開發周期。
目前深度學習發展迅速,也逐漸應用到了軟件開發過程中,目前已有一些深度學習方法應用到代碼推薦中,例如循環神經網絡或者transformer(轉換器)模型等等。但這些模型很少能夠充分獲取代碼中的結構信息,并且存在對長序列的信息丟失問題,這些問題使得推薦的代碼不夠準確,并不能夠很好的幫助到開發人員。代碼塊的另一種表征形式是抽象語法樹,這一結構可以很好的體現結構信息,通過對transformer模型進行改進,適應抽象語法樹結構,不僅可以解決結構信息獲取不足問題,同時也解決了長序列信息丟失問題,提高推薦精度。
發明內容
針對于上述現有技術的不足,本發明的目的在于提供一種基于樹形神經網絡的代碼推薦方法,以解決傳統深度學習方法不能很好捕捉代碼結構信息和對長序列信息丟失的問題;本發明的方法對transformer模型進行改進以適應樹形結構,使用到了代碼中的注釋信息,更好的幫助模型學習語義信息,做出高質量的推薦。
為達到上述目的,本發明采用的技術方案如下:
本發明的一種基于樹形神經網絡的代碼推薦方法,包括步驟如下:
步驟1)對由代碼塊構成的數據集進行預處理,隨機從代碼塊中選取待推薦代碼行,以待推薦代碼行序列作為標簽,待推薦代碼行上文代碼及其相關注釋信息作為屬性構建訓練集;
步驟2)對訓練集中每個樣本的待推薦代碼行上文代碼部分進行處理,將其解析成抽象語法樹,提取根節點到待推薦代碼行的路徑信息,并調整抽象語法樹和樣本的注釋信息;
步驟3)訓練由transformer模型改進得到的AST-Transformer模型,將抽象語法樹、注釋信息以及根節點到推薦點的路徑信息作為輸入,推薦代碼行序列作為輸出;
步驟4)提取用戶已編寫代碼及其相關注釋信息,利用上述步驟3)中得到的訓練好的AST-transformer模型結合beam search搜索算法來預測下一行可能的代碼。
進一步地,所述步驟1)具體包括:
11)從數據集中過濾掉所有行數小于等于5行的代碼塊;
12)對代碼進行詞法分析形成詞序列,計算代碼塊之間的相似度檢測重復代碼,并將重復的代碼去除;
13)從代碼塊中隨機選取一行作為待推薦代碼行,待推薦代碼行上文代碼以及和待推薦代碼行相關的注釋信息作為輸入特征,以上文代碼,注釋信息,待推薦代碼行三元組形式作為一個樣本構造訓練集。
進一步地,所述步驟2)具體包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010185481.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:硬件木馬檢測與定位方法及系統
- 下一篇:一種無人機實時軌跡預測方法





