PaddleNLP icon indicating copy to clipboard operation
PaddleNLP copied to clipboard

UIE实体识别评价指标的计算公式

Open MachineSheep opened this issue 3 years ago • 4 comments

UIE实体识别在验证集上每一种实体类别的Precision, Recall, F1值都偏高,但整体的Precision, Recall, F1比较低,想了解一下UIE实体识别评价指标的计算公式,感谢!!!

MachineSheep avatar Aug 10 '22 03:08 MachineSheep

@MachineSheep 您好,方便贴下具体的评估结果吗? UIE实体识别的评估方式和通用评估方法一致,在实体边界和实体类别与ground truth完全一致时判定正确

linjieccc avatar Aug 10 '22 03:08 linjieccc

@MachineSheep 您好,方便贴下具体的评估结果吗? UIE实体识别的评估方式和通用评估方法一致,在实体边界和实体类别与ground truth完全一致时判定正确 你好你好,下面是具体的评估结果 各类别的评价值:

Class Name: Evaluation Precision: 0.98045 | Recall: 0.97941 | F1: 0.97993

Class Name: Evaluation Precision: 0.98246 | Recall: 0.98000 | F1: 0.98123

Class Name: Evaluation Precision: 0.99378 | Recall: 0.99290 | F1: 0.99334

Class Name: Evaluation Precision: 0.94083 | Recall: 0.94083 | F1: 0.94083

Class Name: Evaluation Precision: 0.99586 | Recall: 0.99312 | F1: 0.99449

Class Name: Evaluation Precision: 0.99088 | Recall: 0.98975 | F1: 0.99031

Class Name: Evaluation Precision: 1.00000 | Recall: 1.00000 | F1: 1.00000

整体的评价值: Class Name: all_classes Evaluation Precision: 0.84916 | Recall: 0.83852 | F1: 0.84381

MachineSheep avatar Aug 10 '22 04:08 MachineSheep

debug模式是对每个正例类别分别进行评估,该模式仅用于模型调试,和整体的评估方式不一样的地方是少了对负例进行评估

https://github.com/PaddlePaddle/PaddleNLP/blob/03dcbeff745fb18f230c5bc07a2e3c0d23b8617a/model_zoo/uie/evaluate.py#L66-L68

可以排查下是否您的训练集缺少负例数据(result_list为空)导致模型出现错误召回

linjieccc avatar Aug 10 '22 05:08 linjieccc

debug模式是对每个正例类别分别进行评估,该模式仅用于模型调试,和整体的评估方式不一样的地方是少了对负例进行评估

https://github.com/PaddlePaddle/PaddleNLP/blob/03dcbeff745fb18f230c5bc07a2e3c0d23b8617a/model_zoo/uie/evaluate.py#L66-L68

可以排查下是否您的训练集缺少负例数据(result_list为空)导致模型出现错误召回

数据集上确实有很多result_list为空的负例数据,result_list为空的数据对模型训练是有作用吗?

MachineSheep avatar Aug 10 '22 06:08 MachineSheep

负例用于让模型学习抽取结果为空的能力,如果数据集只有正例数据会造成错误召回;如果负例数据太多,可能造成模型不召回。 您可以通过negative_ratio控制下正负例的比例,对比下最后得出的模型精度

linjieccc avatar Aug 10 '22 09:08 linjieccc

debug模式是对每个正例类别分别进行评估,该模式仅用于模型调试,和整体的评估方式不一样的地方是少了对负例进行评估 https://github.com/PaddlePaddle/PaddleNLP/blob/03dcbeff745fb18f230c5bc07a2e3c0d23b8617a/model_zoo/uie/evaluate.py#L66-L68

可以排查下是否您的训练集缺少负例数据(result_list为空)导致模型出现错误召回

数据集上确实有很多result_list为空的负例数据,result_list为空的数据对模型训练是有作用吗?

样本中没有这类实体类别也是可以加入训练的,明白了

MachineSheep avatar Aug 10 '22 10:08 MachineSheep