[發明專利]一種基于電力信息系統代碼文件的相似度檢測方法及系統有效
| 申請號: | 201910593863.7 | 申請日: | 2019-07-03 |
| 公開(公告)號: | CN110471835B | 公開(公告)日: | 2022-07-19 |
| 發明(設計)人: | 錢琳;俞俊;朱廣新;龐恒茂;任曉龍;胡鑫;許明杰;王琳;梅竹;陳海洋 | 申請(專利權)人: | 南瑞集團有限公司;國電南瑞科技股份有限公司;國網陜西省電力公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F40/194;G06F40/284;G06F40/30;G06K9/62 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 王恒靜 |
| 地址: | 211106 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 電力 信息系統 代碼 文件 相似 檢測 方法 系統 | ||
1.一種基于電力信息系統代碼文件的相似度檢測方法,其特征在于,該方法包括:
獲取需要判別相似度的第一代碼文件和第二代碼文件,預處理后分別得到第一文本和第二文本;
根據所述第一文本中單詞的TF-IDF值得到所述第一文本語義詞向量,根據所述第二文本中每個單詞的TF-IDF值得到所述第二文本語義詞向量;
從所述第一文本和第二文本的函數調用入口開始,分別尋找所述第一文本和第二文本的函數調用樹結構,并計算得到第一文本結構向量和第二文本結構向量;
將第一文本語義詞向量和所述第二文本語義詞向量取并集后,計算第一中間語義詞向量和第二中間語義向量,將所述第一文本結構向量和第二文本結構向量取并集后,計算第一中間結構向量和第二中間結構向量;
采用余弦相似度算法根據第一中間語義詞向量和第二中間語義向量計算所述第一文本和第二文本對應的語義相似度,采用余弦相似度算法根據第一中間結構向量和第二中間結構向量計算所述第一文本和第二文本對應的結構相似度,進而得到所述第一文本和第二文本的相似度。
2.根據權利要求1所述的基于電力信息系統代碼文件的相似度檢測方法,其特征在于,所述從所述第一文本和第二文本的函數調用入口開始,分別尋找所述第一文本和第二文本的函數調用樹結構,包括以下步驟:
讀取第一文本和第二文本中的代碼,調用代碼預處理函數分別對所述第一文本和第二文本進行預處理;
分別對預處理后的第一文本和第二文本采用層序遍歷的方式從函數調用入口進行遍歷,所述函數調用入口作為所述函數調用樹的根節點,并按行尋找上一層函數調用的函數,將新調用的函數作為父函數節點的兒子節點,直到返回所述函數;
分別獲取所述第一文本和第二文本的函數調用樹結構,并按層為每個節點編號。
3.根據權利要求2所述的基于電力信息系統代碼文件的相似度檢測方法,其特征在于,所述調用代碼預處理函數分別對所述第一文本和第二文本進行預處理,包括:
首先,將第一文本和第二文本中的注釋字符設定為不同狀態,其次,分別遍歷第一文本和第二文本,遍歷過程中,將代碼字符轉換為狀態之間的變換,保留非注釋狀態下的字符,刪除表示當前是注釋狀態字符下的字符,實現代碼精簡。
4.根據權利要求2所述的基于電力信息系統代碼文件的相似度檢測方法,其特征在于,所述計算得到第一文本結構向量和第二文本結構向量,具體步驟包括:
按深度優先的方式遍歷所述第一文本的函數調用樹,遍歷到葉子結點就停止,記錄從根節點到葉子結點的編號序列,直到所有葉子都遍歷完成,得到編號序列集合,并將歸一化后的結合作為第一文本結構向量;
按深度優先的方式遍歷所述第二文本的函數調用樹,遍歷到葉子結點就停止,記錄從根節點到葉子結點的編號序列,直到所有葉子都遍歷完成,得到編號序列集合,并將歸一化后的結合作為第二文本結構向量。
5.根據權利要求4所述的基于電力信息系統代碼文件的相似度檢測方法,其特征在于,所述歸一化的過程為:若編號序列集合中不存在同一個節點分叉多個編號序列,則表示為Seqm,其中,m為所述編號序列中編號的個數;若存在同一個節點分叉多個編號序列,則表示為Seqmn,其中,n為多個編號序列同時分叉時對應的節點編號。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南瑞集團有限公司;國電南瑞科技股份有限公司;國網陜西省電力公司,未經南瑞集團有限公司;國電南瑞科技股份有限公司;國網陜西省電力公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910593863.7/1.html,轉載請聲明來源鉆瓜專利網。





