恭喜南京信息工程大學陳炳翰獲國家專利權
買專利賣專利找龍圖騰,真高效! 查專利查商標用IPTOP,全免費!專利年費監控用IP管家,真方便!
龍圖騰網恭喜南京信息工程大學申請的專利一種基于多粒度特征融合的代碼摘要生成方法獲國家發明授權專利權,本發明授權專利權由國家知識產權局授予,授權公告號為:CN119739857B 。
龍圖騰網通過國家知識產權局官網在2025-05-09發布的發明授權授權公告中獲悉:該發明授權的專利申請號/專利號為:202510260828.9,技術領域涉及:G06F16/34;該發明授權一種基于多粒度特征融合的代碼摘要生成方法是由陳炳翰;許小龍;曹宇新;崔光明;項昊龍;程勇設計研發完成,并于2025-03-06向國家知識產權局提交的專利申請。
本一種基于多粒度特征融合的代碼摘要生成方法在說明書摘要公布了:本發明提供了一種基于多粒度特征融合的代碼摘要生成方法,包括:步驟1,對數據集中樣本進行預處理操作,獲取代碼整體語義信息;步驟2,搭建源代碼多粒度特征編碼器,基于詞元序列、抽象語法樹和控制流圖三種粒度特征的數據規模和數據結構差異,獲得各個粒度特征的上下文向量;步驟3,對不同粒度特征編碼器的輸出實現粒度特征融合;步驟4,將融合后所得到的詞元序列融合特征與控制流圖融合特征輸入到基于Transformer的解碼器中,輸出當前時間步預測單詞,并最終組成摘要。本發明所公開的基于多粒度特征融合的代碼摘要生成方法,能有效提取源代碼關鍵特征并盡量減少計算開銷,并且有效緩解特征序列的長距離依賴問題。
本發明授權一種基于多粒度特征融合的代碼摘要生成方法在權利要求書中公布了:1.一種基于多粒度特征融合的代碼摘要生成方法,其特征在于,包括以下步驟:步驟1,對數據集中樣本進行預處理操作,將源代碼處理為詞元序列、抽象語法樹、控制流圖三種粒度特征,以獲取代碼整體語義信息;步驟2,搭建源代碼多粒度特征編碼器,基于詞元序列、抽象語法樹和控制流圖三種粒度特征的數據規模和數據結構差異,設置不同的編碼方式,并獲得各個粒度特征的上下文向量;步驟3,對不同粒度特征編碼器的輸出進行基于交叉注意力計算實現粒度特征融合;步驟4,將融合后所得到的具有抽象語法樹AST特征的詞元序列融合特征與控制流圖融合特征輸入到基于Transformer的解碼器中,通過每個時間步得到的詞表中所有單詞的輸出概率,輸出當前時間步預測單詞,并最終組成摘要;步驟1包括如下步驟:步驟1.1,獲取源代碼的詞元序列特征:對源代碼中詞元序列的函數名稱進行標記,將函數名作為序列的自然語言NL部分,所標記的位置統一替換為funcname,再將源碼分詞后的序列作為程序語言PL部分,自然語言NL部分和程序語言PL部分合并后作為整體詞元序列;步驟1.2,獲取源代碼的抽象語法樹特征:對于Python語言,通過抽象語法樹AST模塊的ast.dump方法獲取源代碼的抽象語法樹AST字符串表示,采用一種抽象語法樹AST圖結構的生成方法,將抽象語法樹AST字符串生成樹形結構表示:篩選出抽象語法樹AST字符串中的空值屬性并進行刪除,對抽象語法樹AST字符串以節點為單位進行劃分,并保留括號以獲得節點間結構層次信息;根據括號表示的源代碼結構,將每個劃分出的節點指向節點唯一的父節點,從而構建完整的樹形結構;對于Java語言,通過Javalang模塊來獲得源代碼抽象語法樹AST的字符串表示;步驟1.3,獲取源代碼的控制流圖特征:在Python中pycfg模塊的基礎上引入可識別的節點類型,并糾正潛在的錯誤路徑,使得生成的控制流圖CFG圖結構由基于語句的節點組成,連接所有節點可重構代碼的內容;對于Java語言,使用anger工具對抽象語法樹AST特征進行再處理,并結合Soot開源工具來獲得控制流圖CFG信息;步驟1.4,使用字節對編碼BPE算法對源代碼所有特征,即詞元序列、抽象語法樹和控制流圖三種粒度特征,進行分詞并映射為詞匯表中的唯一索引,通過詞表索引最終嵌入為稠密向量,對于詞元序列、抽象語法樹、控制流圖三種粒度特征,分別設置特征序列的最大長度,小于最大長度的序列以pad標記進行填充,截斷大于最大長度的序列;對于詞元序列,在詞元序列所對應的詞表索引序列的開頭與結尾分別添加cls與sep對應詞表中索引,以滿足預訓練模型輸入格式;對于抽象語法樹AST,利用最大池化操作將分詞后詞元序列數大于一的節點聚合為單個向量表示;對于控制流圖CFG,利用CodeBERT模型,將每個節點視作詞元序列進行預訓練,以第一個輸出的cls標記的嵌入向量表示節點的整體含義。
如需購買、轉讓、實施、許可或投資類似專利技術,可聯系本專利的申請人或專利權人南京信息工程大學,其通訊地址為:211899 江蘇省南京市江北新區華富路1號數智溪谷4號樓;或者聯系龍圖騰網官方客服,聯系龍圖騰網可撥打電話0551-65771310或微信搜索“龍圖騰網”。
1、本報告根據公開、合法渠道獲得相關數據和信息,力求客觀、公正,但并不保證數據的最終完整性和準確性。
2、報告中的分析和結論僅反映本公司于發布本報告當日的職業理解,僅供參考使用,不能作為本公司承擔任何法律責任的依據或者憑證。