[發明專利]一種自動給代碼打數據結構標簽的計算機可讀存儲介質有效
| 申請號: | 202011019000.8 | 申請日: | 2019-04-16 |
| 公開(公告)號: | CN112148879B | 公開(公告)日: | 2023-06-23 |
| 發明(設計)人: | 請求不公布姓名 | 申請(專利權)人: | 中森云鏈(成都)科技有限責任公司 |
| 主分類號: | G06F16/35 | 分類號: | G06F16/35;G06F16/335;G06F40/205 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 610041 四川省*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 自動 代碼 數據結構 標簽 計算機 可讀 存儲 介質 | ||
本發明公開了一種自動給代碼打數據結構標簽的計算機可讀存儲介質,屬于人工智能下自然語言處理領域,該方法包括:使用詞法分析器和語法分析器把代碼轉換成抽象語法樹;再對抽象語法樹進行建模,在樹上使用注意力機制和殘差塊從下到上對每個結點進行編碼,得到整棵樹的編碼;最后通過模型中分類器給代碼打數據結構的標簽。根據上述方法可以實現自動給代碼打數據結構標簽,減輕了人工給代碼打數據結構標簽的工作量。
本申請是申請日為2019年4月16日,申請號為2019103047977,發明創造名稱為“一種自動給代碼打數據結構標簽的方法”的分案申請。
技術領域
本發明屬于人工智能下自然語言處理領域,具體是一種自動給代碼打數據結構標簽的計算機可讀存儲介質。
背景技術
隨著互聯網的普及,互聯網上出現了大量高質量的代碼,但是很多代碼沒有數據結構的標簽,不方便用戶查詢和學習,人工給海量代碼打數據結構標簽是不現實的,所以本發明提出自動給代碼打數據結構標簽的方法,解決了如何給代碼自動打數據結構標簽的問題,減輕了人工標注代碼的工作量。
發明內容
本發明提出一種自動給代碼打數據結構標簽的計算機可讀存儲介質。一種計算機可讀介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現一種自動給代碼打數據結構標簽的方法,該方法使用詞法分析器和語法分析器把代碼轉為抽象語法樹,之后對每個詞進行詞嵌入,在樹上使用殘差塊和注意力機制等方法從下到上對每個結點依次編碼,最終得到根結點的編碼,該編碼既包括所有子結點的語法和語義表達,也包括自身結點的語義表達,最后使用根結點的表達進行分類,因為一段代碼有可能包含多種數據結構,所以使用多個sigmoid分類器來得到多個數據結構標簽。
本發明是一種計算機可讀介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行一種自動給代碼打數據結構標簽的方法,包括以下步驟:
步驟1:使用爬蟲技術從網頁上收集大量標注數據結構的代碼。
步驟2:由于不同的代碼語法不一樣,需要針對不同語言使用不同的詞法分析器,使用詞法分析器把代碼中不同類型的變量替換為對應的詞,詞法分析器把1、1.1等數字替換為Num;詞法分析器把所有變量名替換為Name;詞法分析器所有字符串替換為Str,其中詞法分析器不會把語言對應的關鍵字替換。
步驟3:針對不同的語言使用對應的語法分析器,使用語法分析器把詞法分析后的代碼轉為抽象語法樹。
步驟4:對詞法分析和語法分析后產生的詞進行詞嵌入,把Num、Name、根結點Module和賦值運算Assign等詞進行詞嵌入。
步驟5:使用同一個殘差塊Reb對每個結點的嵌入編碼進行非線性變換得到新的語義編碼。
e′=Rebq(e)=LN(W2·ReLU(W1·e)+e)
其中e為當前結點對應的嵌入編碼,e∈Rembedding_size,embedding?size為每個結點嵌入的維度,W1∈Rd_i×embedding_size,W2∈Rembedding_size×d_i,d_i為超參數,ReLU是ReLU激活函數,LN是層次歸一化,Reb為殘差塊。
步驟6:在樹上從下到上對非葉子結點進行編碼,使用注意力機制計算當前結點下所有子結點與當前結點最相關的語義表達。
Vc=A·HT
A=softmax(score(Q,H))
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中森云鏈(成都)科技有限責任公司,未經中森云鏈(成都)科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011019000.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:手指固定裝置
- 下一篇:基于視頻圖像多場景實時應急預案啟動系統





