

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自定义实体识别器指标
<a name="cer-metrics"></a>

Amazon Comprehend 为您提供指标，帮助您估算实体识别器在您的任务中的工作效果。它们基于对识别器模型的训练，因此，虽然它们可以准确地表示模型在训练过程中的性能，但它们只是实体发现期间 API 性能的近似值。

每当从经过训练的实体识别器返回元数据时，都会返回指标。

Amazon Comprehend 支持一次在多达 25 个实体上训练模型。当训练有素的实体识别器返回指标时，将根据识别器整体（全局指标）和每个实体（实体指标）计算分数。

有三个指标可用，既有全局指标，也有实体指标：
+ **精度**

  这表示系统生成的实体中被正确识别和正确标记的比例。这显示了模型的实体识别有多少次是真正准确的识别。它是识别总数的百分比。

  换句话说，精度基于*真阳性 (tp)* 和*假阳性 (fp)*，其计算方式为*精度 = tp/(tp \$1 fp*)。

  例如，如果模型预测文档中存在两个实体的示例，而实际上只有一个，则结果为一个真阳性和一个假阳性。在这种情况下，*精度 = 1/(1 \$1 1)*。精度为 50%，因为模型识别的两个实体中有一个是正确的。

  
+  **召回率**

  这表示文档中存在的实体被系统正确识别和标记的比例。从数学上讲，这是根据正确识别*真阳性 (tp)* 和未能识别*假阴性 (fn)* 的总数来定义的。

   计算方法为*召回率 = tp/(tp \$1 fn)*。例如，如果模型正确识别了一个实体，但错过了该实体存在的另外两个实例，则结果为一个真阳性和两个假阴性。在这种情况下，*召回 = 1/(1 \$1 2)*。召回率为33.33％，因为在可能的三个示例中，有一个实体是正确的。

  
+ **F1 分数** 

  这是精度和召回指标的组合，用于衡量自定义实体识别模型的整体准确性。F1 分数是精度和召回率指标的调和平均值：*F1 = 2 \$1 精度 \$1 召回率/（精度 \$1 召回率）*。
**注意**  
直观上，调和平均值比简单平均值或其他均值更能惩罚极值（例如：`precision` = 0，`recall` = 1 可以通过预测所有可能的跨度来轻而易举地实现。在这里，简单平均值为 0.5，但 `F1` 会将其惩罚为0）。

  在上面的示例中，`precision` = 50% 和 `recall` = 33.33%，因此 `F1` = 2 \$1 0.5 \$1 0.3333/(0.5 \$1 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))
```



## 提高自定义实体识别器的性能
<a name="cer-performance"></a>

这些指标可让您深入了解使用训练后的模型识别实体时的准确性。如果指标低于您的预期，您可以使用以下几个选项来改善这些指标：

1. 根据您使用的是 [Annotations](cer-annotation.md) 或 [实体列表（仅限纯文本）](cer-entity-list.md)，请务必遵循相应文档中的指南，以提高数据质量。如果您在改进数据并重新训练模型后观察到更好的指标，则可以不断迭代和提高数据质量，以实现更好的模型性能。

1. 如果您使用的是实体列表，请考虑改用注释。手动注释通常可以改善结果。

1. 如果您确定不存在数据质量问题，但指标仍然过低，请提交支持请求。