[發明專利]代碼摘要自動化生成方法及裝置有效
| 申請號: | 202010312534.3 | 申請日: | 2020-04-20 |
| 公開(公告)號: | CN111651198B | 公開(公告)日: | 2021-04-13 |
| 發明(設計)人: | 葉蔚;謝睿;張世琨;馬森;高慶;孫基男 | 申請(專利權)人: | 北京大學 |
| 主分類號: | G06F8/72 | 分類號: | G06F8/72;G06F8/73;G06F8/41 |
| 代理公司: | 北京華創智道知識產權代理事務所(普通合伙) 11888 | 代理人: | 彭隨麗 |
| 地址: | 100871*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 摘要 自動化 生成 方法 裝置 | ||
本發明實施例提供一種代碼摘要自動化生成方法及裝置,方法包括:基于代碼摘要生成模型中的編碼器分別對輸入序列進行編碼,獲取輸入序列的語義向量;基于代碼摘要生成模型中的解碼器對輸入序列的語義向量進行解碼,生成代碼樣本的函數名和代碼摘要;根據生成的函數名、生成的代碼摘要,以及預先獲取的代碼樣本的目標函數名和目標代碼摘要,計算代碼摘要生成模型的損失函數的值,根據損失函數的值對代碼摘要生成模型進行訓練;將目標代碼的輸入序列輸入訓練好的代碼摘要生成模型中生成目標代碼的代碼摘要。本發明實施例采用基于函數名預測任務和代碼自動摘要生成任務的多任務學習機制對代碼摘要生成模型進行訓練,提升自動生成的代碼摘要的質量。
技術領域
本發明屬于軟件維護技術領域,尤其涉及一種代碼摘要自動化生 成方法及裝置。
背景技術
代碼摘要是對一段源代碼簡短的自然語言描述,高質量的代碼摘 要能夠有效幫助代碼的理解和軟件的維護工作。
據統計,在軟件開發生命周期中,人工編寫代碼摘要需要進行程 序理解及其相關活動,占用大量時間。而且人工編寫代碼摘要過程乏 味、耗時較長,代碼摘要的編寫工作在實際軟件開發過程中往往不受 重視。在大部分軟件項目中,人工編寫的代碼摘要常常出現不匹配、 過時甚至丟失的問題。
代碼摘要自動生成方法通過自動化地生成代碼摘要來輔助程序理 解和軟件維護,可以將軟件開發人員從乏味的代碼摘要編寫工作中解 脫出來,有效降低軟件的開發維護成本,極大提高了軟件開發效率。 因此,自動化的生成高質量代碼摘要一直是軟件工程研究的任務之一。
主流的代碼摘要生成方法可以分為基于信息檢索的代碼摘要生 成、基于代碼關鍵詞的代碼摘要生成、基于統計語言模型的代碼摘要 生成以及基于深度學習的代碼摘要生成四種方法。例如,通過搜索相 似的代碼來生成代碼摘要、根據從代碼中提取的關鍵字生成注釋、使 用主題模型和n-gram預測Java源文件中的注釋,以及基于注意力機 制的遞歸神經網絡(Recursive Neural Network,RNN)模型,通過注 意力機制直接將摘要中的單詞與各個代碼字符進行對齊,以提高生成 摘要的最終效果。此外,代碼摘要任務可以建模為機器翻譯問題,因 此基于序列到序列(sequence to sequence,Seq2Seq)的深度學習模型 在代碼摘要中也有廣泛的應用。
其中,基于深度學習的代碼摘要生成方法中,深度學習模型在進 行學習時僅執行代碼表示學習任務,即代碼摘要生成任務,從而導致 代碼摘要效果較差。
發明內容
為克服上述現有的代碼摘要自動化生成方法獲取的代碼摘要效果 較差的問題或者至少部分地解決上述問題,本發明實施例提供一種代 碼摘要自動化生成方法及裝置。
根據本發明實施例的第一方面,提供一種代碼摘要自動化生成方 法,包括:
基于代碼摘要生成模型中的編碼器分別對代碼樣本的代碼文本序 列、SBT序列和函數名序列進行編碼,獲取所述代碼文本序列的語義 向量、所述SBT序列的語義向量和所述函數名序列的語義向量;
基于所述代碼摘要生成模型中的解碼器對所述代碼文本序列的語 義向量和SBT序列的語義向量進行解碼,生成所述代碼樣本的函數 名,對所述代碼文本序列的語義向量、SBT序列的語義向量和函數名 序列的語義向量進行解碼,生成所述代碼樣本的代碼摘要;
根據生成的函數名、生成的代碼摘要,以及預先獲取的所述代碼 樣本的目標函數名和目標代碼摘要,計算所述代碼摘要生成模型的損 失函數的值,根據所述損失函數的值對所述代碼摘要生成模型進行訓 練;
將目標代碼的代碼文本序列、SBT序列和函數名序列輸入訓練好 的所述代碼摘要生成模型中,輸出所述目標代碼的代碼摘要。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學,未經北京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010312534.3/2.html,轉載請聲明來源鉆瓜專利網。





