实体列表(仅限纯文本) - Amazon Comprehend

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

实体列表(仅限纯文本)

要识别自定义实体,需要使用逗号分隔值 (CSV) 文件,需要包含以下列:

  • Text— 与随附的文档语料库中看到的完全相同的条目示例文本。

  • 类型客户定义的实体类型。实体类型必须是大写的、下划线分隔的字符串,例如 MANAGER 或 SENIOR_MANAGER。每个模型最多可训练 25 种实体类型。

这个文件documents.txt包含四行:

Jo Brown is an engineer in the high tech industry. John Doe has been a engineer for 14 years. Emilio Johnson is a judge on the Washington Supreme Court. Our latest new employee, Jane Smith, has been a manager in the industry for 4 years.

包含实体列表的 CSV 文件包含以下几行:

Text, Type Jo Brown, ENGINEER John Doe, ENGINEER Jane Smith, MANAGER
注意

在实体列表中,Emilio Johnson 的条目不存在,因为它不包含工程师或经理实体。

实体列表中的每个实体至少需要 200 个实体匹配才能训练模型以进行自定义实体识别。

创建数据文件

重要的是,您的实体列表必须位于正确配置的 CSV 文件中,这样您的实体列表文件出现问题的机会就会降至最低。要手动配置 CSV 文件,必须满足以下条件:

  • 必须显式指定 UTF-8 编码,即使在大多数情况下将其用作默认编码也是如此。

  • 它必须包括列名:TypeText.

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

以下示例使用 Python 为上面显示的注解生成 CSV:

import csv with open("./entitylist/entitylist.csv", "w", encoding="utf-8") as csv_file: csv_writer = csv.writer(csv_file) csv_writer.writerow(["Text", "Type"]) csv_writer.writerow(["Jo Brown", "ENGINEER"]) csv_writer.writerow(["John Doe", "ENGINEER"]) csv_writer.writerow(["Jane Smith", "MANAGER"])

最佳实践

使用实体列表时,要获得最佳结果,需要考虑许多因素,包括:

  • 列表中实体的顺序对模型训练没有影响。

  • 使用涵盖未加注释的文档语料库中提及的 80%-100% 正面实体示例的实体列表项。

  • 通过删除常见的单词和短语,避免与文档语料库中的非实体匹配的实体示例。即使是少量不正确的匹配也会极大地影响结果模型的准确性。例如,一个像在实体列表中将导致大量匹配,这些匹配不太可能是您要查找的实体,因此会严重影响您的准确性。

  • 输入数据不应包含重复项。重复样本的存在可能会导致测试集污染,从而对训练过程、模型指标和行为产生负面影响。

  • 尽可能提供与实际用例相似的文档。不要将玩具数据或合成数据用于生产系统。输入数据应尽可能多样化,以避免过度拟合,并帮助基础模型更好地概括真实示例。

  • 实体列表区分大小写,目前不支持正则表达式。但是,即使实体与实体列表中提供的大小写不完全匹配,经过训练的模型通常仍然可以识别实体。

  • 如果您的实体是另一个实体(例如 “Smith” 和 “Jane Smith”)的子字符串,请在实体列表中提供两者。

可以在以下网站找到其他建议:提高自定义实体识别器性能