[发明专利]一种基于电力信息系统代码文件的相似度检测方法及系统有效
申请号: | 201910593863.7 | 申请日: | 2019-07-03 |
公开(公告)号: | CN110471835B | 公开(公告)日: | 2022-07-19 |
发明(设计)人: | 钱琳;俞俊;朱广新;庞恒茂;任晓龙;胡鑫;许明杰;王琳;梅竹;陈海洋 | 申请(专利权)人: | 南瑞集团有限公司;国电南瑞科技股份有限公司;国网陕西省电力公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F40/194;G06F40/284;G06F40/30;G06K9/62 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 王恒静 |
地址: | 211106 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 电力 信息系统 代码 文件 相似 检测 方法 系统 | ||
本发明公开了一种基于电力信息系统代码文件的相似度检测方法及系统,包括:获取需要判别相似度的第一代码文件和第二代码文件,预处理后分别得到第一文本和第二文本;根据单词的TF‑IDF值得到所述文本语义词向量,从所述第一文本和第二文本的函数调用入口开始,分别寻找所述第一文本和第二文本的函数调用树结构,并计算得到第一文本结构向量和第二文本结构向量;通过文本语义词向量计算中间语义词向量,将所述第一文本结构向量和第二文本结构向量取并集后,计算第一中间结构向量和第二中间结构向量;进而得到所述第一文本和第二文本的相似度。本发明首先采用预处理函数对代码文件进行代码精简,提高检测效率,降低检测错误率。
技术领域
本发明涉及代码相似度检测技术领域,具体涉及一种基于电力信息系统代码文件的相似度检测方法及系统。
背景技术
代码相似度检测技术目前最主要应用于代码的剽窃检测上,是计算机软件开发和维护活动中一项重要任务,在源代码剽窃检测、软件组件库查询、软件缺陷检测、程序理解等多个领域中有广泛应用。其不仅可以帮助教师检测学生的程序作业抄袭情况,同时对软件版权的鉴定也具有好的现实意义。
在发表于第六届北美大学计算科学协会年会论文集“抄袭检测度量元”(Metricsbased plagiarism monitoring.Paper presented at the 6th Annual CCSCNortheastern Conference,Middlebury VT.2001)一文中,琼斯(Jones)总结了十种剽窃手段。分别为(1)逐字拷贝(2)更改注释语句(3)更改空白区域(4)重新命名标识符改变代码块的顺序(6)改变代码块中语句的顺序(7)改变表达式中操作符和操作数的顺序(8)更改数据类型(9)增加冗余的语句和变量(10)用等价的控制结构替换原有控制结构。
从国内外的研究现状可以发现,国内在对程序相似度判别研究相对较少,大部分集中在对中文分词和语义的研究上。可以参考的工具有:北航高级程序课程教学辅助平台中用于检测学生提交程序作业是否抄袭的BUAASIM系统等。
国外目前已有许多软件工具可用来检测源程序是否抄袭,如美国斯坦福大学的MOSS系统、威奇塔州立大学的SIM系统、伊利诺伊大学的GPLAG系统、德国Karlsruhe大学的JPlag系统和澳大利亚悉尼大学的YAP3系统。目前最主要的代码相似度检测技术主要分为两大类,属性计数技术及结构度量技术,包含如下几种具体的方法:Textual comparison,Token comparison,Metric comparison,Comparison of abstract syntax trees(AST,抽象语法树),Comparison of program dependency graphs(PDG,程序依赖图)及其他相关方法。
而在实际使用及研究中发现,目前主要流行的上述几种方法各自存在其不同的缺陷。两种token-based的方法和text-based的方法效果一般且相差不大。AST-based的方法效果表现很好,但算法流程复杂,难于实现且执行时间长,且对于不同语言的匹配实现算法改动较大,PDG-based的方法表现性能不佳。另有文章指出,上述五种方法均拒绝了大量真正的相似代码,且其对于注入代码等某些特殊情况检测率低。
综上,目前主流的代码相似度检测方法普遍存在检测效果低、部分方法复杂执行时间长、某些情况错误率高以及难于应用在不同编程语言上等问题。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于电力信息系统代码文件的相似度检测方法及系统,可以解决在检测代码相似度过程中遇到的检测效果低、部分方法复杂执行时间长、某些情况错误率高的问题。
技术方案:本发明所述的基于电力信息系统代码文件的相似度检测方法,该方法包括:
获取需要判别相似度的第一代码文件和第二代码文件,预处理后分别得到第一文本和第二文本;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南瑞集团有限公司;国电南瑞科技股份有限公司;国网陕西省电力公司,未经南瑞集团有限公司;国电南瑞科技股份有限公司;国网陕西省电力公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910593863.7/2.html,转载请声明来源钻瓜专利网。