本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义实体识别器指标
Amazon Comprehend 为您提供指标,帮助您估算实体识别器在您的作业中的工作效果。它们基于对识别器模型的训练,因此,虽然它们可以准确地表示模型在训练过程中的性能,但它们只是实体发现期间 API 性能的近似值。
每当从经过训练的实体识别器返回元数据时,都会返回指标。
Amazon Comprehend 支持一次在多达 25 个实体上训练模型。当训练有素的实体识别器返回指标时,将根据识别器整体(全局指标)和每个实体(实体指标)计算分数。
有三个指标可用,既有全局指标,也有实体指标:
-
精度
这表示系统生成的实体中被正确识别和正确标记的比例。这显示了模型的实体识别有多少次是真正准确的识别。它是识别总数的百分比。
换句话说,精度基于真阳性 (tp) 和假阳性 (fp),其计算方式为精度 = tp/(tp + fp)。
例如,如果模型预测文档中存在两个实体的示例,而实际上只有一个,则结果为一个真阳性和一个假阳性。在这种情况下,精度 = 1/(1 + 1)。精度为 50%,因为模型识别的两个实体中有一个是正确的。
-
召回率
这表示文档中存在的实体被系统正确识别和标记的比例。从数学上讲,这是根据正确识别真阳性 (tp) 和未能识别假阴性 (fn) 的总数来定义的。
计算方法为召回率 = tp/(tp + fn)。例如,如果模型正确识别了一个实体,但错过了该实体存在的另外两个实例,则结果为一个真阳性和两个假阴性。在这种情况下,召回 = 1/(1 + 2)。召回率为33.33%,因为在可能的三个例子中,有一个实体是正确的。
-
F1 分数
这是精度和召回指标的组合,用于衡量自定义实体识别模型的整体准确性。F1 分数是精度和召回率指标的调和平均值:F1 = 2 * 精度 * 召回率/(精度 + 召回率)。
注意
直观上,调和平均值比简单平均值或其他均值更能惩罚极值(例如:
precision
= 0,recall
= 1 可以通过预测所有可能的跨度来轻而易举地实现。在这里,简单平均值为 0.5,但F1
会将其惩罚为0)。在上面的示例中,
precision
= 50% 和recall
= 33.33%,因此F1
= 2 * 0.5 * 0.3333/(0.5 + 0.3333)。F1 分数为 0.3975,或 39.75%。
全局和单个实体指标
在分析以下句子时,可以看到全局实体指标和单个实体指标之间的关系,这些实体要么是地点,要么是人
John Washington and his friend Smith live in San Francisco, work in San Diego, and own
a house in Seattle.
在我们的示例中,模型做出了以下预测。
John Washington = Person
Smith = Place
San Francisco = Place
San Diego = Place
Seattle = Person
但是,预测应该如下。
John Washington = Person
Smith = Person
San Francisco = Place
San Diego = Place
Seattle = Place
这方面的单个实体指标将是:
entity: Person
True positive (TP) = 1 (because John Washington is correctly predicted to be a
Person).
False positive (FP) = 1 (because Seattle is incorrectly predicted to be a Person,
but is actually a Place).
False negative (FN) = 1 (because Smith is incorrectly predicted to be a Place, but
is actually a Person).
Precision = 1 / (1 + 1) = 0.5 or 50%
Recall = 1 / (1+1) = 0.5 or 50%
F1 Score = 2 * 0.5 * 0.5 / (0.5 + 0.5) = 0.5 or 50%
entity: Place
TP = 2 (because San Francisco and San Diego are each correctly predicted to be a
Place).
FP = 1 (because Smith is incorrectly predicted to be a Place, but is actually a
Person).
FN = 1 (because Seattle is incorrectly predicted to be a Person, but is actually a
Place).
Precision = 2 / (2+1) = 0.6667 or 66.67%
Recall = 2 / (2+1) = 0.6667 or 66.67%
F1 Score = 2 * 0.6667 * 0.6667 / (0.6667 + 0.6667) = 0.6667 or 66.67%
这方面的全局指标将是:
全局:
Global:
TP = 3 (because John Washington, San Francisco and San Diego are predicted correctly.
This is also the sum of all individual entity TP).
FP = 2 (because Seattle is predicted as Person and Smith is predicted as Place. This
is the sum of all individual entity FP).
FN = 2 (because Seattle is predicted as Person and Smith is predicted as Place. This
is the sum of all individual FN).
Global Precision = 3 / (3+2) = 0.6 or 60%
(Global Precision = Global TP / (Global TP + Global FP))
Global Recall = 3 / (3+2) = 0.6 or 60%
(Global Recall = Global TP / (Global TP + Global FN))
Global F1Score = 2 * 0.6 * 0.6 / (0.6 + 0.6) = 0.6 or 60%
(Global F1Score = 2 * Global Precision * Global Recall / (Global Precision +
Global Recall))
提高自定义实体识别器的性能
这些指标可让您深入了解使用训练后的模型识别实体时的准确性。如果指标低于您的预期,您可以使用以下几个选项来改善这些指标:
-
根据您使用的是 注释 或 实体列表(仅限纯文本),请务必遵循相应文档中的指南,以提高数据质量。如果您在改进数据并重新训练模型后观察到更好的指标,则可以不断迭代和提高数据质量,以实现更好的模型性能。
-
如果您使用的是实体列表,请考虑改用注释。手动注释通常可以改善结果。
-
如果您确定不存在数据质量问题,但指标仍然过低,请提交支持请求。