本发明公开了一种数据结构作业程序相似性度量方法,能对数据结构作业程序从多个角度进行相似性度量,避免了现有度量方案单一、陈旧的问题,且本方法还可以和程序动态测试结合起来,产生更多参考答案完备集,为识别答案和程序理解提供一些新的思路。本发明方法包括通过从数据结构作业程序中获取词法分析矩阵,并分别根据不同的词法分析矩阵计算三个相似度,再将三个相似度中的一个或者至少一个或者三个相似度与神经网络结合进行长期的学习,使度量结果更准确。
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棵语法树的第三相似度:计算规则为:根据所述第一相似度、第二相似度和/或第三相似度与神经网络结合建立精确化模型;根据所述精确化模型计算结果评价所述数据结构作业程序相似性。
本文链接:http://www.vipzhuanli.com/tech/sell/s_2113018.html,转载请声明来源钻瓜专利网。