• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法及系統(tǒng)技術(shù)方案

    技術(shù)編號(hào):36694040 閱讀:51 留言:0更新日期:2023-02-27 20:04
    本發(fā)明專利技術(shù)公開(kāi)了一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法及系統(tǒng),涉及代碼摘要生成技術(shù)領(lǐng)域。本發(fā)明專利技術(shù)的技術(shù)要點(diǎn)包括:將一段程序經(jīng)過(guò)編譯和鏈接過(guò)程生成可執(zhí)行程序,提取其中的二進(jìn)制代碼序列和二進(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ǔ)義特征提?。粚⒍M(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)制代碼摘要。獲取二進(jìn)制代碼摘要。獲取二進(jìn)制代碼摘要。

    【技術(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ò)程中,有很多有助于理解代碼意圖的信息丟失,是二進(jìn)制代碼摘要生成的關(guān)鍵和難點(diǎn)問(wèn)題。

    技術(shù)實(shí)現(xiàn)思路

    [0005]為此,本專利技術(shù)提出一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法及系統(tǒng),以解決現(xiàn)有代碼摘要生成方法對(duì)于代碼長(zhǎng)度差距較大、編譯過(guò)程中信息丟失較多的二進(jìn)制代碼不能有效生成摘要的問(wèn)題。
    [0006]根據(jù)本專利技術(shù)的一方面,提供一種基于BERT模型和深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的二進(jìn)制代碼摘要生成方法,該方法包括以下步驟:
    [0007]將一段程序經(jīng)過(guò)編譯和鏈接過(guò)程生成可執(zhí)行程序,提取其中的二進(jìn)制代碼序列和對(duì)應(yīng)的二進(jìn)制函數(shù)名序列;
    [0008]對(duì)所述二進(jìn)制函數(shù)名序列進(jìn)行編碼,獲得函數(shù)名表示向量;
    [0009]將所述二進(jìn)制代碼序列輸入BERT預(yù)訓(xùn)練語(yǔ)言模型,獲取二進(jìn)制代碼序列全局上下文信息特征;
    [0010]利用多個(gè)卷積核對(duì)所述二進(jìn)制代碼序列全局上下文信息特征進(jìn)行局部語(yǔ)義特征提取;
    [0011]將所述二進(jìn)制代碼序列全局上下文信息特征和局部語(yǔ)義特征輸入預(yù)訓(xùn)練的深層等長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò),獲取二進(jìn)制代碼序列的表示向量;
    [0012]將所述函數(shù)名表示向量和所述二進(jìn)制代碼序列的表示向量輸入預(yù)訓(xùn)練的前饋神經(jīng)網(wǎng)絡(luò),獲取二進(jìn)制代碼摘要。
    [0013]進(jìn)一步地,提取二進(jìn)制代碼序列和對(duì)應(yīng)的二進(jìn)制函數(shù)名序列的方法包括:去除所述可執(zhí)行程序中的靜態(tài)數(shù)據(jù)區(qū)、堆和棧,即獲得二進(jìn)制代碼序列和與其對(duì)應(yīng)的二進(jìn)制函數(shù)名序列。
    [0014]進(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ù)名表示向量。
    [0015]進(jìn)一步地,所述詞頻的計(jì)算公式為:
    [0016][0017]其中,表示函數(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ù)量;
    [0018]所述逆文檔頻率的計(jì)算公式為:
    [0019][0020]其中,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。
    [0021]進(jìn)一步地,將所述二進(jìn)制代碼序列輸入BERT預(yù)訓(xùn)練語(yǔ)言模型,獲取二進(jìn)制代碼序列全局上下文信息特征的具體過(guò)程包括:
    [0022]計(jì)算二進(jìn)制代碼序列T中每個(gè)二進(jìn)制代碼的位置編碼,獲得所述二進(jìn)制代碼序列T對(duì)應(yīng)的位置編碼序列LE;
    [0023]將所述二進(jìn)制代碼序列T和對(duì)應(yīng)的位置編碼序列LE相加,獲得輸入T
    input
    ;
    [0024]將輸入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ù);
    [0025]將輸入T
    input
    和輸出結(jié)果Attention(Q,K,V)相加,獲得輸出T
    output

    [0026]進(jìn)一步地,所述二進(jìn)制代碼序列T對(duì)應(yīng)的位置編碼序列LE中,每一個(gè)位置編碼由兩
    個(gè)分量組成,第一個(gè)分量的計(jì)算公式為:
    [0027][0028]式中,loc表示當(dāng)前字符在二進(jìn)制代碼序列中的位置;d
    MODEL
    表示輸入字符詞表查詢后的維度;
    [0029]第二個(gè)分量的計(jì)算公式為:
    [0030][0031]進(jìn)一步地,在獲得輸出T
    output
    后,對(duì)其進(jìn)行標(biāo)準(zhǔn)化處理,計(jì)算公式如下:
    [0032][0033]其中,μ表示二進(jìn)制代碼序列經(jīng)過(guò)自注意力機(jī)制處理后輸出的均值,σ表示二進(jìn)制代碼序列經(jīng)過(guò)自注意力機(jī)制處理后輸出的標(biāo)準(zhǔn)差;為防止標(biāo)準(zhǔn)差為0時(shí)分母失去意義,加入?yún)?shù)ε;α和β為迭代值。
    [0034]進(jìn)一步地,利用多個(gè)卷積核對(duì)所述二進(jìn)制代碼序列全局上下文信息特征進(jìn)行局部語(yǔ)義特征提取的過(guò)程包括:每個(gè)卷積核對(duì)應(yīng)一個(gè)特征表示矩陣M,M中每一列表示卷積核對(duì)于一個(gè)字符為單位滑動(dòng)進(jìn)行卷積操作得到的特征向量;M中每一列特征向量m
    i
    的計(jì)算公式如下:
    [0035]m
    i
    =f(e
    ·
    t
    (i:i+2)
    +b)
    [0036]其中,f表示Relu激活函數(shù),e表示卷積核中的參數(shù)矩陣,b表示偏置值,t
    (i:i+2)
    表示所述二進(jìn)制代碼序列全局上下文信息特征中由第i位置開(kāi)始的三個(gè)字符,到第i+2位置結(jié)束。
    [0037]進(jìn)本文檔來(lái)自技高網(wǎng)
    ...

    【技術(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ó)別省市:

    網(wǎng)友詢問(wèn)留言 已有0條評(píng)論
    • 還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 国产AV无码专区亚洲AV蜜芽| 精品无人区无码乱码大片国产| 无码人妻精品一区二区三区99仓本| 久久久无码精品亚洲日韩蜜桃| 亚洲中文无码永久免费| 在线观看无码的免费网站| 亚洲AV中文无码字幕色三| 狠狠精品干练久久久无码中文字幕| 18禁超污无遮挡无码免费网站| 制服在线无码专区| 日韩成人无码中文字幕| 6080YYY午夜理论片中无码| 久久精品无码一区二区三区日韩| 久久青草亚洲AV无码麻豆| 精品久久久久久无码人妻中文字幕 | 曰韩无码无遮挡A级毛片| 亚洲av无码一区二区乱子伦as| 无码一区二区三区中文字幕| 99精品国产在热久久无码 | 无码日韩人妻AV一区二区三区 | 五月婷婷无码观看| 亚洲精品无码成人| 亚洲爆乳AAA无码专区| 日韩精品人妻系列无码专区免费| 国产成人无码午夜福利软件| 国产怡春院无码一区二区| 亚洲国产精品无码久久98 | 国产av无码久久精品| 亚洲国产成人无码AV在线影院| 乱色精品无码一区二区国产盗 | 伊人久久大香线蕉无码| 亚洲AV无码精品蜜桃| 久久久久亚洲AV无码专区体验| 无码少妇一区二区| 免费无码中文字幕A级毛片| 无码一区二区三区免费| 久久精品亚洲中文字幕无码网站| 中国无码人妻丰满熟妇啪啪软件 | 少妇无码一区二区二三区| 人妻少妇精品无码专区二区 | 日韩美无码五月天|