[發(fā)明專利]程序相似性檢測的方法和裝置在審
| 申請?zhí)枺?/td> | 201810241076.1 | 申請日: | 2018-03-22 |
| 公開(公告)號(hào): | CN110297750A | 公開(公告)日: | 2019-10-01 |
| 發(fā)明(設(shè)計(jì))人: | 張亞芹 | 申請(專利權(quán))人: | 北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36;G06K9/62 |
| 代理公司: | 中原信達(dá)知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11219 | 代理人: | 張一軍;張效榮 |
| 地址: | 100195 北京市海淀區(qū)杏石口路6*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 相似性檢測 方法和裝置 匹配度 計(jì)算機(jī)技術(shù)領(lǐng)域 準(zhǔn)確率 聚類 檢測 保證 | ||
本發(fā)明公開了程序相似性檢測的方法和裝置,涉及計(jì)算機(jī)技術(shù)領(lǐng)域。該方法的一具體實(shí)施方式包括:對待檢測的各個(gè)程序進(jìn)行聚類;對于每個(gè)類,確定該類中任意兩個(gè)程序之間的匹配度;基于所述匹配度,確定所述任意兩個(gè)程序之間的相似性。該實(shí)施方式能夠在保證效率的基礎(chǔ)上提高程序相似性檢測的準(zhǔn)確率。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種程序相似性檢測的方法和裝置。
背景技術(shù)
程序設(shè)計(jì)課程是計(jì)算機(jī)軟件相關(guān)專業(yè)的重要課程,編程能力是該課程的考察重點(diǎn)。以前大都通過人工審查的方式檢測各個(gè)程序之間的相似性。但是,人工審查的效率極低。為了提高審查效率,程序相似性的自動(dòng)檢測應(yīng)運(yùn)而生。
目前,已有的程序相似性自動(dòng)檢測主要通過度量程序之間的相似性來實(shí)現(xiàn)。度量程序相似性的方法分為兩類:屬性計(jì)數(shù)法和結(jié)構(gòu)度量法。
在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
屬性計(jì)數(shù)法雖然快速,但在準(zhǔn)確性上還有很大提升空間。結(jié)構(gòu)度量法準(zhǔn)確率高,但算法復(fù)雜、時(shí)間復(fù)雜度高。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種程序相似性檢測的方法和裝置,能夠在保證效率的基礎(chǔ)上提高程序相似性檢測的準(zhǔn)確率。
為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種程序相似性檢測的方法。
根據(jù)本發(fā)明實(shí)施例的程序相似性檢測的方法,包括:
對待檢測的各個(gè)程序進(jìn)行聚類;
對于每個(gè)類,確定該類中任意兩個(gè)程序之間的匹配度;
基于所述匹配度,確定所述任意兩個(gè)程序之間的相似性。
可選地,對待檢測的各個(gè)程序進(jìn)行聚類,包括:
對于每個(gè)待檢測的程序,獲取該程序的多個(gè)屬性信息,基于所述多個(gè)屬性信息構(gòu)造該程序的特征向量;
根據(jù)每個(gè)待檢測的程序的特征向量進(jìn)行聚類;
其中,所述多個(gè)屬性信息包括以下至少之一:詞匯數(shù),程序長度,程序大小,控制流、控制結(jié)構(gòu)、數(shù)據(jù)依賴、嵌套深度和結(jié)構(gòu)。
可選地,采用模糊聚類法對待檢測的各個(gè)程序進(jìn)行聚類。
可選地,確定該類中任意兩個(gè)程序之間的匹配度,包括:
對于所述任意兩個(gè)程序中的每一個(gè):將該程序輸入詞法分析器中生成token串,再把token串輸入到語法分析器中生成語法樹;
采用Zhang-Shasha算法確定兩棵語法樹之間的距離和相似度;
基于所述距離和相似度確定所述任意兩個(gè)程序之間的匹配度。
根據(jù)本發(fā)明實(shí)施例的再一個(gè)方面,提供了一種程序相似性檢測的裝置。
根據(jù)本發(fā)明實(shí)施例的程序相似性檢測的裝置,包括:
聚類模塊,對待檢測的各個(gè)程序進(jìn)行聚類;
匹配模塊,對于每個(gè)類,確定該類中任意兩個(gè)程序之間的匹配度;
判斷模塊,基于所述匹配度,確定所述任意兩個(gè)程序之間的相似性。
可選地,所述聚類模塊還用于:
對于每個(gè)待檢測的程序,獲取該程序的多個(gè)屬性信息,基于所述多個(gè)屬性信息構(gòu)造該程序的特征向量;
根據(jù)每個(gè)待檢測的程序的特征向量進(jìn)行聚類;
其中,所述多個(gè)屬性信息包括以下至少之一:詞匯數(shù),程序長度,程序大小,控制流、控制結(jié)構(gòu)、數(shù)據(jù)依賴、嵌套深度和結(jié)構(gòu)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810241076.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 相似性檢測方法及系統(tǒng)
- 一種視頻或圖像視點(diǎn)類型的識(shí)別方法
- 一種基于相似性傳播的多目標(biāo)協(xié)同顯著區(qū)域檢測方法
- 一種中文域名仿冒攻擊的檢測方法
- 一種基于標(biāo)簽傳播算法的臨床藥品-藥品不良反應(yīng)檢測方法
- 一種基于測試代碼片段相似性的測試程序抄襲檢測方法
- 一種相似性檢測模型的訓(xùn)練方法及裝置、應(yīng)用方法及裝置
- 一種基于會(huì)話相似性分析的SSH中間人攻擊檢測系統(tǒng)
- 一種融合深度多示例學(xué)習(xí)和包間相似性的乳腺癌檢測方法
- 基于流量自相似性的DDoS入侵檢測方法及相關(guān)裝置
- 一種基于衛(wèi)星系統(tǒng)的雙主機(jī)安全保密計(jì)算機(jī)
- 一種基于衛(wèi)星系統(tǒng)的單主機(jī)安全保密計(jì)算機(jī)
- 基于北斗衛(wèi)星系統(tǒng)的互聯(lián)網(wǎng)/物聯(lián)網(wǎng)計(jì)算機(jī)智能模塊
- 一種安全保密計(jì)算機(jī)
- 基于北斗衛(wèi)星系統(tǒng)的互聯(lián)網(wǎng)/物聯(lián)網(wǎng)計(jì)算機(jī)智能模塊
- 一種基于計(jì)算機(jī)技術(shù)的多媒體教學(xué)設(shè)備
- 計(jì)算機(jī)故障的診斷方法、裝置及存儲(chǔ)介質(zhì)
- 一種計(jì)算機(jī)技術(shù)轉(zhuǎn)讓用便于查找的文件儲(chǔ)存箱
- 基于IT技術(shù)問答網(wǎng)站的計(jì)算機(jī)技術(shù)領(lǐng)域發(fā)展趨勢分析方法
- 計(jì)算機(jī)輸入輸出裝置





