[發(fā)明專利]一種基于抽象語法樹的程序理解方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 202110096711.3 | 申請日: | 2021-01-25 |
| 公開(公告)號: | CN112835585A | 公開(公告)日: | 2021-05-25 |
| 發(fā)明(設計)人: | 呂晨;姜雪;高學劍;高曰秀;馬正;李季;呂蕾;劉弘 | 申請(專利權(quán))人: | 山東師范大學 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06N3/04;G06N3/08 |
| 代理公司: | 濟南圣達知識產(chǎn)權(quán)代理有限公司 37221 | 代理人: | 董雪 |
| 地址: | 250014 山*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 抽象 語法 程序 理解 方法 系統(tǒng) | ||
1.一種基于抽象語法樹的程序理解方法,其特征在于,包括:
獲取程序代碼;
將程序代碼生成語法樹;
提取每個語法樹根結(jié)點到終端結(jié)點的路徑;
根據(jù)屏蔽策略遮蔽路徑中部分結(jié)點后形成路徑表示向量;
根據(jù)屏蔽策略遮蔽程序代碼中部分節(jié)點后形成詞向量序列;
將路徑表示向量和詞向量序列輸入程序理解模型中完成預訓練任務,獲取訓練好的用于程序理解的程序理解模型。
2.如權(quán)利要求1所述的一種基于抽象語法樹的程序理解方法,其特征在于,程序理解模型采用Transformer的編解碼器結(jié)構(gòu),去掉解碼器端的位置編碼,并添加二分類器進行預測,其中編碼器讀入AST路徑的集合并生成AST的表示,解碼器利用該表示推測出AST對應的代碼片段。
3.如權(quán)利要求2所述的一種基于抽象語法樹的程序理解方法,其特征在于,對解碼器的輸出處理為:使用“INDENT”和“DEDENT”表示程序代碼的開始和結(jié)束;使用“NEWLINE”代表程序代碼換行;使用“_”代表程序代碼中的空格;刪除程序代碼中的注釋。
4.如權(quán)利要求2所述的一種基于抽象語法樹的程序理解方法,其特征在于,程序理解模型訓練時,訓練損失為二分類交叉熵損失與多分類交叉熵之和。
5.如權(quán)利要求1所述的一種基于抽象語法樹的程序理解方法,其特征在于,每個路徑為一個結(jié)點序列。
6.如權(quán)利要求1所述的一種基于抽象語法樹的程序理解方法,其特征在于,根據(jù)屏蔽策略遮蔽路徑中部分節(jié)點,將路徑中各結(jié)點表示為向量,對向量進行拼接后,形成路徑表示向量。
7.如權(quán)利要求6所述的一種基于抽象語法樹的程序理解方法,其特征在于,根據(jù)屏蔽策略遮蔽程序代碼中部分節(jié)點后形成詞向量序列的具體過程為:
將程序代碼中與路徑中被遮蔽的結(jié)點對應的結(jié)點保留;
將程序代碼中其余結(jié)點遮蔽;
獲取程序代碼中各結(jié)點的詞向量,形成詞向量序列。
8.一種基于抽象語法樹的程序理解系統(tǒng),其特征在于,包括:
一種基于抽象語法樹的程序理解系統(tǒng),包括:
程序代碼獲取模塊,用于獲取程序代碼;
語法樹生成模塊,用于將程序代碼生成語法樹;
路徑提取模塊,用于提取每個語法樹根結(jié)點到終端結(jié)點的路徑;
路徑表示向量生成模塊,用于根據(jù)屏蔽策略遮蔽路徑中部分結(jié)點后形成路徑表示向量;
詞向量序列生成模塊,用于根據(jù)屏蔽策略遮蔽程序代碼中部分節(jié)點后形成詞向量序列;
模型訓練模塊,用于將路徑表示向量和詞向量序列輸入程序理解模型中進行預訓練,獲取訓練好的用于程序理解的程序理解模型。
9.一種電子設備,其特征在于,包括存儲器和處理器以及存儲在存儲器上并在處理器上運行的計算機指令,所述計算機指令被處理器運行時,完成權(quán)利要求1-7任一項所述的一種基于抽象語法樹的程序理解方法的步驟。
10.一種計算機可讀存儲介質(zhì),其特征在于,用于存儲計算機指令,所述計算機指令被處理器執(zhí)行時,完成權(quán)利要求1-7任一項所述的一種基于抽象語法樹的程序理解方法的步驟。
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于山東師范大學,未經(jīng)山東師范大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110096711.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





