如何正确计算命名实体识别系统的平均 F1 分数、精度和召回率?

数据挖掘 评估 命名实体识别 f1score
2022-02-25 01:28:14

我用 Apache uimaFIT 和 DKPro 构建的命名实体识别 (NER) 管道可识别文本(例如人员、位置、组织等)中的命名实体(现在称为数据类型)。

我有一个黄金语料库和一个结果语料库,我想计算精度、召回率和 F1 分数。截至目前,我计算这些指标是这样的:

1. Calculate precision, recall and F1 score from TP, FP and FN per datatype per document
2. Average precision, recall and F1 score per datatype for all documents

在此处输入图像描述

在表中,您可以在相应的数据类型行中看到步骤 2 的结果。

关于第2步:我认为计算F1分数的方式既不是宏观的也不是微观的。我以宏观方式计算精度和召回率(如这里解释的)。但我不会将 F1 分数计算为平均精度和召回率(宏观方式)的调和平均值,而是作为所有文档的每种数据类型的平均 F1 分数。与我目前的方式相比,我在宏观方式 F1 得分上获得了更高的结果。

问题:计算每种数据类型的平均 F1 分数的正确方法是什么?这两种方式对我来说似乎都是正确的。请为您的答案命名来源。

1个回答

此处与参考文献进行了相当详细的比较:https ://towardsdatascience.com/a-tale-of-two-macro-f1s-8811ddcf8f04

基本上使用了这两个定义,并且都可以被认为是有效的。为了清楚起见,我建议您在报告结果时提及您使用的定义。