基于人工智能的主观题自动评分方法和装置
技术领域
本申请涉及人工智能教育领域,具体而言,涉及一种基于人工智能的主观题自动评分方法和装置。
背景技术
主观题指要求学生自己组织材料,并采用合适方式表达,带有一定开放性的题目,通常采用简答题、论述题、材料分析题等题型进行考察。其主要特征是没有唯一正确的标准答案。政治、语文、历史等学科都有大量的主观题,在传统技术条件下,主观题的评分主要依靠人力,这不仅构成教师的工作负担、而且由于不同教师的评分尺度不一,也会影响评分的可靠性。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
随着计算机技术的发展,可使用计算机技术解决主观题的自动评分问题,但是因为囿于精确匹配策略,不但编写每道题目的自动评分程序非常复杂繁琐,而且评分的实际效果也得不到保障,为了解决这些问题,本申请实施例提供了一种基于人工智能的主观题自动评分方法和装置,以至少解决相关技术中对主观题的评分操作繁琐的技术问题,本申请采用人工智能、自然语言处理等技术来解决主观题自动评分的问题,通过自然语言处理技术可以将学生答案中的重要信息提取出来并数据化;在此基础上,通过人工智能技术,可以让智能体(agent)学会像专业的评价者那样对学生的答案进行准确评分。
根据本申请实施例的一个方面,提供了一种基于人工智能的主观题自动评分方法,包括:
步骤1:分解题目的得分点,分配每个得分点的分值,进而制定每个得分点的评分标准;
步骤2:征集小规模学习者答题(即答题内容),并严格按照得分点进行人工评分,形成原始的训练数据;
形成原始数据后,根据是否人工提取数据的特征,以及相应的训练数据、获得分类器的算法类型,下面的步骤分为a、b两个分支。a分支依赖人工或者机器预先提取数据特征,采用浅层学习的算法;b分支无需提取数据特征,而完全依靠多层神经网络模型的不断调适,逐渐发现数据的特征以及数据中的深层结构。
步骤3a:根据每个得分点的评分标准,提取判别该得分点得分与否的特征;
步骤4a:根据提取的特征,对原始数据进行过滤以及向量化;
步骤5a:基于向量化数据,采用浅层学习(也就是早期的机器学习)的分类算法,如支持向量机、随机森林(Random Forest)、决策树(Decision Tree)、K近邻(KNeighbors)、梯度提升(Gradient Boosting)等进行训练,获得针对各个得分点的分类器,也是自动评分器;
步骤6a:根据每个得分点的特征,对学习者的答案进行特征过滤和向量化,将获得的数据输入相应得分点的自动评分器,获得该学习者在每个得分点上的得分,并计算出在整道题上的总得分。
步骤3b:跳过特征提取环节,直接对原始数据进行简单的预处理和向量化;
步骤4b:基于向量化数据,采用深度学习神经网络算法,如密集连接神经网络(dense connected neural network)模型、循环神经网络(recurrent neural network)模型以及一维卷积神经网络(1D convolutional neural network)模型等进行训练,获得针对各个得分点的自动评分器;
步骤5b:直接对学习者的答案进行简单的预处理和向量化,将获得的数据输入相应得分点的分类器,也就是自动评分器,获得该学习者在每个得分点上的得分,并计算出在整道题上的总得分。
在实际使用中,可以根据题目以及训练数据的特点,选择步骤1-步骤2-步骤3a-步骤4a-步骤5a-步骤6a这一流程,或者步骤1-步骤2-步骤3b-步骤4b-步骤5b这一流程来完成主观题自动评分的任务。
根据本申请实施例的另一方面,还提供了一种基于人工智能的主观题自动评分装置,包括:
预处理单元,用于分解题目的得分点,分配每个得分点的分值,并制定每个得分点的评分标准;
数据采集单元,用于征集学习者针对题目的答题内容,按照评分标准对得分点进行评分,形成原始的训练数据;
训练单元,用于利用形成的原始数据训练得到题目的自动评分器;
评分单元,用于使用训练得到的自动评分器对题目的答题内容进行自动评分。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
本申请的有益效果包括:该方法可以直接用于主观题自动评分软件的开发,实现对有一定开放性的主观题准确、合理的自动评分。实验表明,其效果与专业评价者的评分相当,它可以极大减轻教师的工作量。在在线开放课程这种学习者人数众多的场景中,学习者直接通过电脑输入答案的情况下,使用基于本申请的方法开发的主观题自动评分软件可以带来极大的便利;此外,对主观题的自动评分也可以导向智能辅导,即自动评分可以及时把握学习者知识和能力上的缺漏,从而导向基于评分结果的个别化智能辅导,产生更大的教育效益,不仅如此,辅以手写体识别技术,主观题自动评分技术的应用范围将无限拓展。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的基于人工智能的主观题自动评分方法的流程图;以及,
图2是根据本申请实施例的一种可选的基于人工智能的主观题自动评分装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是根据本申请实施例的一种可选的基于人工智能的主观题自动评分方法的流程图,如图1所示,该方法可以包括以下步骤:
步骤S102,分解题目的得分点,分配每个得分点的分值,并制定每个得分点的评分标准;
步骤S104,征集学习者针对题目的答题内容,按照评分标准对得分点进行评分,形成原始的训练数据;
步骤S106,利用形成的原始数据训练得到题目的自动评分器;
步骤S108,使用训练得到的自动评分器对题目的答题内容进行自动评分。
在本申请的技术方案中,通过分解得分点、获取小规模人工评分的数据、表征答案语义空间并提取特征、去除停词及one-hot编码、基于浅层学习或深度学习算法训练分类器等技术,可以实现对开放程度不同的主观题准确、合理的评分。本发明可以直接用于主观题自动评分软件的开发,实现对有一定开放性的主观题准确、合理的自动评分。学习者直接通过电脑输入答案的情况下,使用基于本发明的方法开发的主观题自动评分软件可以带来极大的便利。此外,对主观题的自动评分也可以导向智能辅导,从而导向基于评分结果的个别化智能辅导,产生更大的教育效益。下面结合具体的实施方式详述本申请的技术方案。
在一个可选的实施例中,对于开放性不大,正确答案的语义固定、边界清晰的主观题,可选用a分支的程序,即步骤1-步骤2-步骤3a-步骤4a-步骤5a-步骤6a。
步骤1:分解题目的得分点,分配每个得分点的分值,进而制定每个得分点的评分标准;
步骤2:征集小规模学习者答题,并严格按照得分点进行人工评分,形成原始的训练数据;
步骤3a:根据每个得分点的参考答案和评分标准,提取判别该得分点得分与否的特征;
步骤4a:根据提取的特征,对原始数据进行过滤以及向量化;
步骤5a:基于向量化数据,采用浅层学习(也就是早期的机器学习)的分类算法,如支持向量机、随机森林(Random Forest)、决策树(Decision Tree)、K近邻(KNeighbors)、梯度提升(Gradient Boosting)等进行训练,获得针对各个得分点的分类器,也是自动评分器;
步骤6a:根据每个得分点的特征,对学习者的答案进行特征过滤和向量化,将获得的数据输入相应得分点的自动评分器,获得该学习者在每个得分点上的得分,并计算出在整道题上的总得分。
其中步骤1具体按照以下方式实施:
(1)“分解得分点”,是将参考答案分解为若干最小的评分单元。一般而言,一个最小的评分单元应该完整地表达一层语义。一道题的参考答案包含若干层语义,也就可以分解为若干个这样的最小评分单元。例如,参考答案是“紫罗兰自认为渺小可怜,只能紧贴地面,而玫瑰花则亭亭玉立,雍容英挺,可以仰望蓝天,转向骄阳”,就可以将之分解为四个得分点,分别是“紫罗兰自认为渺小可怜”,“紫罗兰认为自己只能紧贴地面”,“玫瑰花亭亭玉立,雍容英挺”,“玫瑰花可以仰望蓝天,转向骄阳”。
(2)“确定每个得分点的分值”,是按照各个得分点的重要性,赋予其相应权重,各得分点的分值(即这道题的分值乘以该得分点的权重)相加即为这道题的总分值。
(3)“制定每个得分点的评分标准”,是针对每个得分点具体描述不同等级的答案,它们的得分也是由低到高分级排列的。比如,某得分点的分值为1,对于准确表达该得分点对应语义的答案,判定其得分为1;否则,得分为0。再如,某得分点的分值为3,对于准确、完整表达该得分点对应语义的答案,判定其得分为3;对该得分点对应语义表达缺漏小部分或表达不够准确的答案,判定其得分为2;对该得分点对应语义表达缺漏大部分或表达含糊的答案,判定其得分为1;而对基本没有表达该得分点对应语义的答案,判定其得分为0。
步骤2在实施例中采用以下方案:
(1)征集小规模学习者答题时,尽量选择异质的学习者,如不同教师教的不同班级,平时考试分数方差大(如大于100)的班级;这是为了获得尽可能差异化的答案。
(2)对学习者的答案严格按照得分点进行人工评分,评分者要记录下每个得分点的得分,而不是仅仅给出整道题的总得分,这是与平常考试评分的不同之处;每个得分点的得分就是一个标签(label),它们与学习者的答案一起构成原始的训练数据。
步骤3a在实施例中采用以下方案:
(1)对于每个得分点,确定其处于哪个层级,即词语层级,或短语层级,或句子层级,或段落层级。
(2)在相应层级上,由参考答案的语义拓展出正确解答的语义空间,这种语义空间用词语和逻辑关系表示。
以句子层级的得分点为例,其参考答案的语义表示为:
参考答案的语义=关键词1∧关键词2,
其中的逻辑与符号“∧”表示句子的语义由两个关键词的排列组合而成。
由参考答案的语义拓展的语义空间则表示为:
正确解答的语义空间=((关键词1∨关键词1的同义词或近义词1a∨关键词1的同义词或近义词1b……)∧(关键词2∨关键词2的同义词或近义词2a∨关键词2的同义词或近义词2b……)∧……)∨((关键词3∨关键词3的同义词或近义词3a∨关键词3的同义词或近义词3b……)∧(关键词4∨关键词4的同义词或近义词4a∨关键词4的同义词或近义词4b……)∧……),
第一层的逻辑或符号“∨”表示这个得分点的正确答案可以是完全不同的句子;第二层的逻辑与符号“∧”表示句子中几个关键词的排列组合;第三层的逻辑符号“∨”表示关键词有若干同义词或近义词,它们之间可以相互替换。
(3)在实施例中,可选择地,由有代表性的错误解答构建错误答案的语义空间,如:
错误解答的语义空间=(关键词5∨关键词5的同义词或近义词5a∨关键词5的同义词或近义词5a……)∧(关键词6∨关键词6的同义词或近义词6a∨关键词6的同义词或近义词6b……)∧……),
(4)从语义空间(包括正确答案的语义空间以及错误答案的语义特征)中提取所有关键词,作为判别该得分点得分与否的特征,如上面的语义空间提取的特征包括:
关键词1、关键词1的同义词或近义词1a、关键词1的同义词或近义词1b、关键词2、关键词2的同义词或近义词2a、关键词2的同义词或近义词2b、关键词3、关键词3的同义词或近义词3a、关键词3的同义词或近义词3b、关键词4、关键词4的同义词或近义词4a、关键词4的同义词或近义词4b、关键词5∨关键词5的同义词或近义词5a、关键词5的同义词或近义词5a、关键词6、关键词6的同义词或近义词6a、关键词6的同义词或近义词6b……,
无论是正确答案的关键词,还是错误答案的关键词,也不管关键词之间是什么关系,它们都无差别地被设置为数据的特征。
步骤4a在实施例中采用以下方案:
(1)使用分词软件对原始数据进行分词;
(2)根据每个得分点的特征,采用向量的形式表征分词后的数据,即对每个样本(即每个具体的答题内容),如果其中包含某个特征,即用1表征,否则用0表征,所有特征累积就构成这个样本在该得分点上的二进制特征向量。
(3)按上述技术处理样本,形成训练数据。
步骤5a在实施例中采用以下方案:
(1)对经过每个得分点特征过滤的向量化数据,分别使用支持向量机、随机森林(Random Forest)、决策树(Decision Tree)、K近邻(KNeighbors)、梯度提升(GradientBoosting)等算法进行训练,其间使用5折交叉验证,以获得每种分类算法在测试集上的准确率(accuracy)、精确率(precision)、召回率(recall)及F分数(F-score);
(2)综合考量每种分类算法的准确率、精确率、召回率及F分数,选出表现最好的分类器作为这个得分点的自动评分器。
步骤6a具体按照以下子步骤实施:
(1)使用分词软件对学习者输入的解答分词;
(2)逐一按照每个得分点的特征对分词后的数据进行过滤和向量化;
(3)将向量化的数据输入自动评分器后进行评分,获得每个得分点的得分;
(4)计算并输出在整道题上的总得分;
(5)在实施例中,可选地,输出该学习者解答在各个得分点上的对错情况,或达到什么评分等级的情况。
在又一个可选的实施例中,对于开放性更大,正确答案的语义不能事先明确或固定、边界不清晰的主观题,可选用b分支的程序,即步骤1-步骤2-步骤3b-步骤4b-步骤5b。
步骤1:分解题目的得分点,分配每个得分点的分值,进而制定每个得分点的评分标准;
步骤2:征集小规模学习者答题,并严格按照得分点进行人工评分,形成原始的训练数据;
步骤3b:跳过特征提取环节,直接对原始数据进行简单的预处理和向量化;
步骤4b:基于向量化数据,采用深度学习神经网络算法,如密集连接神经网络(dense connected neural network)模型、循环神经网络(recurrent neural network)模型以及一维卷积神经网络(1D convolutional neural network)模型等进行训练,获得针对各个得分点的自动评分器;
步骤5b:直接对学习者的答案进行简单的预处理和向量化,将获得的数据输入相应得分点的分类器,也就是自动评分器,获得该学习者在每个得分点上的得分,并计算出在整道题上的总得分。
其中,本实施例中的步骤1和步骤2的实施方案和细节与前述实施例的步骤1和步骤2一致,在此不再赘述。
步骤3b在实施例中采用以下方案:
(1)使用分词软件对原始数据进行分词;
(2)对分词后的数据去除标点符号以及停词(stopwords);
(3)对数据进行one-hot编码(即独热编码),即由去除停词后的数据中的所有词语组成词表,将每个词语与一个唯一的整数索引相关联,然后将这个整数索引转换为长度为N的二进制向量(N为词表大小),最后,按照有无特定词语,将每个样本转换为M*N矩阵(M为样本包含词语数的最大值),所有样本就转换为S*M*N矩阵(S为样本数)。
步骤4b在实施例中采用以下方案:
(1)对编码后的数据,分别使用密集连接神经网络(dense connected neuralnetwork)模型、循环神经网络(recurrent neural network)模型以及一维卷积神经网络(1D convolutional neural network)模型等进行训练,获得针对各个得分点的自动评分器,其间同样使用5折交叉验证,并根据不同算法在测试集上的准确率,择优选择实际使用的自动评分器;
(2)在实施例中,可选择地,在训练数据进行分类前,使用词嵌入技术,将二进制、高维、稀疏的one-hot编码向量转换为低维的浮点数向量,以使下面的数据训练获得更好表现。
步骤5b具体按照以下子步骤实施:
(1)使用分词软件对学习者输入的解答分词;
(2)对分词后的数据去除标点符号以及停词;
(3)基于训练数据的词表,对学习者的解答进行one-hot编码;
(4)将向量化的数据输入自动评分器后进行评分,获得每个得分点的得分;
(5)计算并输出在整道题上的总得分;
(6)在实施例中,可选地,可输出该学习者解答的在各个得分点上的对错情况,或达到什么评分等级的情况。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述基于人工智能的主观题自动评分方法的基于人工智能的主观题自动评分装置。图2是根据本申请实施例的一种可选的基于人工智能的主观题自动评分装置的示意图,如图2所示,该装置可以包括:
预处理单元201,用于分解题目的得分点,分配每个得分点的分值,并制定每个得分点的评分标准;
数据采集单元203,用于征集学习者针对题目的答题内容,按照评分标准对得分点进行评分,形成原始的训练数据;
训练单元205,用于利用形成的原始数据训练得到题目的自动评分器;
评分单元207,用于使用训练得到的自动评分器对题目的答题内容进行自动评分。
需要说明的是,该实施例中的预处理单元201可以用于执行本申请实施例中的步骤S102,该实施例中的数据采集单元203可以用于执行本申请实施例中的步骤S104,该实施例中的训练单元205可以用于执行本申请实施例中的步骤S106,该实施例中的评分单元207可以用于执行本申请实施例中的步骤S108。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在相应的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述基于人工智能的主观题自动评分方法的服务器或终端。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行基于人工智能的主观题自动评分方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。