主观题自动评阅实现—week2

本文介绍了如何使用计算余弦相似度和杰卡德系数来评估学生答案与标准答案的相似度,以实现主观题自动评阅。通过将句子转换为词频向量,计算两个句子的相似度,从而得出学生的得分。同时,展示了算法的简单应用及实际效果。
摘要由CSDN通过智能技术生成

  上周写了序列对匹配算法,并通过序列对匹配算法对词语进行相似度匹配,后面肯定还要更换词语的相似度匹配算法,现在先基于之前的工作进一步完成。

  然后再明确一下程序的输入输出:程序的输入一个是学生答案,即一段文本,文本中可能包含多个句子。二是标准答案即对应分值,标准答案含有多个句子,分别输入每个句子即对应分值,分值总和加起来为10分。程序的输出即为学生答案的得分了,得分为0-10间的整数。

  下面根据句子的相似度实现两个段落间的相似度,传入的p1为一个整的字符串,代表学生答案,传入的p2为一个字符串列表,代表标准答案中的每个要点,point为一个整数列表,代表对应于p2中每个要点的分值情况,代码如下:

'''
实现两个段落的相似度
p1为学生答案,按照段落整段给出,需要通过句号划分
p2为标准答案列表
point为对应每个标答的分值
'''
def ParagraphSimilar(p1,p2,point): # 计算两个段落的相似度
    p1 = p1.split('。')
    p1 = list(filter(None,p1)) # 去除list中的空字符
    
    len1 = len(p1)
    len2 = len(p2)
    
    MP = [ [0] * len2 for i in range(len1) ] # 初始化句子相似度矩阵
    for i in range(len1):
        for j in range(len2):
            MP[i][j] = SentencesSimilar(p1[i],p2[j]) # 计算每个句子相似度值
    
    __str__(len1,len2,MP)

    maxMP = [] # 每轮找出MS中的最大值加入到maxMP,并删除其所在的行列
    while True:
        loc = (0,0,0) # 记录句1位置、句2位置,两个句子间相似度
        for i in range(len1): # 找出MS中的最大值
            for j in range(len2):
                if MP[i][j] > loc[2]:
                    loc = (i,j,MP[i][j])
        if loc
Python客观题自动评阅系统是一种基于人工智能技术的自动评分系统,主要用于对Python编程语言相关的客观题进行自动批改和评分。 该系统的运作原理是通过分析学生提交的代码,根据程序的正确性、逻辑性、效率等方面进行评估和评分。系统首先会对学生提交的代码进行编译或解释执行,以确保代码的正确性,然后系统会根据预先设定的评分标准对代码进行评分。 Python客观题自动评阅系统的核心算法包括代码静态分析、代码动态执行和代码相似度分析。代码静态分析通过检查代码的语法错误、命名规范等进行评估,代码动态执行则通过执行代码并检查输出结果、是否符合预期等来进行评估,代码相似度分析则是通过比较学生提交的代码与标准答案之间的相似度来评估学生的答案。 该系统的优点在于能够提高评阅的效率和准确性。相比传统的人工评阅方式,该系统可以在较短的时间内对大量的客观题进行评阅,减轻教师的工作负担。同时,该系统基于算法对代码进行评估,不受主观因素的影响,评分更加客观公正。 然而,该系统也存在一些限制。首先,该系统对于主观题难以进行评阅,因为主观题评阅需要考虑到学生的思考过程和表达能力,而这些是人工智能目前难以准确评估的。其次,该系统对于一些复杂的题目可能评估不准确,因为复杂的题目可能存在多种正确的解答方式。 综上所述,Python客观题自动评阅系统在提高评阅效率和准确性方面具有一定优势,但在某些情况下还需要结合人工评阅进行综合评估。随着人工智能技术的不断发展,相信该系统的评分准确性和适用性将会进一步提高。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值