[發明專利]基于全局信息和局部信息的代碼搜索嵌入方法及裝置有效
| 申請號: | 202110697410.6 | 申請日: | 2021-06-23 |
| 公開(公告)號: | CN113449076B | 公開(公告)日: | 2022-08-30 |
| 發明(設計)人: | 彭敏;羅娟;黎芮彤;胡剛 | 申請(專利權)人: | 武漢大學 |
| 主分類號: | G06F16/33 | 分類號: | G06F16/33;G06F40/289;G06K9/62;G06N3/04 |
| 代理公司: | 武漢智權專利代理事務所(特殊普通合伙) 42225 | 代理人: | 張凱 |
| 地址: | 430072*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 全局 信息 局部 代碼 搜索 嵌入 方法 裝置 | ||
1.一種基于全局信息和局部信息的代碼搜索嵌入方法,其特征在于,所述基于全局信息和局部信息的代碼搜索嵌入方法包括:
構建局部信息抽取模塊,用于得到代碼和查詢的順序信息向量、結構向量以及交互向量;
所述構建局部信息抽取模塊,用于得到代碼和查詢的順序信息向量、結構向量以及交互向量的步驟包括:
構建順序信息抽取子模塊:
使用ON-LSTM作為順序信息抽取子模塊,順序地將由詞嵌入構成的代碼和查詢,輸入到ON-LSTM網絡中,得到最終的隱藏狀態:
其中,ct是代碼的詞嵌入向量,qt是查詢的詞嵌入向量,是輸入代碼段后ON-LSTM的最終隱藏狀態,是輸入查詢后ON-LSTM的最終隱藏狀態;
構建結構信息抽取子模塊:
ON-LSTM能夠在訓練完成后,可以直接抽取出序列的結構信息,而不依賴于句子結構,抽取方法是將ON-LSTM結構中對于序列的結構信息有記憶的中間狀態累加:
其中,是ON-LSTM中主遺忘門未經cumsum處理前的狀態,seqlen是固定的序列長度,經過等式變換后,得到通過計算結構信息的等式,經由ON-LSTM輸出的向量有兩類,一類是順序信息向量另一類是經過矩陣乘法操作后擴充為和順序信息向量相同維度的初始結構向量
為了增強結構信息,分別使用卷積層對查詢和代碼段的初始結構向量進行信息增強處理,得到卷積層對查詢和代碼段的結構向量:
構建交互信息抽取子模塊;
將查詢的順序信息向量和代碼的順序信息向量,通過交互注意力子模塊,強調代碼和查詢兩者最相關的部分,使用注意力機制為QC的交互表示構造注意矩陣M,包含了查詢Q和代碼C之間的交互信息,注意矩陣如下:
其中,Wq∈R2u×a,Wc∈R2u×a,V∈Ra是注意力參數,a是注意力維度;
使用池化操作,分別從代碼方向和查詢方向推導出基于池的投影向量,使用按行和按列值在M上的最大池得到mQ、mC,計算權重向量δQ∈R|Q|和δC∈R|C|如下所示:
δQ=softmax(mQ);δC=softmax(mC);
通過權重向量δQ∈R|Q|和δC∈R|C|以及和的計算得到交互向量:
VQ=δQhQ;VC=δChC;
構建全局信息抽取模塊,用于根據代碼和查詢的順序信息向量得到代碼和查詢的全局信息向量;
所述構建全局信息抽取模塊,用于根據代碼和查詢的順序信息向量得到代碼和查詢的全局信息向量的步驟包括:
構建全局信息抽取模塊,通過共享的線性層和卷積層,對代碼和查詢的順序信息向量進行計算得到代碼和查詢的全局信息向量;
分別將代碼和查詢的結構向量、交互向量以及全局信息向量拼接,得到代碼和查詢的特征向量;
構建相似度匹配模塊,設置訓練網絡的綜合損失函數,其中,所述相似度匹配模塊,包括計算查詢和代碼的特征向量的余弦相似度的第一計算模塊,以及計算查詢和代碼的第二結構向量的曼哈頓距離的第二計算模塊,所述綜合損失函數包括合頁損失函數、有權重的曼哈頓距離以及正則損失;
對代碼-描述匹配對語料進行結構化分詞以及預處理,得到結構化詞嵌入;
將結構化詞嵌入先加載至局部信息抽取模塊,再加載至全局信息抽取模塊,設置初始化參數并利用訓練集來訓練擬合模型的參數,在驗證集上迭代一定次數直到綜合損失函數收斂,得到訓練好的模型;
利用訓練好的模型對待處理的查詢進行預測,獲得與待處理的查詢對應的代碼搜索結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110697410.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:無托盤砌塊碼垛打包流水線
- 下一篇:一種應用于服務集群內的負載均衡方法及裝置
- 信息記錄介質、信息記錄方法、信息記錄設備、信息再現方法和信息再現設備
- 信息記錄裝置、信息記錄方法、信息記錄介質、信息復制裝置和信息復制方法
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄設備、信息重放設備、信息記錄方法、信息重放方法、以及信息記錄介質
- 信息存儲介質、信息記錄方法、信息重放方法、信息記錄設備、以及信息重放設備
- 信息存儲介質、信息記錄方法、信息回放方法、信息記錄設備和信息回放設備
- 信息記錄介質、信息記錄方法、信息記錄裝置、信息再現方法和信息再現裝置
- 信息終端,信息終端的信息呈現方法和信息呈現程序
- 信息創建、信息發送方法及信息創建、信息發送裝置





