【技术实现步骤摘要】
一种基于随机森林模型的代码抄袭嫌疑检测的方法
本专利技术涉及一种基于随机森林模型的代码抄袭嫌疑检测的方法,属于机器学习技术应用领域。
技术介绍
现如今,随着计算机技术的快速发展,大量人员涌入计算机行业,从业人员激增带来的一系列诚信问题不容忽视。小到计算机专业的程序设计论文,大到关键性软件工程产品,程序代码中的克隆和抄袭现象愈发严重。抄袭手段主要有以下几种:(1)未更改;(2)修改注释;(3)修改标识符;(4)调整变量的位置;(5)过程组合;(6)调整语句的位置;(7)调整控制结构逻辑等。此外,还有学者在研究过程中推测构拟出其他的一些抄袭手段。虽然抄袭者的抄袭手段各有千秋,但在不了解程序内部逻辑的情况下,抄袭者若想程序正常运行并避过检测,难免要对代码作出改动,代码改动的三种方式可描述为:(1)代码的布局;(2)语法的理解;(3)语义的分析。对于前两种改动方式,可采用代码重新排序、标识符换名以及关键字等价替换等方式,所做的改动相对较容易。至于最后一种语义分析改动方式,如函数分解与结合、语句块的等价替换等,代码改动难度相对较大。国外对于程序抄袭检测技术的研究始于70年代,如今存在多个行之有效的抄袭检测系统,如斯坦福大学的MOSS、德国Karlsruhe大学的JPlag、威奇塔州立大学的SIM、悉尼大学的YAP3以及伊利诺伊大学的GPLAG等。目前,国内可考证的抄袭检测系统有:北京航空航天大学的BUAASIM系统,中国人民警官大学的PASCAL代码抄袭检测系统等。其中,MOSS系统是AlexAiken于1994年开发的,主要用于检测C,C++,Java,Pasca ...
【技术保护点】
1.一种基于随机森林模型的代码抄袭嫌疑检测的方法,其特征在于,包括以下步骤:步骤1、获取针对同一题的所有代码,将所有代码的代码内容和注释内容分离,并剔除代码内容的首尾中的无关信息;步骤2、提取经过步骤1处理的代码的特征值CPMS,特征值CPMS为当前用户的代码与其他用户代码的最大相似度MSR是否超过相似度阈值SRT的值;步骤3、提取经过步骤1处理的代码的CPMSP,CPMSP为当前用户的代码与其他用户代码的最大相似度低于阈值的百分比:
【技术特征摘要】
1.一种基于随机森林模型的代码抄袭嫌疑检测的方法,其特征在于,包括以下步骤:步骤1、获取针对同一题的所有代码,将所有代码的代码内容和注释内容分离,并剔除代码内容的首尾中的无关信息;步骤2、提取经过步骤1处理的代码的特征值CPMS,特征值CPMS为当前用户的代码与其他用户代码的最大相似度MSR是否超过相似度阈值SRT的值;步骤3、提取经过步骤1处理的代码的CPMSP,CPMSP为当前用户的代码与其他用户代码的最大相似度低于阈值的百分比:步骤4、将CPMSP离散化,求得类别值CPMSPC;步骤5、提取当前用户的代码的IE值:若当前用户的代码所对应的题为考试题,则IE=1,若当前用户的代码所对应的题为练习题,则IE=0;提取当前用户的代码的CPTC值:CPTC值表示当前用户与最大相似度用户所提交的代码通过的测试用例是否相同,若相同,CPTC值设为1,若不同,CPTC值设为0;提取当前用户的代码的代码风格相似度ASSR:代码风格相似度ASSR表示当前用户与最大相似度用户所提交的代码风格相似度;步骤6、提取当前用户的代码所对应题目的难易程度值DL;提取当前用户的抄袭率值PR,包括以下步骤:统计当前用户提交代码总数sum(TNE)及当前用户确认抄袭的提交总数sum(TNPE),则有:提取当前用户的抄袭集中度PCR,包括以下步骤:统计当前用户每一道题可能抄袭的其他用户的Id值,设该用户提交题目的数量为n,集合R={r1,r2,…,rn},其中集合元素ri表示该用户的第i题的最大相似度的对象用户的Id值,用PCR表示用户抄题对象Id的集中程度;提取当前用户的成绩排名RRB,包括以下步骤:用户每提交成功一道题,就会实时统计当前总得分,然后根据所有用户的总得分值进行排名;步骤7、利用随机森林模型来判定是否存在抄袭嫌疑,包括以下步骤:步骤701、通过步骤2至步骤6得到不同特征的特征集,再获取各特征集的标签数据组成标签数据集,再进行连续值与缺失值的处理得到训练集;步骤702、构造n棵决策树从而形成随机森林,在构造决策树时,从训练集中有放回地随机选取样本,同时,无放回地随机选取总特征量中的部分特征量;步骤703、将实时获取的相关特征输入随机森林,n棵决策树的预测结果为T={t1,t2,…,tn},则随机森林的预测结果为M(T),M(T)表示一组数据当中的众数,若M(T)的值为1的话,则表示最终的预测结果为当前用户本次提交的代码具有抄袭嫌疑,抄袭的对象为代码相似度最大的其他用户...
【专利技术属性】
技术研发人员:黄秋波,方国正,汤景东,
申请(专利权)人:东华大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。