我有几个语料库和NLP系统(包括几个合并的这些系统的输出以联合和交叉的形式结合在一起),我提取了语料库内所有文档中每个语料库的注释跨度集{(开始,结束)},并将跨度集与每个语料库各自的金本位进行了比较,从而获得了F-分数、精度和回忆的标准度量。
我试图定性地评估为什么某些系统不能像F-得分的特定组合那样表现得那么好,所以我认为最简单的方法是生成精确召回或ROC曲线。
任务只是一个简单的二进制分类:一个文本的跨度被注释(标记为1),或者不是(标记为0)。
对于系统预测和金本位,我在语料库中的每个文档都有相同长度的numpy向量,所以我计划在生成我的ROC曲线时将这些向量用于y_true
和y_predict
。
这是一个很好的方法来观察我的F分数的行为,假设我把它们都画在同一张图上?如果没有,最好能提出更好的办法的建议。
发布于 2020-01-31 01:15:05
是的,我认为这是一种比较不同系统的好方法和好方法。
ROC曲线比较通常比原始性能分数更能说明问题,但还是比较笼统的。如果您想观察更多的细节,也可以尝试查看特定的实例组。要做到这一点,一种方法是对每个实例计算多少个系统对其正确分类:一个几乎总是正确分类的实例是“容易”的,反之,几乎总是被错误分类的实例是“难的”。了解不同系统的“硬”实例具体发生了什么通常是很有趣的。您可以使用“硬”实例的子集,只在这些实例上计算性能或ROC曲线,以便更准确地区分最佳系统。
为了记录这一点,如果对您的任务有意义,您可能还需要考虑更灵活的文本跨度评分方法:目前,您的评估似乎只考虑正确的答案,只有准确的跨度是预测的。您可以考虑计算span部分正确的事实,例如,通过正确注释标记数来计算。
https://datascience.stackexchange.com/questions/67245
复制相似问题