【技術(shù)實(shí)現(xiàn)步驟摘要】
一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法及系統(tǒng)
[0001]本專利技術(shù)涉及代碼摘要生成
,具體涉及一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法及系統(tǒng)。
技術(shù)介紹
[0002]隨著越來(lái)越多的研究人員將深度學(xué)習(xí)應(yīng)用到解決軟件工程領(lǐng)域的問(wèn)題上,代碼自動(dòng)摘要技術(shù)作為程序理解的一項(xiàng)重要突破,在近幾年逐漸成為研究熱點(diǎn)。代碼摘要是指能簡(jiǎn)明扼要地描述代碼行為、主體和設(shè)計(jì)思想的一種概括的表示,它可以幫助代碼閱讀者迅速獲取代碼基本內(nèi)容方面的信息。生成代碼摘要的任務(wù)可以描述為:利用源代碼序列來(lái)預(yù)測(cè)方法、變量、類或代碼段的名稱。自動(dòng)代碼摘要生成是指運(yùn)用計(jì)算機(jī)自動(dòng)地為未知源代碼或未知代碼片段生成具有可讀性的相關(guān)描述,為不了解此段代碼的閱讀者提供代碼摘要。源代碼的自然語(yǔ)言摘要通過(guò)顯著減少開(kāi)發(fā)人員的工作量來(lái)促進(jìn)程序理解。
[0003]目前的代碼摘要生成任務(wù)雖然完成了為未知源代碼段生成具有可讀性的代碼摘要的任務(wù),但仍存在以下不足:(1)通常情況下,二進(jìn)制源代碼長(zhǎng)度差距較大,使得模型可捕獲代碼句柄之間的長(zhǎng)距離依賴關(guān)系能力較差;(2)從源代碼編譯生成二進(jìn)制過(guò)程中,有很多有助于理解代碼意圖的信息會(huì)被丟失,比如:函數(shù)名稱、變量名稱、數(shù)據(jù)結(jié)構(gòu)定義、變量類型定義、注釋信息等,為二進(jìn)制代碼摘要生成產(chǎn)生了更大的阻礙。
[0004]在二進(jìn)制代碼摘要生成任務(wù)中,如何解決二進(jìn)制源代碼長(zhǎng)度差距較大,使得模型可捕獲代碼token之間的長(zhǎng)距離依賴關(guān)系能力較差這一問(wèn)題,以及如何處理從源代碼編譯生成二進(jìn)制過(guò)程中 ...
【技術(shù)保護(hù)點(diǎn)】
【技術(shù)特征摘要】
1.一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法,其特征在于,包括以下步驟:將一段程序經(jīng)過(guò)編譯和鏈接過(guò)程生成可執(zhí)行程序,提取其中的二進(jìn)制代碼序列和對(duì)應(yīng)的二進(jìn)制函數(shù)名序列;對(duì)所述二進(jìn)制函數(shù)名序列進(jìn)行編碼,獲得函數(shù)名表示向量;將所述二進(jìn)制代碼序列輸入BERT預(yù)訓(xùn)練語(yǔ)言模型,獲取二進(jìn)制代碼序列全局上下文信息特征;利用多個(gè)卷積核對(duì)所述二進(jìn)制代碼序列全局上下文信息特征進(jìn)行局部語(yǔ)義特征提??;將所述二進(jìn)制代碼序列全局上下文信息特征和局部語(yǔ)義特征輸入預(yù)訓(xùn)練的深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò),獲取二進(jìn)制代碼序列的表示向量;將所述函數(shù)名表示向量和所述二進(jìn)制代碼序列的表示向量輸入預(yù)訓(xùn)練的前饋神經(jīng)網(wǎng)絡(luò),獲取二進(jìn)制代碼摘要。2.根據(jù)權(quán)利要求1所述的一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法,其特征在于,提取二進(jìn)制代碼序列和對(duì)應(yīng)的二進(jìn)制函數(shù)名序列的方法包括:去除所述可執(zhí)行程序中的靜態(tài)數(shù)據(jù)區(qū)、堆和棧,即獲得二進(jìn)制代碼序列和與其對(duì)應(yīng)的二進(jìn)制函數(shù)名序列。3.根據(jù)權(quán)利要求1所述的一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法,其特征在于,對(duì)所述二進(jìn)制函數(shù)名序列進(jìn)行編碼,獲得函數(shù)名表示向量的具體過(guò)程包括:對(duì)于所述二進(jìn)制函數(shù)名序列中的每一個(gè)二進(jìn)制函數(shù)名,提取關(guān)鍵詞,計(jì)算二進(jìn)制函數(shù)名關(guān)鍵詞的詞頻,所述詞頻表示該二進(jìn)制函數(shù)名關(guān)鍵詞在所述二進(jìn)制函數(shù)名序列中出現(xiàn)的概率;計(jì)算二進(jìn)制函數(shù)名關(guān)鍵詞的逆文檔頻率,所述逆文檔頻率表示該函數(shù)名關(guān)鍵詞在所述二進(jìn)制函數(shù)名序列中的普遍程度;將所述詞頻和所述逆文檔頻率相乘,獲得函數(shù)名表示向量。4.根據(jù)權(quán)利要求3所述的一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法,其特征在于,所述詞頻的計(jì)算公式為:其中,表示函數(shù)名關(guān)鍵詞w在二進(jìn)制函數(shù)名集D
i
中出現(xiàn)的概率,count(w)表示函數(shù)名關(guān)鍵詞w出現(xiàn)的次數(shù),|D
i
|表示二進(jìn)制函數(shù)名集D
i
中出現(xiàn)的所有函數(shù)名關(guān)鍵詞的數(shù)量;所述逆文檔頻率的計(jì)算公式為:其中,IDF
w
表示當(dāng)前函數(shù)名關(guān)鍵詞w在二進(jìn)制函數(shù)名集的普遍程度,n表示二進(jìn)制函數(shù)名集總數(shù),l(w,D
i
)表示當(dāng)前二進(jìn)制函數(shù)名集D
i
中是否包含當(dāng)前函數(shù)名關(guān)鍵詞w,包含則為1,不包含則為0。5.根據(jù)權(quán)利要求1所述的一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法,其特征在于,將所述二進(jìn)制代碼序列輸入BERT預(yù)訓(xùn)練語(yǔ)言模型,獲取二進(jìn)制代
碼序列全局上下文信息特征的具體過(guò)程包括:計(jì)算二進(jìn)制代碼序列T中每個(gè)二進(jìn)制代碼的位置編碼,獲得所述二進(jìn)制代碼序列T對(duì)應(yīng)的位置編碼序列LE;將所述二進(jìn)制代碼序列T和對(duì)應(yīng)的位置編碼序列LE相加,獲得輸入T
input
;將輸入T
input
通過(guò)自注意力機(jī)制處理,獲得自注意力機(jī)制的輸出結(jié)果Attention(Q,K,V);具體過(guò)程包括:將輸入T
input
與查詢向量的權(quán)重矩陣、值向量的權(quán)重矩陣、鍵向量的權(quán)重矩陣分別相乘,獲得查詢向量Q、值向量K、鍵向量V;將查詢向量Q、值向量K、鍵向量V作為softmax函數(shù)的輸入,通過(guò)運(yùn)算獲得自注意力機(jī)制的輸出結(jié)果Attention(Q,K,V);其中,d
k
為調(diào)節(jié)參數(shù);將輸入T
input
和輸出結(jié)果Attenti...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:孫廣路,宋寧,梁麗麗,
申請(qǐng)(專利權(quán))人:哈爾濱理工大學(xué),
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。