[發明專利]一種智能軟件代碼類型推斷方法、系統、設備及存儲介質在審
| 申請號: | 202210182130.6 | 申請日: | 2022-02-25 |
| 公開(公告)號: | CN114528223A | 公開(公告)日: | 2022-05-24 |
| 發明(設計)人: | 晉武俠;楊子江;馬雨 | 申請(專利權)人: | 交叉信息核心技術研究院(西安)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/41;G06K9/62;G06N3/04;G06N3/08;G06N5/02;G06N5/04 |
| 代理公司: | 北京中巡通大知識產權代理有限公司 11703 | 代理人: | 張弘 |
| 地址: | 710077 陜西省西安市高新*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 智能 軟件 代碼 類型 推斷 方法 系統 設備 存儲 介質 | ||
1.一種智能軟件代碼類型推斷方法,其特征在于,包括:
獲取帶有JSDoc注釋的JavaScript智能軟件源代碼,遍歷源代碼的抽象語法樹,抽取源代碼中函數類型的話題語義信息和AST結構信息,形成json文件;
針對所述json文件,將函數類型的話題語義信息和AST結構信息用知識圖譜結構進行表示,構建知識圖譜;
將所述知識圖譜數據結構中節點特征表示為三元組形式,選用適當的知識圖譜的表示算法,進行節點信息的表示學習;學習后得到實體集合和關系集合的特征向量,以特征向量作為圖神經網絡的輸入,在圖神經網絡內部進行節點消息傳播,消息傳播分為三個階段,消息傳播階段,聚合階段和更新階段,獲取到最終節點狀態向量;
構建圖神經網絡的預測層,根據獲取傳播后的節點信息,進行概率類型預測;
根據所述概率類型預測輸出帶有所有推斷類型的JavaScript智能軟件源代碼。
2.根據權利要求1所述智能軟件代碼類型推斷方法,其特征在于,所述抽取輸入程序中與類型推斷相關的話題語義信息和AST結構信息,具體包括:
針對帶有JSDoc注釋的JavaScript智能軟件源代碼,獲取對應的抽象語法樹,使用babel/parser解析源碼語法樹,在其抽象語法樹中對特定的函數類型的節點進行遍歷;
抽取源代碼中函數類型的話題語義信息和AST結構信息,話題語義信息和AST結構信息包括函數的函數名、參數信息、函數相關的注釋、和函數返回值類型相關的注釋、返回值類型和調用關系,根據函數類型的話題語義信息和AST結構信息形成json文件。
3.根據權利要求1所述智能軟件代碼類型推斷方法,其特征在于,所述知識圖譜數據結構的有向圖中節點表示函數實體,與節點相連的其他邊分別代表函數相關屬性,節點與節點之間存在調用關系或控制流關系的有向邊。
4.根據權利要求1所述智能軟件代碼類型推斷方法,其特征在于,所述將所述知識圖譜數據結構中節點特征表示為三元組形式,具體包括:
根據生成的節點信息,將信息表示為(函數,屬性,屬性值)的三元組集合,根據TransE算法基本思想,把實體按照關系進行映射,構建翻譯等式;輸入參數為三元組集合S={(h,l,t)},實體集E和關系集L,范圍γ和嵌入維度k;
對于每一個實體,隨機初始化為規定維數的一個向量;
從訓練三元組集合中隨機抽出b個向量,對于每個三元組進行打碎生成負例;
計算勢能函數,利用梯度下降算法更新h,l,t,不斷優化實體和關系的向量表示;
獲得實體集合與關系集合的向量表示。
5.根據權利要求4所述智能軟件代碼類型推斷方法,其特征在于,所述利用梯度下降算法更新h,l,t,不斷優化實體和關系的向量表示,具體包括:
通過h和l之和與t之差的二范數來表示這個三元組的勢能,勢能計算如下所示:
f(h,l,t)=‖h+l-t‖2
其中,h表示頭實體對應的向量,l表示關系對應的向量,t表示尾實體對應的向量,二范數計算公式為:
根據勢能判斷是否為最優向量表示,如果是輸出,如果否重新從訓練三元組集合中隨機抽出b個向量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于交叉信息核心技術研究院(西安)有限公司,未經交叉信息核心技術研究院(西安)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210182130.6/1.html,轉載請聲明來源鉆瓜專利網。





