我的系统从一组句子中生成问题。根据句子的质量,可以为单个句子生成多个问题。人类也被赋予相同的句子来产生问题。
例如:
句子:俄罗斯的首都是莫斯科。============#系统生成的问题#=============
问题1:俄罗斯的首都是什么?
问题2:什么是莫斯科?
============#Human-Generated Questions#=============
问题1:俄罗斯的首都是什么?
问题2:什么是莫斯科?
问题3:俄罗斯是莫斯科的首都吗?
我想评估系统的精确度,召回率和准确度。但我不知道如何为问题生成系统案例计算这些措施。
数据
根据这些数据,我该如何计算这些指标?
答案 0 :(得分:1)
我想了解你的情况,但如果我错了,请纠正我。
如果您正在尝试计算精确度,回忆率和准确度(我想知道是否可能有更合适的性能指标,但除此之外),我们需要定义真正的正面,误报,真正的负面,而假阴性则是。
如果你的系统产生了问题,并且你有一套由人类产生的基本事实问题(我们假设人类已经为每个句子产生了每个可接受的问题),我们知道你的系统产生的任何问题都是积极的(T / F):
真正肯定:系统生成的问题匹配该句子的人为问题。
误报:系统生成的问题与该句子的人为问题不匹配。
真的否定:我认为计算起来并不容易,因为你的系统只生成它认为是问题的东西。我认为这将是你的系统没有产生的每一个不可接受的问题,这在人类生成的问题中也找不到。
False Negative:由您的系统生成的人为生成的问题。
然后可以直接将这些插入计算精度和召回的公式:
精度= TP / TP + FP
召回= TP / TP + FN
因为考虑TN并不容易,所以我认为计算准确度并不合理。您可以改为计算错误发现率(1 - 精度)。