现在我要报告命名实体识别的结果。我觉得有点困惑的一件事是,我对精确率和召回率的理解是简单地总结所有类别的真阳性、真阴性、假阳性和假阴性。
但是现在我认为这似乎难以置信,因为每个错误分类都会同时产生一个误报和一个误报(例如,应该标记为“A”但被标记为“B”的标记是“A”为假阴性,“B”为假阳性)。因此,所有类别的误报和漏报数量都是相同的,这意味着精度(总是!)等于召回率。这根本不可能是真的,所以我的推理有错误,我想知道它在哪里。这当然是非常明显和直接的事情,但我现在却想不起来。
最佳答案
通常计算精度和召回率的方式(这是我在论文中使用的)是衡量实体之间的对比。假设基本事实具有以下内容(对于它们是什么类型的实体没有任何区别)
[Microsoft Corp.] CEO [Steve Ballmer] announced the release of [Windows 7] today
这有 3 个实体。
假设你的实际提取有以下内容
[Microsoft Corp.] [CEO] [Steve] Ballmer announced the release of Windows 7 [today]
您与 Microsoft Corp
完全匹配, CEO
的误报和today
, Windows 7
的假阴性以及 Steve
的子字符串匹配
我们通过首先定义匹配标准来计算精度和召回率。例如,它们必须完全匹配吗?如果它们完全重叠,那么它是匹配的吗?实体类型重要吗?通常,我们希望为其中几个标准提供精确度和召回率。
完全匹配: 真阳性 = 1( Microsoft Corp.
,唯一的完全匹配),假阳性 =3( CEO
、 today
和 Steve
,这不是完全匹配),假阴性 = 2( Steve Ballmer
和 Windows 7
)
Precision = True Positives / (True Positives + False Positives) = 1/(1+3) = 0.25
Recall = True Positives / (True Positives + False Negatives) = 1/(1+2) = 0.33
任何重叠都可以: 真阳性 = 2( Microsoft Corp.
和 Steve
与 Steve Ballmer
重叠),假阳性 =2( CEO
和 today
),假负数 = 1 ( Windows 7
)
Precision = True Positives / (True Positives + False Positives) = 2/(2+2) = 0.55
Recall = True Positives / (True Positives + False Negatives) = 2/(2+1) = 0.66
然后,读者可以推断“真实性能”(当允许使用人类判断来决定哪些重叠差异显着、哪些重叠差异不显着时,无偏见的人类检查员将给出的精确度和召回率)介于两者之间两者。
报告 F1 度量通常也很有用,它是精度和召回率的调和平均值,当您必须权衡精度和召回率时,它可以提供一些“性能”的概念。
关于nlp - 命名实体识别中的计算精度和召回率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783653/