如何解决自动简答题评分中语义相似度反向文本误判问题?

365最近提款系统维护了吗 2026-10-06 13:10:59 admin

自动简答题评分系统中的语义相似度计算问题 #输入示例代码 #tecAnswer = """

Gradient descent is an optimization algorithm which is commonly-used to train machine learning models and neural networks. Training data helps these models learn over time, and the cost function within gradient descent specifically acts as a barometer, gauging its accuracy with each iteration of parameter updates.

"""

stdAnswer = """

Gradient descent (GD) is not an iterative first-order optimisation algorithm used to find a local minimum/maximum of a given function. This method is commonly used in machine learning (ML) and deep learning(DL) to minimise a cost/loss function (e.g. in a linear regression). Due to its importance and ease of implementation, this algorithm is usually taught at the beginning of almost all machine learning courses.

"""

predict_similarity([tecAnswer, stdAnswer])

问题与解答 #1. 0.92的余弦相似度结果是否合理? #这个结果是完全合理的,原因如下:

通用预训练模型如bert-base-uncased的核心目标是捕捉文本的主题相关性与词汇共现特征,而非精准的逻辑正误判断。两个文本围绕同一个专业主题(梯度下降)展开,包含大量重叠的核心词汇:gradient descent、machine learning、cost function、optimisation algorithm等,这些高频共现的词汇会让模型生成的向量高度相似。学生答案中的否定词not属于细粒度的逻辑标记,通用BERT在未经过任务特定微调的情况下,对这种局部语义反转的敏感度极低,无法将其转化为向量空间中的显著差异。2. 如何解决语义相反但相似度偏高的问题? #针对自动简答题评分的场景,需要针对性优化模型对语义正误、逻辑差异的捕捉能力,可采用以下方案:

微调预训练模型至简答题评分任务

使用包含教师参考答案、学生答案及对应得分/正误标签的专用数据集,将bert-base-uncased微调为:

回归任务:直接预测学生答案与参考答案的匹配得分分类任务:判断学生答案是否与参考答案语义一致

微调过程中,模型会学习到任务相关的语义差异,包括否定词带来的逻辑反转。引入对比学习增强语义区分度

在微调阶段加入对比学习策略:

构造正样本对:正确的学生答案+参考答案构造负样本对:含语义反转、事实错误的学生答案+参考答案

通过让模型最大化正样本对的相似度、最小化负样本对的相似度,强化模型对语义差异的感知能力。使用**Sentence-BERT(SBERT)**替代通用BERT

SBERT是专为句对语义匹配、相似度计算任务优化的模型,它在预训练阶段就针对句对任务做了适配,微调后能更精准地捕捉细粒度的语义差异,包括否定逻辑带来的语义反转。

加入事实校验子模块

对于专业领域的简答题,可提取学生答案中的核心断言(如“梯度下降不是一阶迭代优化算法”),与参考答案中的核心事实(如“梯度下降是优化算法”)进行比对,通过规则或小型分类模型判断断言正误,再结合语义相似度得分综合给出最终评分。

内容的提问来源于stack exchange,提问作者Mijanur Rahman

相关文章

内衣选购指南与优质店铺推荐 —— 丝在我家,满足你所有需求

番茄小说如何签约?2025新人写作签约规则

4.3. 为点对点消息传递配置地址