[發明專利]一種具有高準確度的代碼片段推薦方法有效
| 申請號: | 201810611256.4 | 申請日: | 2018-06-14 |
| 公開(公告)號: | CN108717470B | 公開(公告)日: | 2020-10-23 |
| 發明(設計)人: | 黃志球;艾磊;李偉湋;周宇;尹小花;張靜 | 申請(專利權)人: | 南京航空航天大學 |
| 主分類號: | G06F16/33 | 分類號: | G06F16/33;G06F40/30 |
| 代理公司: | 常州佰業騰飛專利代理事務所(普通合伙) 32231 | 代理人: | 滕詣迪 |
| 地址: | 211106 江蘇省南京市江寧區*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 具有 準確度 代碼 片段 推薦 方法 | ||
1.一種具有高準確度的代碼片段推薦方法,其特征在于:包括:
將項目庫中的所有項目進行切割、劃分,生成對應的類文件、代碼片段、代碼片段方法體和代碼片段注釋;
采用詞向量模型,將獲得的代碼片段方法體和代碼片段注釋生成對應的代碼片段方法體向量和代碼片段注釋向量,作為代碼片段的文本特征;
為獲得的每個類文件進行運行環境搭建,并對每個類文件進行編譯和反編譯,然后從反編譯文件中提取代碼片段的指令序列,作為代碼片段的語義特征;具體包括:為類文件數據集中的每一個類文件構建其編譯所需的運行環境;對當前類文件進行編譯;對編譯成功且位于當前目錄下的二進制文件進行反編譯,該二進制文件與當前類文件同名;將反編譯結果以文本形式保存在文件中,生成反編譯文件;根據反編譯文件的格式提取出其中的所有代碼片段,并提取出每個代碼片段的文本形式指令序列;將提取出來的文本形式指令序列進行格式化操作,生成可計算距離的最終的指令序列;建立最終得到的指令序列與對應的代碼ID的鏈接;
采用詞向量模型,將用戶輸入的查詢生成對應的查詢向量,根據查詢向量與代碼片段文本特征之間的文本相似度,篩選出一組文本相似度最高的初步推薦結果;
根據初步推薦結果中的所有代碼片段之間的語義相似度,對初步推薦結果進行二次篩選和重新排序,形成最終推薦結果,并返回給用戶選擇。
2.根據權利要求1所述的一種具有高準確度的代碼片段推薦方法,其特征在于:所述將項目庫中的所有項目進行切割、劃分,生成對應的類文件、代碼片段、代碼片段方法體和代碼片段注釋,具體包括:
提取項目庫中所有項目的所有類文件,并形成類文件數據集;
對每個類文件進行解析,將類文件切割為多個代碼片段,形成代碼片段數據集,并為每個代碼片段賦予一個起唯一識別作用的代碼ID;
獲取所有代碼片段的方法體和注釋,并形成方法體數據集和注釋數據集;
分別建立每一代碼片段、代碼片段方法體、代碼片段注釋到對應的代碼ID的索引。
3.根據權利要求1所述的一種具有高準確度的代碼片段推薦方法,其特征在于:所述采用詞向量模型,將獲得的代碼片段方法體和代碼片段注釋生成對應的代碼片段方法體向量和代碼片段注釋向量,作為代碼片段的文本特征,具體包括:
初始化第一詞向量模型和第二詞向量模型,第一詞向量模型用于將方法體映射到向量,第二詞向量模型用于將注釋映射到向量;
分別用方法體數據集、注釋數據集對第一詞向量模型、第二詞向量模型進行訓練,分別生成方法體數據集中所有方法體的向量表示、注釋數據集中所有注釋的向量表示,并保存訓練完成的第一詞向量模型和第二詞向量模型;
分別建立每一方法體向量、注釋向量到對應的代碼ID的索引。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810611256.4/1.html,轉載請聲明來源鉆瓜專利網。





