[發明專利]一種基于程序切片的深度神經網絡類型推導方法在審
| 申請號: | 202210052087.1 | 申請日: | 2022-01-17 |
| 公開(公告)號: | CN114580641A | 公開(公告)日: | 2022-06-03 |
| 發明(設計)人: | 馮洋;燕言言;范弘鋮;李玉瑩;徐寶文 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06N5/04 | 分類號: | G06N5/04;G06N3/04;G06N3/08 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210023 江蘇省南京市棲霞*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 程序 切片 深度 神經網絡 類型 推導 方法 | ||
1.一種基于程序切片的深度神經網絡類型推導方法,其特征在于,為了推導動態語言程序類型,首先需要獲取大量包含類型標注信息的項目,提取項目中的類型信息,構建類型信息數據集;其次,該方法用編碼技術將提取的類型信息數據集嵌入成向量形式;然后,基于嵌入生成的向量,訓練深度神經網絡模型;最后,使用訓練好的模型預測程序變量類型或函數簽名。具體而言,該方法包括下列步驟:
1)類型信息數據集構建。首先,從github等開源代碼托管平臺上爬取大量包含類型標注信息的項目,對于項目中不含類型標注信息的變量或函數,使用傳統類型推導工具推導其類型信息,以便構建大規模的類型信息數據集。然后遍歷程序AST(Abstract SyntaxTree抽象語法樹),提取變量或函數的名稱、類型、位置信息及其程序切片信息,構建類型信息數據集DataSetType。
2)類型信息嵌入。先對類型信息數據集DataSetType中變量或函數的名稱和程序切片進行BPE(Byte Pair Embedding,字節對編碼)編碼預處理,將文本信息處理成子字符串的形式。然后,將預處理生成的子字符串輸入Word2vec模型中進行嵌入,實現文本信息向深度神經網絡學習所需的輸入向量形式Vecunioin轉換。
3)深度神經網絡模型訓練。將上步驟中嵌入得到的變量或函數及其程序切片的聯合向量Vecunioin,結合one-hot(獨熱碼)編碼的類型向量作為輸入數據Vecinput訓練深度神經網絡模型。訓練過程中需要根據訓練結果調整模型的超參數或者改變模型結構以便優化模型,提升模型的類型預測效果,最終得到類型推導模型MOptimal。
4)類型推導。模型訓練好以后,使用同樣的嵌入方法將要預測的變量或函數及其程序切片的聯合向量Vecpred輸入訓練好的類型推導模型MOptimal中進行預測,預測結果是變量類型或函數參數和返回值類型的向量Vectype。
2.根據權利要求1所述的基于程序切片的深度神經網絡類型推導方法,其特征在于,在步驟1)中,構建類型信息數據集;獲取大量含有類型標注信息的開源項目,然后遍歷程序AST,提取變量或函數相關的類型信息,構建類型信息數據集。
3.根據權利要求1所述的基于程序切片的深度神經網絡類型推導方法,其特征在于,在步驟2)中,嵌入類型信息生成深度神經網絡向量所需向量;先用BPE將類型信息數據集中的文本信息預處理成子字符串的形式,然后將子字符串輸入到Word2vec模型中進行嵌入,以便將文本信息轉換為深度神經網絡模型所需的向量形式。
4.根據權利要求1所述的基于程序切片的深度神經網絡類型推導方法,其特征在于,在步驟3)中,訓練深度神經網絡模型;嵌入得到的變量或函數及其程序切片的聯合向量結合one-hot(獨熱碼)編碼的類型向量作為輸入數據,對深度神經網絡模型進行訓練和優化,得到最終訓練好的類型推導模型。
5.根據權利要求1所述的基于程序切片的深度神經網絡類型推導方法,其特征在于,在步驟4)中,類型推導動態程序變量類型以及函數簽名;使用類型信息嵌入的方法將要預測的變量或函數及其程序切片表示為聯合向量,將聯合向量輸入到訓練好的類型推導模型中進行預測,預測結果即為變量類型或函數參數以及返回值類型的向量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210052087.1/1.html,轉載請聲明來源鉆瓜專利網。





