一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种编程作业自动批改方法、系统及介质与流程

2021-12-14 23:12:00 来源:中国专利 TAG:


1.本发明涉及图形化编程技术领域,尤其涉及一种编程作业自动批改方法、系统及介质。


背景技术:

2.当前的在线少儿编程课程中,学生的课后编程作业批改主要还依赖于人工批改,主要是由于图形化编程作业是由代表各种变量、操作的图形化积木代码块组合而成,学生操作的自由度较高,一个作业通常会对应多种实现方式,现有的自动批改仅提供少数正确答案进行精确对比,使得自动批改的效率低下,难以满足多样化编程作业的高效自动批改需要。


技术实现要素:

3.鉴于上述现有技术的不足,本发明的目的在于提供一种编程作业自动批改方法、系统及介质,旨在提高编程作业自动批改的效率。
4.本发明的技术方案如下:
5.一种编程作业自动批改方法,其包括如下步骤:
6.获取待批改的编程作业;
7.将所述编程作业输入至预设的神经网络模型中,计算输出所述编程作业的特征数据;
8.将所述编程作业的特征数据与正确答案模板集合进行特征匹配,输出相应的置信度数据;
9.根据所述置信度数据确认所述编程作业的批改结果。
10.所述的编程作业自动批改方法中,所述将所述编程作业的特征数据与正确答案模板集合进行特征匹配,输出相应的置信度数据,包括:
11.将所述编程作业的特征数据输入至预设的匹配模型中,输出所述编程作业与预设模板类别之间的置信度数据,所述匹配模型基于所述正确答案模板集合中已获得的所有正确答案模板训练得到。
12.所述的编程作业自动批改方法中,所述将所述编程作业的特征数据输入至预设的匹配模型中之前,所述方法还包括:
13.对所述正确答案模板集合中已获得的所有正确答案模板进行类别标注,将各个正确答案模板分别标注为相应的预设模板类别;
14.将各个正确答案模板分别输入至所述神经网络模型中,计算输出各个正确答案模板的特征训练数据;
15.构建所述匹配模型,并根据各个正确答案模板的所述预设模板类别和所述特征训练数据对所述匹配模型进行训练,直到所述匹配模型满足预设收敛条件。
16.所述的编程作业自动批改方法中,所述根据所述置信度数据确认所述待批改的编
程作业的批改结果,包括:
17.若存在大于等于置信度阈值的置信度数据,则所述编程作业的批改结果为合格;
18.若置信度数据均小于置信度阈值,则所述编程作业的批改结果为不合格;
19.将批改结果为不合格的所述编程作业归入待处理作业集合中;
20.对所述待处理作业集合进行聚类处理,提取新的正确答案模板并归入正确答案模板集合后继续进行特征匹配,直到从全部待批改的编程作业中匹配出所有的正确答案。
21.所述的编程作业自动批改方法中,所述将所述编程作业输入至预设的神经网络模型中,计算输出所述编程作业的特征数据之前,还包括:
22.对所述编程作业按预设规则进行序列化处理。
23.所述的编程作业自动批改方法中,所述对所述编程作业按预设规则进行序列化处理,包括:
24.获取编程作业中的积木代码块组合;
25.按预设顺序解析所述积木代码块组合,得到每个积木代码块对应的积木类型与积木数据;
26.根据所述积木类型和积木数据按预设规则进行序列化后生成相应的序列化数组。
27.所述的编程作业自动批改方法中,所述按预设顺序解析所述积木代码块组合,得到每个积木代码块对应的积木类型与积木数据,包括:
28.获取所述积木代码块组合的拼接时序;
29.按所述拼接时序依次对每个积木代码块进行解析,得到按拼接时序排列的积木类型与积木数据。
30.所述的编程作业自动批改方法中,所述根据所述积木类型和积木数据按预设规则进行序列化后生成相应的序列化数组,包括:
31.将所述积木类型和积木数据按预设的编码映射库分别转换为对应的编码数据,所述编码映射库用于存储所述积木类型和积木数据与所述编码数据之间的映射关系;
32.将所述编码数据按预设数据结构进行封装后得到与每个积木代码块对应的一维数组;
33.将所述一维数组按拼接时序叠加,生成与所述积木代码块组合对应的二维序列化数组。
34.本发明又一实施例还提供了一种编程作业自动批改系统,所述系统包括至少一个处理器;以及,
35.与所述至少一个处理器通信连接的存储器;其中,
36.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述编程作业自动批改方法。
37.本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的编程作业自动批改方法。
38.有益效果:本发明公开了一种编程作业自动批改方法、系统及介质,相比于现有技术,本发明实施例通过神经网络模型计算编程作业的特征数据,并将特征数据与正确答案模板进行特征匹配后得到相应的置信度数据,结合深度学习训练与特征匹配获取的置信度
数据对编程作业的进行高效的自动批改,提高了编程教学过程中作业批改的效率。
附图说明
39.下面将结合附图及实施例对本发明作进一步说明,附图中:
40.图1为本发明提供的编程作业自动批改方法较佳实施例的流程图;
41.图2为本发明提供的编程作业自动批改方法应用实施例中待处理编程作业中积木代码块组合的示意图;
42.图3为本发明提供的编程作业自动批改方法应用实施例中特征数据计算的流程图;
43.图4为本发明提供的编程作业自动批改方法应用实施例中模板匹配的流程图;
44.图5为本发明提供的编程作业自动批改装置较佳实施例的功能模块示意图;
45.图6为本发明提供的编程作业自动批改系统较佳实施例的硬件结构示意图。
具体实施方式
46.为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
47.请参阅图1,图1为本发明提供的编程作业自动批改方法较佳实施例的流程图。如图1所示,其包括如下步骤:
48.s100、获取待批改的编程作业;
49.s200、将所述编程作业输入至预设的神经网络模型中,计算输出所述编程作业的特征数据;
50.s300、将所述编程作业的特征数据与正确答案模板集合进行特征匹配,输出相应的置信度数据;
51.s400、根据所述置信度数据确认所述编程作业的批改结果。
52.本实施例中,当用户在例如在线编程教育平台上进行编程学习时,根据作业要求在相应的代码编辑区域输入待批改的编程作业,此时在线编程教育平台可自动获取用户所提交的待批改的编程作业,具体所述待批改的编程作业可以是历史提交待批改的编程作业,也可以是实时提交待批改的编程作业,本实施例对此不作限定,特别地,本实施例中可以以图形化编程形式的编程作业进行说明,即编程作业中包含的是多个已封装的具有相应功能的积木代码块,当然,在其它实施例中所述编程作业也可以是其它例如文本等形式,本实施例对此不作限定。
53.获取到待批改的编程作业后通过预先构建并完成训练的神经网络模型进行特征提取,计算输出所述待批改的编程作业的特征数据,所述神经网络模型可以为vgg神经网络,其具有结构简洁、特征度宽、能提取更多特征信息等优点,当然在其它实施例中也可采用其它结构的神经网络模型,本实施例对其不作限定;具体所述神经网络模型的训练过程为根据预先采集的批改训练样本对所述神经网络模型进行训练,使所述神经网络模型达到预设收敛条件即完成模型训练,所述批改训练样本中包含有多种不同组合形式且带有标注的图形化编程作业,将其输入至神经网络模型中,根据所述神经网络模型对批改训练样本
进行特征提取的输出值反向调节器权重参数直到模型收敛,也就是说完成训练的神经网络模型能准确的识别提取编程作业中所包含的积木代码块对应的特征数据,为后续的自动批改提供可靠的数据基础。
54.提取得到待批改的编程作业的特征数据后将其与正确答案模板集合进行特征匹配,计算输出相应的置信度数据,例如自动批改初始时可预设至少一个正确答案模板并通过神经网络模型提取其特征数据保存在正确答案模板集合中,后续在自动批改时,将待批改的编程作业的特征数据与正确答案模板集合中所包含的模板特征数据进行匹配,并根据计算输出的置信度数据进一步确认得到所述待批改的编程作业的批改结果,本实施例通过结合深度学习训练得到神经网络模型与特征匹配处理,将编程作业自动批改时抽象的图形化对比转换为准确的特征数据匹配,有效提高了图形化编程教学过程中作业自动批改的效率。
55.在一个实施例中,所述将所述编程作业的特征数据与正确答案模板集合进行特征匹配,输出相应的置信度数据,包括:
56.将所述编程作业的特征数据输入至预设的匹配模型中,输出所述编程作业与预设模板类别之间的置信度数据,所述匹配模型基于所述正确答案模板集合中已获得的所有正确答案模板训练得到。
57.本实施例中,在进行特征匹配时,通过预设的匹配模型对所述编程作业的特征数据进行分类匹配,且该匹配模型是基于所述正确答案模板集合中已获得的正确答案模板训练得到的,即通过已获得的正确答案模板预先训练得到一匹配模型,该匹配模型用于将输入的编程作业与预设模板类别进行特征匹配后输出相应的置信度数据,置信度数据则表示编程作业的特征数据与预设模板类别对应的特征数据之间的相似度,同一编程作业针对所有预设模板类别的置信度数据之和为1,即通过该匹配模型可匹配输出编程作业与各个预设模板类别之间的相似度,以实现对输入的编程作业的特征数据进行高效的特征匹配处理。
58.在一个实施例中,所述将所述编程作业的特征数据输入至预设的匹配模型中之前,所述方法还包括:
59.对所述正确答案模板集合中已获得的所有正确答案模板进行类别标注,将各个正确答案模板分别标注为相应的预设模板类别;
60.将各个正确答案模板分别输入至所述神经网络模型中,计算输出各个正确答案模板的特征训练数据;
61.构建所述匹配模型,并根据各个正确答案模板的所述预设模板类别和所述特征训练数据对所述匹配模型进行训练,直到所述匹配模型满足预设收敛条件。
62.本实施例中,在进行特征匹配之前先构建并训练得到用于分类匹配的匹配模型,先对正确答案模板集合中已获得的所有正确答案模板进行类别标注,将各个正确答案模板分别标注为相应的预设模板类别,并且通过预设的神经网络模型计算得到各个正确答案模板的特征训练数据,从而构成匹配模型的分类训练样本,即匹配模型的分类训练样本为已进行了类别标注的特征训练数据,通过该分类训练样本对所述匹配模型进行训练,直到匹配模型满足预设收敛调节时即完成模型训练,完成模型训练的匹配模型能准确的对编程作业的特征数据进行分类匹配,得到编程作业与各个预设模板类别之间的置信度数据,实现
高效准确的端到端的特征匹配。
63.可选的,由于正确答案模板集合可能是根据批改进程而动态更新的,以满足多样化实现形式的批改需求,因此匹配模型训练和分类匹配可同时进行,在初次完成了匹配模型的模型训练后,可根据动态更新的正确答案模板集合包含的特征训练数据与预设模板类别继续进行训练以得到更新后的匹配模型,提高对编程作业的特征数据进行特征匹配时的模板覆盖率,确保在特征匹配时不会由于遗漏导致批改错误,提高自动批改的可靠性。
64.所述根据所述置信度数据确认所述待批改的编程作业的批改结果,包括:
65.若存在大于等于置信度阈值的置信度数据,则所述编程作业的批改结果为合格;
66.若置信度数据均小于置信度阈值,则所述编程作业的批改结果为不合格。
67.本实施例中,在进行特征匹配得到与各个预设模板类别相应的置信度数据后,如果存在大于等于置信度阈值的置信度数据,则说明当前待批改的编程作业与该置信度数据对应的预设模板类别是相匹配的,确认编程作业的批改结果为合格,因此确认编程作业的批改结果为合格,具体所述置信度阈值可根据实际批改需求以及正确答案模板集合的覆盖率进行灵活设置,本实施例对此不作限定;如果不存在,即置信度数据均小于置信度阈值,则说明当前的预设模板类别中没有与待批改的编程作业相匹配的模板类别,此时确认编程作业的批改结果为不合格,标记为未知作品留待后续处理,通过采用置信度阈值且置信度阈值可调的方式,能灵活根据批改需要调节正确答案模板的覆盖率,使得无需完全精确匹配亦可判断编程作业是否正确,有效提高了编程作业自动批改效率。
68.在一个实施例中,所述若置信度数据均小于置信度阈值,则所述编程作业的批改结果为不合格之后,方法还可以包括:
69.将批改结果为不合格的所述编程作业归入待处理作业集合中;
70.对所述待处理作业集合进行聚类处理,提取新的正确答案模板并归入正确答案模板集合后继续进行特征匹配,直到从全部待批改的编程作业中匹配出所有的正确答案。
71.本实施例中,如果当前待批改的编程作业在进行特征匹配后被标记为未知作品,则将其归入待处理作业集合中,对所述待处理作业集合进行进一步的聚类处理,从待处理作业集合中提取新的正确答案模板并归与所述正确答案模板集合中,即虽然同一个作业的正确答案可以有多种实现组合,初始匹配时可能待批改的编程作业无法与现有的正确答案模板集合成功匹配,但是正确答案的总数理论上是确定的,且正确答案作业之间是具有共性的,因此不同正确答案模板之间具有一定的逻辑联系,例如不同正确答案模板中关键执行步骤是相同的,其余执行步骤存在顺序上的颠倒等等,因此本实施例中在特征匹配后根据匹配结果针对未知作品进行聚类操作,逐步得到新的正确答案模板从而对正确答案模板集合进行更新,进一步通过更新后的正确答案模板集合继续进行特征匹配,不断重复上述匹配、集合归入以及聚类过程,形成匹配与聚类的良性循环,直到聚类得到全部的正确答案模板即可从全部待批改的编程作业中匹配出所有的正确答案,有效提高了编程作业自动批改的覆盖率与效率。
72.所述对所述待处理作业集合进行聚类处理,提取新的正确答案模板并归入正确答案模板集合后继续进行特征匹配,包括:
73.根据预设聚类算法对所述待处理作业集合进行聚类处理;
74.判断是否有满足预设聚类标准的待处理作业类别;
75.若有,则从所述满足预设聚类标准的待处理作业类别中提取新的正确答案模板并归入所述正确答案模板集合中;
76.通过更新后的所述正确答案模板集合继续对待批改的编程作业进行作业匹配。
77.本实施例中,针对匹配过程中暂时无法匹配成功的待处理作品集合进行聚类操作,通过预设聚类算法例如k

means(k均值)聚类、均值漂移聚类、基于密度的聚类等等聚类算法对所述待处理作业集合进行聚类处理,由于正确答案作业之间是具有共性的,因此可根据当前作业的要求设置预设聚类标准,聚类处理时判断待处理作业集合中是否有满足预设聚类标准的待处理作业类别,若有,则从中提取最接近预设聚类标准的作品作为新的正确答案模板,并归入所述正确答案模板集合中,通过更新后的所述正确答案模板集合继续对待批改的编程作业进行作业匹配。具体地,可将现有的正确答案模板作为初始聚类中心,针对待处理作业集合中的各个待处理作业样本,分别计算每个待处理作业样本与各个初始聚类中心之间的距离,当待处理作业样本与任意一个初始聚类中心的距离小于预设距离时则视为满足预设聚类标准,并且将满足预设聚类标准的待处理作业样本分配至距离最小的初始聚类中心所对应的待处理作业类别中,从各个待处理作业类别中提取最接近初始聚类中心的待处理作业样本作为新的正确答案模板,即待处理作业类别与已经获得的正确答案模板相对应,其代表了与各个正确答案模板相似的作业类别,从各个待处理作业类别中进一步提取与对应正确答案模板最相似的作品作为新的正确答案模板从而对所述正确答案模板集合进行更新,以提高所述正确答案模板集合的覆盖率。
78.也就是说,本实施例在进行特征匹配后还通过对待处理作业集合进行聚类操作后得到新的正确答案模板,从而对正确答案模板集合进行更新,以增加正确答案模板集合在批改匹配时的覆盖率,不断重复这一过程后即可逐步从全部待批改的编程作业中匹配出正确答案,并且逐步完善当前作业对应的正确答案模板集合,有效提高了后续作业批改的覆盖率和效率。
79.所述从所述满足预设聚类标准的待处理作业类别中提取新的正确答案模板并归入所述正确答案模板集合中,具体包括:
80.对满足预设聚类标准的待处理作业类别进行聚类中心提取,并将提取得到的聚类中心作为新的正确答案模板并归入所述正确答案模板集合中。
81.本实施例中,在提取新的正确答案模板时,对满足预设聚类标准的待处理作业类别进行聚类中心取,将提取得到的聚类中心作为新的正确答案模板,即在根据各个待处理作业样本与各个初始聚类中心之间的距离按距离最小原则划分类别后,得到与各个初始聚类中心对应的待处理作业类别,此时则针对各个待处理作业类别中包含的待处理作业样本重新计算聚类中心,计算待处理作业类别中待处理作业样本与初始聚类中心之间的距离的平均值,将距离最接近平均值的待处理作业样本作为待处理作业类别的聚类中心,作为聚类中心的待处理作业样本是对应的待处理作业类别中最接近正确答案模板的作品,确保每次从待处理作业集合中提取新的正确答案模板时均选择最接近预设聚类标准,即最符合正确答案要求的作业,确保正确答案模板集合的准确性。
82.可选地,每次从所述待处理作业集合中提取了新的正确答案模板后,均将该新的正确答案模板从所述待处理作业集合中剔除,避免后续聚类算法时的重复提取,导致影响其他正确的作业无法被成功提取,影响正确答案模板集合的覆盖率。
83.可选的,所述将所述编程作业输入至预设的神经网络模型中,计算输出所述编程作业的特征数据之前,方法还可以包括:
84.对所述编程作业按预设规则进行序列化处理。
85.本实施例中,由于图形化编程的作品是由多个积木代码块拼接而成的一个积木组合,无法对各个积木代码块组合所代表的代码数据进行自动识别,为实现代码数据的自动识别以提高后续的匹配以及聚类效率,在进行作业匹配之前,先将所述待批改的编程作业向量化处理,将图形化的编程作业转换为准确数字量化的编程作业,进而实现对编程作业的自动识别,为实现高效且准确的自动批改提供可靠的数据基础。
86.可选的,所述对所述编程作业按预设规则进行序列化处理,包括:
87.获取编程作业中的积木代码块组合;
88.按预设顺序解析所述积木代码块组合,得到每个积木代码块对应的积木类型与积木数据;
89.根据所述积木类型和积木数据按预设规则进行序列化后生成相应的序列化数组。
90.本实施例中,具体的序列化处理过程为先获取待批改的编程作业中的积木代码块组合,如图2所示,所述待批改的编程作业是由多个积木代码块叠加而成的积木代码块组合,每个积木代码块内均封装有实现相应功能的代码,例如javascript代码等;获取到所述积木代码块组合后则按预设顺序对其进行解析,由于获取的积木代码块组合中不同积木代码块之间具有一定的时序关系,因此按预设顺序对所述积木代码块组合进行解析,得到按预设顺序排列的每个积木代码块对应的积木类型与积木数据,确保在不影响积木代码块之间逻辑关系的同时得到每个积木代码块所代表的功能与数据,进而根据解析得到的所述积木类型和积木数据按预设规则进行序列化处理,以生成与积木代码块组合相对应的序列化数组,使得在自动批改编程作业时可将图形化的积木代码块组合转换为易于识别的量化数组形式,可实现对积木代码块的自动识别,提高积木代码块的识别效率与准确性。
91.具体地,所述积木类型可以为常量积木、变量积木和/或操作积木中的一种或多种,即获取到的积木代码块组合可包括事件积木、控制积木、常量积木、变量积木以及操作积木中的一种或多种,通过多种不同类型的积木代码块的组合实现相应的功能,其中操作积木可进一步包括例如函数积木、运算积木、外观积木、声音积木等等,具体可根据实际需要设置,本实施例对此不作限定。所述积木数据为积木代码块上的输入参数,例如以控制积木为例,若当前控制积木为“等待0.5秒”,其积木数据则为“0.5”,当然,在积木代码块不存在输入参数时,所述积木数据可以为空,例如“重复执行”的控制积木等等。
92.可选地,针对初始的正确答案模板集合中包含的作品同样也按预设规则进行序列化处理以及神经网络模型特征提取,使得后续在进行作业匹配时能直接进行直观准确的量化匹配,有效提高了匹配效率和准确性。
93.可选地,所述按预设顺序解析所述积木代码块组合,得到每个积木代码块对应的积木类型与积木数据,包括:
94.获取所述积木代码块组合的拼接时序;
95.按所述拼接时序依次对每个积木代码块进行解析,得到按拼接时序排列的积木类型与积木数据。
96.本实施例中,所述待批改的编程作业中的积木代码块组合是用户输入的,具体用
户可直接在预设的积木库中选择已封装的积木代码块,并在代码编辑区进行例如拖拽、拼接、组合等积木代码编辑操作,进而获取得到具有相应拼接时序的积木代码块组合。由于在图形编程场景中,所有的积木代码块都是顺序叠加放置的,因此在时序上存在天然的序列关系,通过获取所述积木代码块组合的拼接时序即可得到用户编辑输入时的叠加顺序,之后按所述拼接时序依次对每个积木代码块进行解析,得到按拼接时序排列的积木类型与积木数据,从而按序对叠加放置的积木代码块进行功能与数据的解析还原,保证后续序列化处理时积木代码块所对应的功能与数据不会发生逻辑时序错误,提高积木代码块识别的准确性。
97.可选地,所述根据所述积木类型和积木数据按预设规则进行序列化后生成相应的序列化数组,包括:
98.将所述积木类型和积木数据按预设的编码映射库分别转换为对应的编码数据,所述编码映射库用于存储所述积木类型和积木数据与所述编码数据之间的映射关系;
99.将所述编码数据按预设数据结构进行封装后得到与每个积木代码块对应的一维数组;
100.将所述一维数组按拼接时序叠加,生成与所述积木代码块组合对应的二维序列化数组。
101.本实施例中,在进行序列化处理时,先将所有按拼接时序排列的积木类型和积木数据依次进行编码后分别转换为对应编码数据,具体可根据预设的编码映射库进行一一对应的数据转换,所述编码映射库中存储有所述积木类型与编码数据之间的映射关系,以及所述积木数据与编码数据之间的映射关系,之间在所述编码映射库中搜索相应的积木类型和积木数据后即可得到对应的编码数据,实现便捷快速的数据转换,之后将数字化的所述编码数据按预设数据结构进行封装,得到与每个积木代码对应的一维数组,即本实施例中将每一个积木代码块均对应转换为一条一维数组,在得到了每个积木代码所对应的一维数组后,再将所有的一维数组按拼接时序叠加生成一个二维序列化数组,所述二维序列化数组即与积木代码块组合相对应,其具有相同的拼接时序以及与积木类型和积木数据一一对应的编码数据,通过该二维序列化数组即可将图形化的积木代码块组合转换为量化的二维编码数据,实现了对图形化编程作品的向量化处理,便于后续实现准确的积木代码识别与审核,有利于实现图形化编程作品的自动审核。
102.可选地,所述根据所述积木类型和积木数据按预设规则进行序列化后生成相应的序列化数组之前,还包括:
103.预先定义所有积木类型对应的类型编码数据,以及积木数据对应的动作编码数据后得到所述编码映射库。
104.本实施例中,预先对积木库中所有积木代码块包括的积木类型以及积木数据进行编码定义并存储,得到所述编码映射库以实现准确的数据转换,具体所述编码映射库可采用映射表的形式,如表1所示,其展示了部分积木类型所对应的类型编码数据使得后续序列化处理时,可直接搜索调用各个积木类型对应的类型编码数据,以及积木数据对应的动作编码数据即可,确保每次序列化处理时的统一性与准确性。
105.表1
[0106][0107][0108]
可选地,所述一维数组的首位数据位为类型编码数据,其余数据位为动作编码数据和/或预设空位字符。
[0109]
本实施例中,按预设数据结构对转换得到的编码数据进行封装,从而将每个代表一个变量、常量或者操作的待处理积木代码量化为统一数据格式的序列化一维数组,该数据结构如表2所示,每一行数据可固定长度为n位,n可根据实际积木情况,能满足最长需求即可,首位为类型编码数据,后几位为动作编码数据,若无法全用到,可用预设空位字符例如0替代。
[0110]
表2
[0111][0112]
具体请一并参阅图2,举具体应用实施例对本发明提供的编程作业自动批改方法中序列化处理过程进行说明,如图2所示,本实施例中积木代码块组合按拼接时序分别为重复执行、下一个动作、等待0.5秒,对应的积木类型依次为重复执行、动作、等待(以秒为单位),对应的积木数据依次为无数据、下一个动作对应的动作编码数据、0.5,因此按上述预设数据结构对积木类型和积木数据对应的编码数据进行封装后即可将积木代码块序列化后转换为如表3所示的二维序列化数组,实现图形化至数字化的转换,达到对图形化编程作品进行自动识别的目的,为图形编程作品自动批改等提供准确的识别结果。
[0113]
表3
[0114][0115]
具体地,为更好地理解本发明提供的编程作业自动批改方法的实施过程,以下结合图3和图4,举具体应用实施例对编程作业批改过程进行说明:
[0116]
本实施例中编程作业自动批改分为两个过程,先进行如图3所示的特征计算过程,获取了待批改作业后先对其进行序列化处理,使得图形编程作品转换为可用于计算的向量数据,之后将序列化处理后的数据输入至预先完成训练的vgg神经网络中进行计算,输出待批改作业的特征数据,之后进行如图4所示的模板匹配过程,其为一个逐步迭代递归的过程,首先获取之前计算输出的待批改作业的特征数据,之后将待批改作业的特征数据与已有的正确答案模板集合进行特征匹配计算,得到与正确答案模板数量相同的若干个置信度数据,该正确答案模板集合中初始包含的正确答案模板也经过同样的序列化处理和特征提取以实现准确的匹配计算,之后判断若干个置信度数据中是否存在大于等于置信度阈值的数据,若有,则标记待批改作业为正确答案并归入正确答案模板集合中,若没有,则归入未知结果作品集合中;进一步利用k

means等聚类算法对未知结果作品集合进行聚类操作,判断结果中是否有满足聚类标准的作品,若有,则在满足聚类标准的作品集合中选取聚类中心作为新的正确答案模板,将该聚类成功的新模板归入正确答案模板集合中,并将其从未知结果作品集合中剔除,通过更新后的正确答案模板集合继续进行作业匹配,重复上述匹配、集合、聚类过程,即可逐步从全部作业中匹配检测出正确的作业,并逐步完善当前作业的正确答案模板,有效提高后续作品匹配批改的覆盖率和效率。
[0117]
由以上方法实施例可知,本发明提供的编程作业自动批改方法通过神经网络模型计算编程作业的特征数据,并将特征数据与正确答案模板进行特征匹配后得到相应的置信度数据,结合深度学习训练与特征匹配获取的置信度数据对编程作业的进行高效的自动批改,提高了编程教学过程中作业批改的效率。
[0118]
需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
[0119]
本发明另一实施例提供一种编程作业自动批改装置,如图5所示,装置1包括:
[0120]
获取模块11,用于获取待批改的编程作业;
[0121]
特征计算模块12,用于将所述编程作业输入至预设的神经网络模型中,计算输出所述编程作业的特征数据;
[0122]
匹配模块13,用于将所述编程作业的特征数据与正确答案模板集合进行特征匹配,输出相应的置信度数据;
[0123]
输出模块14,用于根据所述置信度数据确认所述编程作业的批改结果。
[0124]
所述获取模块11、特征计算模块12、匹配模块13和输出模块14依次连接,具体实施方式请参考上述对应的方法实施例,此处不再赘述。
[0125]
进一步地,所述特征计算模块12具体用于:
[0126]
将所述编程作业的特征数据至预设的匹配模型中,输出所述编程作业与预设模板类别之间的置信度数据,所述匹配模型基于所述正确答案模板集合中已获得的所有正确答案模板训练得到。
[0127]
进一步地,所述编程作业自动批改装置还包括:
[0128]
标注模块,用于对所述正确答案模板集合中已获得的所有正确答案模板进行类别标注,将各个正确答案模板分别标注为相应的预设模板类别;
[0129]
输入模块,用于将各个正确答案模板分别输入至所述神经网络模型中,计算输出各个正确答案模板的特征训练数据;
[0130]
训练模块,用于构建所述匹配模型,并根据各个正确答案模板的所述预设模板类别和所述特征训练数据对所述匹配模型进行训练,直到所述匹配模型满足预设收敛条件。
[0131]
进一步地,所述输出模块14用于:
[0132]
若存在大于等于置信度阈值的置信度数据,则输出所述编程作业的批改结果为合格;
[0133]
若置信度数据均小于置信度阈值,则输出所述编程作业的批改结果为不合格。
[0134]
进一步地,所述输出模块14还包括:
[0135]
归类单元,用于将批改结果为不合格的所述标记为未知作品的编程作业归入待处理作业集合中;
[0136]
聚类单元,用于对所述待处理作业集合进行聚类处理,提取新的正确答案模板并归入正确答案模板集合后继续进行特征匹配,直到从全部待批改的编程作业中匹配出所有的正确答案。
[0137]
进一步地,所述编程作业自动批改装置还包括:
[0138]
序列化模块,用于对所述编程作业按预设规则进行序列化处理。
[0139]
进一步地,所述序列化模块包括:
[0140]
获取单元,用于获取编程作业中的积木代码块组合;
[0141]
解析单元,用于按预设顺序解析所述积木代码块组合,得到每个积木代码块对应的积木类型与积木数据;
[0142]
序列化单元,用于根据所述积木类型和积木数据按预设规则进行序列化后生成相应的序列化数组。
[0143]
进一步地,所述解析单元包括:
[0144]
时序获取子单元,用于获取所述积木代码块组合的拼接时序;
[0145]
解析子单元,用于按所述拼接时序依次对每个积木代码块进行解析,得到按拼接时序排列的积木类型与积木数据。
[0146]
进一步地,所述序列化单元包括:
[0147]
转换子单元,用于将所述积木类型和积木数据按预设的编码映射库分别转换为对应的编码数据,所述编码映射库用于存储所述积木类型和积木数据与所述编码数据之间的映射关系;
[0148]
数据封装子单元,用于将所述编码数据按预设数据结构进行封装后得到与每个积木代码块对应的一维数组;
[0149]
序列叠加子单元,用于将所述一维数组按拼接时序叠加,生成与所述积木代码块组合对应的二维序列化数组。
[0150]
本发明另一实施例提供一种编程作业自动批改系统,如图6所示,系统10包括:
[0151]
一个或多个处理器110以及存储器120,图6中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图6中以通过总线连接为例。
[0152]
处理器110用于完成系统10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acorn risc machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。
[0153]
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的编程作业自动批改方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行系统10的各种功能应用以及数据处理,即实现上述方法实施例中的编程作业自动批改方法。
[0154]
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据系统10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至系统10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0155]
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的编程作业自动批改方法,例如,执行以上描述的图1中的方法步骤s100至步骤s400。
[0156]
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s400。
[0157]
作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明而非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlink dram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类
型的存储器中的一个或多个。
[0158]
综上所述,本发明公开的一种编程作业自动批改方法、系统及介质中,方法通过获取待批改的编程作业;将所述编程作业输入至预设的神经网络模型中,计算输出所述编程作业的特征数据;将所述编程作业的特征数据与正确答案模板集合进行特征匹配,输出相应的置信度数据;根据所述置信度数据确认所述编程作业的批改结果。本发明实施例通过神经网络模型计算编程作业的特征数据,并将特征数据与正确答案模板进行特征匹配后得到相应的置信度数据,结合深度学习训练与特征匹配获取的置信度数据对编程作业的进行高效的自动批改,提高了编程教学过程中作业批改的效率。
[0159]
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的计算机程序可存储于一非易失性计算机可读取的存储介质中,该计算机程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、软盘、闪存、光存储器等。
[0160]
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献