背景
我们知道在分类任务中,评估模型效果的对象是以样本为单位的,一条样本要么预测错误,要么预测正确,然后就可以使用混淆矩阵,精确率,召回率,F1值计算公式计算相关类别预测情况或者整体的预测情况。
但是对于序列标注任务就不一样了。当然也有研究人员针以每个字符预测的类别为一个样本按照分类任务进行评估。但是,序列标注中,以命名实体识别中的姓名为例,一个姓名实体可能由两个汉字、三个、四个汉字组成。在序列标注算法中,一般会有如下序列标注列表:
['O', 'O', 'B-MISC', 'I-MISC', 'B-MISC', 'I-MISC', 'O', 'B-PER', 'I-PER']
如果这个几个汉字不全被标注正确那么整个实体的识别按理就是错误的,所以需要有一种对整个实体识别效果进行评估的方式。
有了上面的介绍,我们可以自己书写相关的评估方法。而本文要介绍的是seqeavl,一个为序列标注评估工具。
序列标注算法的模型效果评估
通常序列标注方式有BIO,BIEOS,BMES等。我们的序列标注也会像分类一样使用准确率(accuracy)、查准率(percision)、召回率(recall)、F1值等。其对应的计算公式如下;
- 准确率: accuracy = 预测对的元素个数/总的元素个数
- 查准率:precision = 预测正确的实体个数 / 预测的实体总个数
- 召回率:recall = 预测
|