

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

# 纯文本注释文件
<a name="cer-annotation-csv"></a>

对于纯文本注释，您可以创建包含注释列表的逗号分隔值 (CSV) 文件。如果您的训练文件输入格式为**每行一个文档**，则 CSV 文件必须包含以下列。


| 文件 | 行 | 开始偏移量 | 结束偏移量 | Type | 
| --- | --- | --- | --- | --- | 
|  包含文档的文件的名称。例如，如果其中一个文档文件位于 `s3://my-S3-bucket/test-files/documents.txt`，则该 `File` 列中的值将为 `documents.txt`。文件名中必须包含文件扩展名（在本例中为“`.txt`”）。  |  包含实体的行号。如果您的输入格式为每个文件一个文档，请省略此列。  |  输入文本中的字符偏移量（相对于行的开头），显示了实体的开始位置。第一个字符位于位置 0。  |  输入文本中的字符偏移量，用于显示实体的结束位置。  |  客户定义的实体类型。实体类型必须是大写的、用下划线分隔的字符串。我们建议使用描述性实体类型，例如 `MANAGER`、`SENIOR_MANAGER`、或 `PRODUCT_CODE`。每个模型最多可以训练 25 种实体类型。  | 

如果您的训练文件输入格式为**每个文件一个文档**，则省略行号列，并且**开始偏移量**和**结束偏移量**值是实体相对于文档开头的偏移量。

以下示例适用于每行一个文档。文件 `documents.txt` 包含四行（第 0、1、2 和 3 行）：

```
Diego Ramirez is an engineer in the high tech industry.
Emilio Johnson has been an engineer for 14 years.
J Doe is a judge on the Washington Supreme Court.
Our latest new employee, Mateo Jackson, has been a manager in the industry for 4 years.
```

带有注释列表的 CSV 文件如下所示：

```
File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 0, 13, ENGINEER
documents.txt, 1, 0, 14, ENGINEER
documents.txt, 3, 25, 38, MANAGER
```

**注意**  
在注释文件中，包含实体的行号从第 0 行开始。在此示例中，CSV 文件不包含第 2 行的条目，因为 `documents.txt` 的第 2 行中没有实体。

**创建您的数据文件**

请务必将您的注释放在正确配置的 CSV 文件中，以降低出错的风险。要手动配置 CSV 文件，必须满足以下条件：
+ 必须明确指定 UTF-8 编码，即使在大多数情况下将其用作默认编码。
+ 第一行包含列标题：`File`、`Line` （可选）、`Begin Offset`、`End Offset`、`Type`。

我们强烈建议您以编程方式生成 CSV 输入文件，以避免出现潜在问题。

以下示例使用 Python 为前面显示的注释生成 CSV：

```
import csv 
with open("./annotations/annotations.csv", "w", encoding="utf-8") as csv_file:
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow(["File", "Line", "Begin Offset", "End Offset", "Type"])
    csv_writer.writerow(["documents.txt", 0, 0, 11, "ENGINEER"])
    csv_writer.writerow(["documents.txt", 1, 0, 5, "ENGINEER"])
    csv_writer.writerow(["documents.txt", 3, 25, 30, "MANAGER"])
```