System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机科学与,特别提供了一种基于深度学习的学生程序设计能力评价方法。
技术介绍
1、随着信息技术的迅猛发展,计算机科学教育成为高等教育中的重要组成部分,学生的程序设计能力尤其受到重视。传统的程序设计能力评价方式主要依赖于教师的主观判断或自动化的在线判题系统。这些方法存在一定的局限性:教师的主观评价往往受限于个人经验和偏见,而自动化在线判题系统则通常只依据程序的功能正确性进行评分,忽视了代码的优化、风格和创新等多个重要维度。此外,这些传统方法在处理大规模教学场景时,往往需要耗费大量的人力和时间成本,难以实时、高效地提供学生编程能力的全面评估。
2、随着大数据和人工智能技术的应用,机器学习尤其是深度学习技术在多个领域展现了卓越的性能,提供了新的解决方案。因此,如何利用这些技术对学生的编程作业进行自动分析和评估,以全面考量代码的多个质量指标,大幅度减少教育评估的人力成本,实现快速、客观和精确的评价,成为亟待解决的问题。
技术实现思路
1、鉴于此,本专利技术的目的在于提供一种基于深度学习的学生程序设计能力评价方法,以解决现有技术中学生程序设计能力评价方法效率低、缺乏客观性和全面性问题。
2、本专利技术提供的技术方案是:一种基于深度学习的学生程序设计能力评价方法,包括以下步骤:
3、s1:收集学生编程作业源代码并进行清洗,得到样本数据集,其中,所述样本数据集的标签为人工对所述源代码进行评分的结果;
4、s2:使用codebert模
5、s3:设计学生程序设计能力评估模型并利用样本数据集进行训练和测试,得到训练好的学生程序设计能力评估模型,其中,所述学生程序设计能力评估模型为包括卷积层、池化层和全连接层的基于卷积神经网络的模型;
6、s4:使用训练好的学生程序设计能力评估模型对学生程序设计源代码进行分类,得到对应的评分结果。
7、优选,s1中,对源代码进行清洗包括去除无关字符、格式化代码、处理注释。
8、进一步优选,s1中,标签分为5类,分别对应评分1~5,其中,评分是根据统一代码评价标准通过人工手动进行的,评分标准如下:
9、1)5分:使用题目要求的对应数据结构进行程序设计,程序完整全面,通过全部测试样例;
10、2)4分:使用非题目要求数据结构进行模拟程序设计,通过全部测试样例;
11、3)3分:使用题目要求的数据结构进行程序设计,但程序设计不完整全面,通过部分测试样例;
12、4)2分:使用题目要求的数据结构进行了少量程序设计或者使用非题目要求数据结构进行模拟程序设计,没有通过任何测试样例;
13、5)1分:空文件或者与题目要求不相关的代码,若在代码中发现存在根据测试样例结果直接输出的行为也分类到此评分。
14、4、按照权利要求3所述的基于深度学习的学生程序设计能力评价方法,其特征在于:每个评分标签通过one-hot编码转换成一组长度为5的序列。
15、进一步优选,s2具体包括如下步骤:
16、s21:利用分词器对源代码进行分词,得到词元;
17、s22:将每个词元转换为一个嵌入向量,并在嵌入向量中引入位置编码来指示词元在序列中的相对位置;
18、s23:将词元信息和位置信息融合后的嵌入向量通过transformer架构的编码器形成上下文表示,其中,所述编码器由一系列重复的层组成,每层包含两个核心组件:多头自注意力机制和位置全连接前馈网络。
19、进一步优选,s3中,学生程序设计能力评估模型的输入是[样本的数量,词元序列长度,每个词元的嵌入维度],表达式(1)定义了词元序列中第i个词元的k维词向量,一个由n个词元组成的序列按照公式(2)进行表示;
20、
21、卷积层使用滤波器w,所述滤波器在h个词元的窗口上滑动以提取新特征,如公式(3)所示,其中,b为偏置项,f为relu激活函数;
22、ci=f(w·xi:i+h-1+b) (3)
23、为提高网络训练的稳定性和速度,应用一维批量归一化;
24、滤波器按照表达式(4)的词向量特征序列生成特征图,公式(5)展示了这一过程,c代表卷积层的输出通道数;
25、{x1:h,x2:h+1,...,xn+1:n} (4)
26、c=[c1,c2,...,cn-h+1] (5)
27、随后,在特征图上实施最大池化,选择最大值作为滤波器的特征表示,如公式(6)所示;
28、
29、进一步优选,所述学生程序设计能力评估模型利用一系列不同尺寸的滤波器来捕捉多样化的特征,这些特征随后被传递到倒数第二层,并最终通过一个softmax层进行输出,如公式(7)所示,zi是输入向量中的第i个元素,该层提供了标签的概率分布;
30、
31、进一步优选,模型训练过程中,损失函数采用交叉熵损失函数,如公式(8)所示:
32、
33、式中,yoc是真实标签,poc是模型预测样本o属于类别c的概率,m是类别的总数量,yoc是一个二进制指示器,如果类别c是样本o的正确分类,则为1,否则为0。
34、进一步优选,模型测试过程中,采用正则化和交叉验证。
35、进一步优选,s4具体包括如下步骤:
36、源代码上传:通过程序提交接口,上传学生程序设计源代码;
37、源代码检查:对上传的源代码进行初步的格式和安全检查;
38、数据预处理:对上传的代码进行向量化处理,将代码从文本转换为机器学习模型可以处理的数值特征向量;
39、模型评分:基于所述学生程序设计能力评估模型对处理后的源代码进行分类,得到对应的评分结果。
40、本专利技术提供的基于深度学习的学生程序设计能力评价方法,包括自然语言处理(nlp)和卷积神经网络(cnn),能够对学生提交的编程作业进行智能分析和评估,该方法可以评价学生代码的多个维度,如代码质量、效率、以及符合性等,从而提供更加精确和客观的程序设计能力评价。
41、本专利技术提供的基于深度学习的学生程序设计能力评价方法,将深度学习技术应用于教育评估过程中,提高了教学质量和学习效率,同时也推动了教育技术和人工智能领域的发展。
本文档来自技高网...【技术保护点】
1.基于深度学习的学生程序设计能力评价方法,其特征在于,包括如下步骤:
2.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:S1中,对源代码进行清洗包括去除无关字符、格式化代码、处理注释。
3.按照权利要求2所述的基于深度学习的学生程序设计能力评价方法,其特征在于:S1中,标签分为5类,分别对应评分1~5,其中,评分是根据统一代码评价标准通过人工手动进行的,评分标准如下:
4.按照权利要求3所述的基于深度学习的学生程序设计能力评价方法,其特征在于:每个评分标签通过one-hot编码转换成一组长度为5的序列。
5.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:S2具体包括如下步骤:
6.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:S3中,学生程序设计能力评估模型的输入是[样本的数量,词元序列长度,每个词元的嵌入维度],表达式(1)定义了词元序列中第i个词元的k维词向量,一个由n个词元组成的序列按照公式(2)进行表示;
7.按照权利要求
8.按照权利要求6所述的基于深度学习的学生程序设计能力评价方法,其特征在于:模型训练过程中,损失函数采用交叉熵损失函数,如公式(8)所示:
9.按照权利要求6所述的基于深度学习的学生程序设计能力评价方法,其特征在于:模型测试过程中,采用正则化和交叉验证。
10.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:S4具体包括如下步骤:
...【技术特征摘要】
1.基于深度学习的学生程序设计能力评价方法,其特征在于,包括如下步骤:
2.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:s1中,对源代码进行清洗包括去除无关字符、格式化代码、处理注释。
3.按照权利要求2所述的基于深度学习的学生程序设计能力评价方法,其特征在于:s1中,标签分为5类,分别对应评分1~5,其中,评分是根据统一代码评价标准通过人工手动进行的,评分标准如下:
4.按照权利要求3所述的基于深度学习的学生程序设计能力评价方法,其特征在于:每个评分标签通过one-hot编码转换成一组长度为5的序列。
5.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:s2具体包括如下步骤:
6.按照权利要求1所述的基于深度学习的学生程序设计能力评价方法,其特征在于:s3中,学生程序设计能力评估模型的输入是[样本的数量,词元序列...
【专利技术属性】
技术研发人员:刘芳,刘可嘉,李思芃,田春华,滕一平,丛丽晖,张翼飞,周大海,曹一鹏,石峻岭,赵亮,
申请(专利权)人:沈阳航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。