CN106528111B - 一种数据结构作业程序相似性度量方法 - Google Patents

一种数据结构作业程序相似性度量方法 Download PDF

Info

Publication number
CN106528111B
CN106528111B CN201610939664.3A CN201610939664A CN106528111B CN 106528111 B CN106528111 B CN 106528111B CN 201610939664 A CN201610939664 A CN 201610939664A CN 106528111 B CN106528111 B CN 106528111B
Authority
CN
China
Prior art keywords
data structure
similarity
denoted
carried out
operation procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610939664.3A
Other languages
English (en)
Other versions
CN106528111A (zh
Inventor
吴汪洋
吴伟民
林志毅
李泽熊
方典禹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201610939664.3A priority Critical patent/CN106528111B/zh
Publication of CN106528111A publication Critical patent/CN106528111A/zh
Application granted granted Critical
Publication of CN106528111B publication Critical patent/CN106528111B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据结构作业程序相似性度量方法,能对数据结构作业程序从多个角度进行相似性度量,避免了现有度量方案单一、陈旧的问题,且本方法还可以和程序动态测试结合起来,产生更多参考答案完备集,为识别答案和程序理解提供一些新的思路。本发明方法包括通过从数据结构作业程序中获取词法分析矩阵,并分别根据不同的词法分析矩阵计算三个相似度,再将三个相似度中的一个或者至少一个或者三个相似度与神经网络结合进行长期的学习,使度量结果更准确。

Description

一种数据结构作业程序相似性度量方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据结构作业程序相似性度量方法。
背景技术
随着高校计算机数据结构课程的大量开设,教师阅读和批改学生作业程序的数量逐年增多。一方面,由于学生的作业程序可能存在抄袭现象,而教师却难以逐份作业程序对比;另一方面,由于现有大多数编程作业系统均采用动态测试方式,有些学生的作业程序部分或没有通过系统预设的测试,这时教师需对此类作业逐份进行批阅并给出建议,如果作业多,教师无暇逐份去阅读。
在相似性度量技术中,Ottesstein将Halstead属性计数技术用于程序代码的抄袭检测。Alex Aiken开发了MOSS系统检测程序设计类课程作业中的抄袭问题。Dick Grune使用了检测DNA序列相似性的一种字符串排列程序来开发SIM系统,可检测项目程序代码或者作业程序代码抄袭。熊浩、晏海华等人提出了一种基于BP神经网络的代码相似性方法。石野、黄龙和等人提出了基于语法树的程序相似度判定方法。
现有技术的缺点是程序相似性度量方法单一、陈旧,并且没有进行多策略评价,使得评价结果误差率较高,可参考性较低。基于数据结构作业程序的相似性度量研究则少之又少。作业程序通常程序规模小,异构度低,采用属性统计、序列统计等方法不能很好地体现作业程序的流程和思路,现有技术的相似性度量更多地是停留在字符的相似性度量上。亟待提供一种数据结构作业程序相似性度量方法,通过多维度量使结构更加精确。
发明内容
本发明提出一种数据结构作业程序相似性度量方法,通过从数据结构作业程序中获取词法分析矩阵,并分别根据不同的词法分析矩阵计算三个相似度,再将三个相似度中的一个或者至少一个或者三个相似度与神经网络结合进行长期的学习,使度量结果更准确。
本发明中一种数据结构作业程序相似性度量方法,包括:
对n份数据结构作业进行第一词法分析,获取每份数据结构作业中的声明块和控制块,其中所述声明块记作K1,控制块记作K2;
对每份所述数据结构作业的声明块和控制块建立第一词法分析集合V={K1,K2},其中,n个集合分别记为V1,V2,V3,...,Vn;
根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合,记作V+;
提取所述聚类集合V+中所有一元子集,包括:T1,T2,…,Tm;
根据合成对比规则μ对T1,T2,…,Tm进行进行合成处理,得到第一相似度,其中合并对比规则μ定义为:
对n份数据结构作业进行第二词法分析,获取每份数据结构作业中的集合结构、线性结构、树状结构和图状结构,其中集合结构、线性结构、树状结构和图状结构分别记作S1,S2,S3,S4;
对每份所述数据结构作业的集合结构、线性结构、树状结构和图状结构建立第二词法分析集合SN={S1,S2,S3,S4},其中,n个集合分别记为SN1,SN2,SN3,...,SNn;
对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分;
计算所述n个主成分的累积贡献率,并其等同为第二相似度;
对n份数据结构作业进行第三词法分析,获取n个语法树分别记为T1,T2,T3,...,Tn;
分别计算每棵语法树出从根到叶结点的一条最长路径和一条最长路径,其中,最长路径记作L(Ti),最长路径L(Ti);
计算每组L(Ti)与P(Ti)的差异值,其中,计算规则为:
dif(L(Ti),P(Ti))=|Length[L(Ti)]-Length[P(Ti)]|;
根据所述差异值,计算n棵语法树的第三相似度:计算规则为:
根据所述第一相似度、第二相似度和/或第三相似度与神经网络结合建立精确化模型;
根据所述精确化模型计算结果评价所述数据结构作业程序相似性。
可选的,
步骤所述根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合包括:
根据预定的相同属性的k-means聚类算法,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合。
可选的,
步骤所述对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分包括:
标准化计算规则为
所述协方差矩阵计算规则为:R=Z'Z/(n-1);
所述特征根计算规则为:(R-λE)e=0→(λ1,e1),(λ2,e2),...,(λn,en);
所述主成分矩阵计算规则为:Yi=eiZ,i∈[1,n]。
可选的,
步骤所述计算所述n个主成分的累积贡献率包括:
所述n个主成分的累计贡献率的计算规则为:
从以上技术方案可以看出,本发明实施例具体有以下优点:
本发明方案包括对n份数据结构作业进行第一词法分析,获取每份数据结构作业中的声明块和控制块,其中所述声明块记作K1,控制块记作K2;
对每份所述数据结构作业的声明块和控制块建立第一词法分析集合V={K1,K2},其中,n个集合分别记为V1,V2,V3,...,Vn;
根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合,记作V+;
提取所述聚类集合V+中所有一元子集,包括:T1,T2,…,Tm;
根据合成对比规则μ对T1,T2,…,Tm进行进行合成处理,得到第一相似度,其中合并对比规则μ定义为:
对n份数据结构作业进行第二词法分析,获取每份数据结构作业中的集合结构、线性结构、树状结构和图状结构,其中集合结构、线性结构、树状结构和图状结构分别记作S1,S2,S3,S4;
对每份所述数据结构作业的集合结构、线性结构、树状结构和图状结构建立第二词法分析集合SN={S1,S2,S3,S4},其中,n个集合分别记为SN1,SN2,SN3,...,SNn;
对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分;
计算所述n个主成分的累积贡献率,并其等同为第二相似度;
对n份数据结构作业进行第三词法分析,获取n个语法树分别记为T1,T2,T3,...,Tn;
分别计算每棵语法树出从根到叶结点的一条最长路径和一条最长路径,其中,最长路径记作L(Ti),最长路径L(Ti);
计算每组L(Ti)与P(Ti)的差异值,其中,计算规则为:
dif(L(Ti),P(Ti))=|Length[L(Ti)]-Length[P(Ti)]|;
根据所述差异值,计算n棵语法树的第三相似度:计算规则为:
根据所述第一相似度、第二相似度和/或第三相似度与神经网络结合建立精确化模型;
根据所述精确化模型计算结果评价所述数据结构作业程序相似性。
从而,通过从数据结构作业程序中获取词法分析矩阵,并分别根据不同的词法分析矩阵计算三个相似度,再将三个相似度中的一个或者至少一个或者三个相似度与神经网络结合进行长期的学习,使度量结果更准确。从而能对数据结构作业程序从多个角度进行相似性度量,避免了现有度量方案单一、陈旧的问题,且本方法还可以和程序动态测试结合起来,产生更多参考答案完备集,为识别答案和程序理解提供一些新的思路。
具体实施方式
本发明提出一种数据结构作业程序相似性度量方法,通过从数据结构作业程序中获取词法分析矩阵,并分别根据不同的词法分析矩阵计算三个相似度,再将三个相似度中的一个或者至少一个或者三个相似度与神经网络结合进行长期的学习,使度量结果更准确。
本发明中一种数据结构作业程序相似性度量方法实施例,包括:
对n份数据结构作业进行第一词法分析,获取每份数据结构作业中的声明块和控制块,其中所述声明块记作K1,控制块记作K2;
对每份所述数据结构作业的声明块和控制块建立第一词法分析集合V={K1,K2},其中,n个集合分别记为V1,V2,V3,...,Vn;
根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合,记作V+;
例如:
其中,{V1,V3,V7}为特征类别α;
{V4,V2,V6}为特征类别β;
{V8,V5}为特征类别γ;
提取所述聚类集合V+中所有一元子集,包括:T1,T2,…,Tm;
根据合成对比规则μ对T1,T2,…,Tm进行进行合成处理,得到第一相似度,其中合并对比规则μ定义为:
对n份数据结构作业进行第二词法分析,获取每份数据结构作业中的集合结构、线性结构、树状结构和图状结构,其中集合结构、线性结构、树状结构和图状结构分别记作S1,S2,S3,S4;
对每份所述数据结构作业的集合结构、线性结构、树状结构和图状结构建立第二词法分析集合SN={S1,S2,S3,S4},其中,n个集合分别记为SN1,SN2,SN3,...,SNn;
对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分;
计算所述n个主成分的累积贡献率,并其等同为第二相似度;
对n份数据结构作业进行第三词法分析,获取n个语法树分别记为T1,T2,T3,...,Tn;
分别计算每棵语法树出从根到叶结点的一条最长路径和一条最长路径,其中,最长路径记作L(Ti),最长路径L(Ti);
计算每组L(Ti)与P(Ti)的差异值,其中,计算规则为:
dif(L(Ti),P(Ti))=|Length[L(Ti)]-Length[P(Ti)]|;
根据所述差异值,计算n棵语法树的第三相似度:计算规则为:
根据所述第一相似度、第二相似度和/或第三相似度与神经网络结合建立精确化模型;
根据所述精确化模型计算结果评价所述数据结构作业程序相似性。
可选的,
步骤所述根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合包括:
根据预定的相同属性的k-means聚类算法,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合。
需要说明的是,标准化计算规则为
所述协方差矩阵计算规则为:R=Z'Z/(n-1);
所述特征根计算规则为:(R-λE)e=0→(λ1,e1),(λ2,e2),...,(λn,en);
所述主成分矩阵计算规则为:Yi=eiZ,i∈[1,n]。
所述n个主成分的累计贡献率的计算规则为:
通过从数据结构作业程序中获取词法分析矩阵,并分别根据不同的词法分析矩阵计算三个相似度,再将三个相似度中的一个或者至少一个或者三个相似度与神经网络结合进行长期的学习,使度量结果更准确。
综合上述方案,得到三个相似度,并引入权值对各方案进行度量,即为多策略评价方法。如果全是作业程序作相似性度量,计算结果可作为是否抄袭的参考值。如果是作业程序与答案程序作相似性度量,计算结果则可作为是否接近答案的参考值,此时,如果相似度较高,且通过了作业代码动态测试,则可加入答案程序集,以提高答案程序的完备性。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (4)

1.一种数据结构作业程序相似性度量方法,其特征在于,包括:
对n份数据结构作业进行第一词法分析,获取每份数据结构作业中的声明块和控制块,其中所述声明块记作K1,控制块记作K2;
对每份所述数据结构作业的声明块和控制块建立第一词法分析集合V={K1,K2},其中,n个集合分别记为V1,V2,V3,...,Vn;
根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合,记作V+;
提取所述聚类集合V+中所有一元子集,包括:T1,T2,…,Tm;
根据合成对比规则μ对T1,T2,…,Tm进行进行合成处理,得到第一相似度,其中合并对比规则μ定义为:
对n份数据结构作业进行第二词法分析,获取每份数据结构作业中的集合结构、线性结构、树状结构和图状结构,其中集合结构、线性结构、树状结构和图状结构分别记作S1,S2,S3,S4;
对每份所述数据结构作业的集合结构、线性结构、树状结构和图状结构建立第二词法分析集合SN={S1,S2,S3,S4},其中,n个集合分别记为SN1,SN2,SN3,...,SNn;
对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分;
计算所述n个主成分的累积贡献率,并其等同为第二相似度;
对n份数据结构作业进行第三词法分析,获取n个语法树分别记为T1,T2,T3,...,Tn;
分别计算每棵语法树出从根到叶结点的一条最长路径和一条最长路径,其中,最长路径记作L(Ti),最长路径L(Ti);
计算每组L(Ti)与P(Ti)的差异值,其中,计算规则为:
dif(L(Ti),P(Ti))=|Length[L(Ti)]-Length[P(Ti)]|;
根据所述差异值,计算n棵语法树的第三相似度:计算规则为:
根据所述第一相似度、第二相似度和/或第三相似度与神经网络结合建立精确化模型;
根据所述精确化模型计算结果评价所述数据结构作业程序相似性。
2.根据权利要求1所述的数据结构作业程序相似性度量方法,其特征在于,
步骤所述根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合包括:
根据预定的相同属性的k-means聚类算法,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合。
3.根据权利要求1所述的数据结构作业程序相似性度量方法,其特征在于,
步骤所述对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分包括:
标准化计算规则为
所述协方差矩阵计算规则为:R=Z'Z/(n-1);
所述特征根计算规则为:(R-λE)e=0→(λ1,e1),(λ2,e2),...,(λn,en);
所述主成分矩阵计算规则为:Yi=eiZ,i∈[1,n]。
4.根据权利要求1所述的数据结构作业程序相似性度量方法,其特征在于,
步骤所述计算所述n个主成分的累积贡献率包括:
所述n个主成分的累计贡献率的计算规则为:
CN201610939664.3A 2016-10-25 2016-10-25 一种数据结构作业程序相似性度量方法 Expired - Fee Related CN106528111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610939664.3A CN106528111B (zh) 2016-10-25 2016-10-25 一种数据结构作业程序相似性度量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610939664.3A CN106528111B (zh) 2016-10-25 2016-10-25 一种数据结构作业程序相似性度量方法

Publications (2)

Publication Number Publication Date
CN106528111A CN106528111A (zh) 2017-03-22
CN106528111B true CN106528111B (zh) 2019-07-19

Family

ID=58291723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610939664.3A Expired - Fee Related CN106528111B (zh) 2016-10-25 2016-10-25 一种数据结构作业程序相似性度量方法

Country Status (1)

Country Link
CN (1) CN106528111B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170469B (zh) * 2017-12-20 2021-06-11 南京邮电大学 一种基于代码提交历史的Git仓库相似性检测方法
CN110297750A (zh) * 2018-03-22 2019-10-01 北京京东尚科信息技术有限公司 程序相似性检测的方法和装置
CN108932528B (zh) * 2018-06-08 2021-08-31 哈尔滨工程大学 变色龙算法中相似性度量及截断方法
CN110750384A (zh) * 2019-10-15 2020-02-04 浙江众鑫空间科技有限公司 大数据管理系统
CN112528011B (zh) * 2020-12-05 2022-06-17 华中师范大学 多数据源驱动的开放式数学作业批改方法、系统及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697121A (zh) * 2009-10-26 2010-04-21 哈尔滨工业大学 一种基于程序源代码语义分析的代码相似度检测方法
CN105426711A (zh) * 2015-11-18 2016-03-23 北京理工大学 一种计算机软件源代码相似度检测方法
CN105868108A (zh) * 2016-03-28 2016-08-17 中国科学院信息工程研究所 基于神经网络的指令集无关的二进制代码相似性检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697121A (zh) * 2009-10-26 2010-04-21 哈尔滨工业大学 一种基于程序源代码语义分析的代码相似度检测方法
CN105426711A (zh) * 2015-11-18 2016-03-23 北京理工大学 一种计算机软件源代码相似度检测方法
CN105868108A (zh) * 2016-03-28 2016-08-17 中国科学院信息工程研究所 基于神经网络的指令集无关的二进制代码相似性检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
程序代码相似性度量方法研究;朱波;《中国优秀硕士学位论文全文数据库 信息科技辑》;20151215;l138-61

Also Published As

Publication number Publication date
CN106528111A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN106528111B (zh) 一种数据结构作业程序相似性度量方法
Baur et al. Analysis of ratios in multivariate morphometry
Adams A method for assessing phylogenetic least squares models for shape and other high-dimensional multivariate data
Marroig et al. Size as a line of least resistance II: direct selection on size or correlated response due to constraints?
Barunik et al. Understanding the source of multifractality in financial markets
Rolland et al. Niche width impacts vertebrate diversification
Dimitrova et al. Some comments on Bitcoin market (in) efficiency
Zhang et al. University of Illinois at Urbana-Champaign
Pavoine et al. Testing for phylogenetic signal in biological traits: the ubiquity of cross-product statistics
CN110706026A (zh) 一种异常用户的识别方法、识别装置及可读存储介质
Fan et al. Testing and detecting jumps based on a discretely observed process
Vidović et al. Center-based clustering for line detection and application to crop rows detection
Briggs et al. Structured population dynamics: An introduction to integral modeling
Palaghianu A tool for computing diversity and consideration on differences between diversity indices
Baab Evolvability and craniofacial diversification in genus Homo
CN107909119A (zh) 集合间相似度的确定方法和装置
Raies et al. In silico toxicology: comprehensive benchmarking of multi‐label classification methods applied to chemical toxicity data
Mokroš et al. Non-destructive monitoring of annual trunk increments by terrestrial structure from motion photogrammetry
CN105009130A (zh) 基于网络熵的对生物体状态迁移的预兆检测予以辅助的检测装置、检测方法以及检测程序
Malik et al. Estimation of the extent of the vulnerability of agriculture to climate change using analytical and deep-learning methods: a case study in Jammu, Kashmir, and Ladakh
Ye et al. A wavelet‐based approach to evaluate the roles of structural and functional landscape heterogeneity in animal space use at multiple scales
Márquez et al. Correlated evolution of multivariate traits: detecting co‐divergence across multiple dimensions
Tharmakulasingam et al. Improved pathogen recognition using non-euclidean distance metrics andweighted KNN
CN106909497B (zh) 测试方法和装置
CN110008972A (zh) 用于数据增强的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190719

CF01 Termination of patent right due to non-payment of annual fee