在命名实体识别中计算精度和召回率

Nic*_*ick 29 nlp precision-recall

现在我即将报告命名实体识别的结果.我觉得有点混乱的一件事是,我对精确度和回忆的理解是,简单地总结了所有阶级的真正积极,真实否定,误报和漏报.

但是现在我认为这似乎难以置信,因为每次错误分类会同时产生一个假阳性和一个假阴性(例如,应该被标记为"A"但被标记为"B"的标记是假阴性的"A"和"B"的误报.因此,所有类别的误报和漏报的数量都是相同的,这意味着精度(总是!)等于召回.这根本不可能是真的,所以在我的推理中有一个错误,我想知道它在哪里.这当然是非常明显和直截了当的事情,但它现在逃脱了我.

Ken*_*oom 45

通常计算精确度和召回率的方式(这是我在论文中使用的)是相互测量实体.假设基本事实具有以下内容(对于它们是什么类型的实体没有任何区别)

[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,误报为CEOtoday,假阴性Windows 7和子串匹配Steve

我们首先通过定义匹配标准来计算精度和召回率.例如,他们必须完全匹配吗?它们是否重叠是否匹配?实体类型是否重要?通常,我们希望为其中一些标准提供精确度和召回率.

完全匹配:真阳性= 1( Microsoft Corp.,唯一的精确匹配),假阳性= 3( ,CEO,todaySteve,这是不完全匹配),假阴性= 2(Steve BallmerWindows 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
Run Code Online (Sandbox Code Playgroud)

任何重叠OK: True Positives = 2(Microsoft Corp.,并且Steve重叠Steve Ballmer),False Positives = 2(CEO,和today),False Negatives = 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
Run Code Online (Sandbox Code Playgroud)

然后,读者可以推断出"真实的表现"(无偏见的人类检查员在允许使用人类判断来决定哪些重叠差异是重要的,哪些不重要时)的精确度和回忆率介于两者之间.

报告F1测量值通常也很有用,F1测量值是精度和召回的调和平均值,当你必须权衡精确度与召回时,它会给出一些"性能"的概念.


Sto*_*ken 10

CoNLL-2003 NER任务中,评估基于正确标记的实体,而不是令牌,如"CoNLL-2003共享任务简介:语言无关命名实体识别"一文中所述.如果系统使用文档中正确的起点和终点识别正确类型的实体,则会正确标记实体.我更倾向于评估这种方法,因为它更接近实际任务的绩效衡量标准; NER系统的用户关心实体,而不是个人令牌.

但是,您描述的问题仍然存在.如果您使用类型LOC标记ORG类型的实体,则会对LOC产生误报并对ORG产生误报.在这篇博文中有一个关于这个问题的有趣讨论.