

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

# 准备分类器训练数据
<a name="prep-classifier-data"></a>

对于自定义分类，可以在多类模式或多标签模式下训练模型。多类模式将单个类与每个文档关联起来。多标签模式将一个或多个类与每个文档关联起来。每种模式的输入文件格式都不同，因此请在创建训练数据之前选择要使用的模式。

**注意**  
Amazon Comprehend 控制台将多类模式称为单标签模式。

自定义分类支持使用纯文本文档训练的模型和使用原生文档（例如 PDF、Word 或图像）训练的模型。有关分类器模型及其支持的文档类型的更多信息，请参阅 [训练分类模型](training-classifier-model.md)。

准备数据以训练自定义分类器模型：

1. 确定您希望该分类器分析的类别。决定使用哪种模式（多类或多标签）。

1. 根据该模型是用于分析纯文本文档还是半结构化文档来决定分类器模型类型。

1. 收集每类的文档示例。有关最低训练要求，请参阅 [文件分类的常规配额](guidelines-and-limits.md#limits-class-general)。

1. 对于纯文本模型，请选择要使用的训练文件格式（CSV 文件或增强清单文件）。要训练原生文档模型，请始终使用 CSV 文件。

**Topics**
+ [分类器训练文件格式](prep-class-data-format.md)
+ [多类模式](prep-classifier-data-multi-class.md)
+ [多标签模式](prep-classifier-data-multi-label.md)

# 分类器训练文件格式
<a name="prep-class-data-format"></a>

对于纯文本模型，您可以以 CSV 文件或使用 AI Ground Tr SageMaker uth 创建的增强清单文件形式提供分类器训练数据。CSV 文件或增强清单文件包括每个训练文档的文本及其相关标签。

对于原生文档模型，您可以以 CSV 文件的形式提供分类器训练数据。CSV 文件或增强清单文件包括每个训练文档的文本及其相关标签。您将训练文档包含在训练任务的 Amazon S3 输入文件夹中。

## CSV 文件
<a name="prep-data-csv"></a>

您可以在 CSV 文件中以 UTF-8 编码文本的形式提供带标签的训练数据。不要添加标题行。在文件中添加标题行可能会导致运行时错误。

对于 CSV 文件中的每一行，第一列都包含一个或多个类标签，A 类标签可以是任何有效的 UTF-8 字符串。我们建议使用含义不重叠的清晰类名。该名称可以包含空格，也可以由通过下划线或连字符连接的多个单词组成。

不要在分隔一行值的逗号之前或之后留下任何空格字符。

CSV 文件的确切内容取决于分类器模式和训练数据的类型。有关更多信息，请参阅 [多类模式](prep-classifier-data-multi-class.md) 和 [多标签模式](prep-classifier-data-multi-label.md) 部分。

## 增强清单文件
<a name="prep-data-annotations"></a>

增强清单文件是您使用 A SageMaker I Ground Truth 创建的带标签的数据集。Ground Truth 是一项数据标注服务，可帮助您（或您雇用的人力）为机器学习模型构建训练数据集。

有关 Ground Truth 及其产生的输出的更多信息，请参阅《*亚马逊 SageMaker AI 开发者指南》中的 “使用 AI Ground Trut SageMaker h* [标记数据](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html)”。

增强清单文件采用 JSON 行格式。文件中的每一行都是一个完整的 JSON 对象，其中包含一个训练文档及其关联的标签。每行的确切内容取决于分类器模式。有关更多信息，请参阅 [多类模式](prep-classifier-data-multi-class.md) 和 [多标签模式](prep-classifier-data-multi-label.md) 部分。

当您向 Amazon Comprehend 提供训练数据时，您需要指定一个或多个标签属性名称。您指定的属性名称数量取决于您的增强清单文件是单个标注任务的输出还是链式标注任务的输出。

如果您的文件是单个标注任务的输出，请指定 Ground Truth 任务中的单个标签属性名称。

如果您的文件是链式标注任务的输出，请为链中的一个或多个任务指定标签属性名称。每个标签属性名称都提供来自单个任务的注释。您最多可以为链式标注任务中的增强清单文件指定 5 个此类属性。

有关链式标签任务的更多信息以及它们产生的输出示例，请参阅 Amazon A SageMaker I 开发者[指南中的链接标签任务](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-reusing-data.html)。

# 多类模式
<a name="prep-classifier-data-multi-class"></a>

在多类模式下，分类为每个文档分配一个类别。各个类别是互斥的。例如，您可以将一部电影归类为喜剧或科幻小说，但不能两者兼有。

**注意**  
Amazon Comprehend 控制台将多类模式称为单标签模式。

**Topics**
+ [纯文本模型](#prep-multi-class-plaintext)
+ [原生文档模型](#prep-multi-class-structured)

## 纯文本模型
<a name="prep-multi-class-plaintext"></a>

要训练纯文本模型，您可以以 CSV 文件或来自 SageMaker AI Ground Truth 的增强清单文件的形式提供带标签的训练数据。

### CSV 文件
<a name="prep-multi-class-plaintext-csv"></a>

有关将 CSV 文件用于训练分类器的常规信息，请参阅 [CSV 文件](prep-class-data-format.md#prep-data-csv)。

以两列 CSV 文件形式提供训练数据。对于每一行，第一列包含类别标签值。第二列包含该类的示例文本文档。每行必须以\$1n 或\$1r\$1n 字符结尾。

以下示例介绍一个包含三个文档的 CSV 文件。

```
CLASS,Text of document 1
CLASS,Text of document 2
CLASS,Text of document 3
```

以下示例显示了 CSV 文件中的一行，该文件用于训练自定义分类器以检测电子邮件是否为垃圾邮件：

```
SPAM,"Paulo, your $1000 award is waiting for you! Claim it while you still can at http://example.com."
```

### 增强清单文件
<a name="prep-multi-class-plaintext-manifest"></a>

有关使用增强清单文件训练分类器的一般信息，请参阅 [增强清单文件](prep-class-data-format.md#prep-data-annotations)。

对于纯文本文档，增强的清单文件的每一行都是一个完整的 JSON 对象，其中包含训练文档、单个类名以及来自 Ground Truth 的其他元数据。以下示例是一个增强清单文件，用于训练自定义分类器识别垃圾邮件：

```
{"source":"Document 1 text", "MultiClassJob":0, "MultiClassJob-metadata":{"confidence":0.62, "job-name":"labeling-job/multiclassjob", "class-name":"not_spam", "human-annotated":"yes", "creation-date":"2020-05-21T17:36:45.814354", "type":"groundtruth/text-classification"}}
{"source":"Document 2 text", "MultiClassJob":1, "MultiClassJob-metadata":{"confidence":0.81, "job-name":"labeling-job/multiclassjob", "class-name":"spam", "human-annotated":"yes", "creation-date":"2020-05-21T17:37:51.970530", "type":"groundtruth/text-classification"}}
{"source":"Document 3 text", "MultiClassJob":1, "MultiClassJob-metadata":{"confidence":0.81, "job-name":"labeling-job/multiclassjob", "class-name":"spam", "human-annotated":"yes", "creation-date":"2020-05-21T17:37:51.970566", "type":"groundtruth/text-classification"}}
```

 以下示例显示了增强清单文件中的一个 JSON 对象，该对象已格式化以提高可读性：

```
{
   "source": "Paulo, your $1000 award is waiting for you! Claim it while you still can at http://example.com.",
   "MultiClassJob": 0,
   "MultiClassJob-metadata": {
       "confidence": 0.98,
       "job-name": "labeling-job/multiclassjob",
       "class-name": "spam",
       "human-annotated": "yes",
       "creation-date": "2020-05-21T17:36:45.814354",
       "type": "groundtruth/text-classification"
   }
}
```

在此示例中，`source` 属性提供训练文档的文本，`MultiClassJob` 属性从分类列表中分配类的索引。该 `job-name` 属性是您在 Ground Truth 中为标注任务定义的名称。

 在 Amazon Comprehend 中启动分类器训练任务时，需要指定相同的标注任务名称。

## 原生文档模型
<a name="prep-multi-class-structured"></a>

原生文档模型是使用原生文档（例如 PDF、DOCX 和图像）训练的模型。您以 CSV 文件形式提供训练数据。

### CSV 文件
<a name="prep-multi-class-structured-csv"></a>

有关将 CSV 文件用于训练分类器的常规信息，请参阅 [CSV 文件](prep-class-data-format.md#prep-data-csv)。

以三列 CSV 文件形式提供训练数据。对于每一行，第一列包含类别标签值。第二列包含该类示例文档的文件名。第三列包含页码。如果示例文档是图像，则页码是可选项。

以下示例介绍一个包含三个输入文档的 CSV 文件。

```
CLASS,input-doc-1.pdf,3
CLASS,input-doc-2.docx,1
CLASS,input-doc-3.png
```

以下示例显示了 CSV 文件中的一行，该文件用于训练自定义分类器以检测电子邮件是否为垃圾邮件。PDF 文件的第 2 页包含垃圾邮件示例。

```
SPAM,email-content-3.pdf,2
```

# 多标签模式
<a name="prep-classifier-data-multi-label"></a>

在多标签模式下，各个类代表不相互排斥的不同类别。多标签模式为每个文档分配一个或多个类别。例如，您可以将一部电影归类为纪录片，将另一部电影归类为科幻小说、动作片和喜剧。

对于训练，多标签模式支持多达 100 万个示例，其中包含多达 100 个独特的类别。

**Topics**
+ [纯文本模型](#prep-multi-label-plaintext)
+ [原生文档模型](#prep-multi-label-structured)

## 纯文本模型
<a name="prep-multi-label-plaintext"></a>

要训练纯文本模型，您可以以 CSV 文件或来自 SageMaker AI Ground Truth 的增强清单文件的形式提供带标签的训练数据。

### CSV 文件
<a name="prep-multi-label-plaintext-csv"></a>

有关将 CSV 文件用于训练分类器的常规信息，请参阅 [CSV 文件](prep-class-data-format.md#prep-data-csv)。

以两列 CSV 文件形式提供训练数据。对于每一行，第一列包含类标签值，第二列包含这些类的示例文本文档。要在第一列中输入多个类别，请在每个类别之间使用分隔符（例如\$1）。

```
CLASS,Text of document 1
CLASS,Text of document 2
CLASS|CLASS|CLASS,Text of document 3
```

以下示例显示了 CSV 文件中的一行，该文件用于训练自定义分类器以检测电影摘要中的类别：

```
COMEDY|MYSTERY|SCIENCE_FICTION|TEEN,"A band of misfit teens become unlikely detectives when they discover troubling clues about their high school English teacher. Could the strange Mrs. Doe be an alien from outer space?"
```

类名之间的默认分隔符是竖线字符(\$1)。不过，您可以使用另一个字符作为分隔符。分隔符必须与类名中的所有字符不同。例如，如果您的类名是 CLASS\$11、CLASS\$12 和 CLASS\$13，则下划线(**\$1**)是类名的一部分。因此，不要使用下划线作为分隔类名的分隔符。

### 增强清单文件
<a name="prep-multi-label-plaintext-manifest"></a>

有关使用增强清单文件训练分类器的一般信息，请参阅 [增强清单文件](prep-class-data-format.md#prep-data-annotations)。

对于纯文本文档，增强清单文件的每一行都是一个完整的 JSON 对象。它包含来自 Ground Truth 的训练文档、类名和其他元数据。以下示例是一个增强清单文件，用于训练自定义分类器来检测电影摘要中的类别：

```
{"source":"Document 1 text", "MultiLabelJob":[0,4], "MultiLabelJob-metadata":{"job-name":"labeling-job/multilabeljob", "class-map":{"0":"action", "4":"drama"}, "human-annotated":"yes", "creation-date":"2020-05-21T19:02:21.521882", "confidence-map":{"0":0.66}, "type":"groundtruth/text-classification-multilabel"}}
{"source":"Document 2 text", "MultiLabelJob":[3,6], "MultiLabelJob-metadata":{"job-name":"labeling-job/multilabeljob", "class-map":{"3":"comedy", "6":"horror"}, "human-annotated":"yes", "creation-date":"2020-05-21T19:00:01.291202", "confidence-map":{"1":0.61,"0":0.61}, "type":"groundtruth/text-classification-multilabel"}}
{"source":"Document 3 text", "MultiLabelJob":[1], "MultiLabelJob-metadata":{"job-name":"labeling-job/multilabeljob", "class-map":{"1":"action"}, "human-annotated":"yes", "creation-date":"2020-05-21T18:58:51.662050", "confidence-map":{"1":0.68}, "type":"groundtruth/text-classification-multilabel"}}
```

 以下示例显示了增强清单文件中的一个 JSON 对象，该对象已格式化以提高可读性：

```
{
      "source": "A band of misfit teens become unlikely detectives when 
                   they discover troubling clues about their high school English teacher. 
                     Could the strange Mrs. Doe be an alien from outer space?",
      "MultiLabelJob": [
          3,
          8,
          10,
          11
      ],
      "MultiLabelJob-metadata": {
          "job-name": "labeling-job/multilabeljob",
          "class-map": {
              "3": "comedy",
              "8": "mystery",
              "10": "science_fiction",
              "11": "teen"
          },
          "human-annotated": "yes",
          "creation-date": "2020-05-21T19:00:01.291202",
          "confidence-map": {
              "3": 0.95,
              "8": 0.77,
              "10": 0.83,
              "11": 0.92
          },
          "type": "groundtruth/text-classification-multilabel"
      }
  }
```

在此示例中，`source` 属性提供训练文档的文本，而 `MultiLabelJob` 属性分配分类列表中多个类的索引。`MultiLabelJob` 元数据中的任务名称是您在 Ground Truth 中为标注任务定义的名称。

## 原生文档模型
<a name="prep-multi-label-structured"></a>

原生文档模型是使用原生文档（例如 PDF、DOCX 和图像文件）训练的模型。您以 CSV 文件形式提供标注的训练数据。

### CSV 文件
<a name="prep-multi-label-structured-csv"></a>

有关将 CSV 文件用于训练分类器的常规信息，请参阅 [CSV 文件](prep-class-data-format.md#prep-data-csv)。

以三列 CSV 文件形式提供训练数据。对于每一行，第一列包含类别标签值。第二列包含这些类的示例文档的文件名。第三列包含页码。如果示例文档是图像，则页码是可选项。

要在第一列中输入多个类别，请在每个类别之间使用分隔符（例如\$1）。

```
CLASS,input-doc-1.pdf,3
CLASS,input-doc-2.docx,1
CLASS|CLASS|CLASS,input-doc-3.png,2
```

以下示例显示了 CSV 文件中的一行，该文件用于训练自定义分类器以检测电影摘要中的类别。PDF 文件的第 2 页包含 comedy/teen 电影的示例。

```
COMEDY|TEEN,movie-summary-1.pdf,2
```

类名之间的默认分隔符是竖线字符(\$1)。不过，您可以使用另一个字符作为分隔符。分隔符必须与类名中的所有字符不同。例如，如果您的类名是 CLASS\$11、CLASS\$12 和 CLASS\$13，则下划线(**\$1**)是类名的一部分。因此，不要使用下划线作为分隔类名的分隔符。