训练自定义实体识别器 (API) - Amazon Comprehend

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

训练自定义实体识别器 (API)

要创建和训练自定义实体识别模型,请使用 Amazon Comprehend API CreateEntityRecognizer操作

使用 AWS Command Line Interface 训练自定义实体识别器

以下示例演示了如何将 CreateEntityRecognizer 操作和其他相关的 API 与 AWS CLI 结合使用。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows,请将每行末尾的反斜杠 (\) Unix 行继续符替换为脱字号 (^)。

使用 create-entity-recognizer CLI 命令创建自定义实体识别器。有关 input-data-config 参数的信息,请参阅《亚马逊 Comprehend API 参考》CreateEntityRecognizer中的。

aws comprehend create-entity-recognizer \ --language-code en \ --recognizer-name test-6 \ --data-access-role-arn "arn:aws:iam::account number:role/service-role/AmazonComprehendServiceRole-role" \ --input-data-config "EntityTypes=[{Type=PERSON}],Documents={S3Uri=s3://Bucket Name/Bucket Path/documents}, Annotations={S3Uri=s3://Bucket Name/Bucket Path/annotations}" \ --region region

使用 list-entity-recognizers CLI 命令列出一个区域中的所有实体识别器。

aws comprehend list-entity-recognizers \ --region region

使用 describe-entity-recognizer CLI 命令检查自定义实体识别器的作业状态。

aws comprehend describe-entity-recognizer \ --entity-recognizer-arn arn:aws:comprehend:region:account number:entity-recognizer/test-6 \ --region region

使用 AWS SDK for Java 训练自定义实体识别器

此示例使用 Java 创建自定义实体识别器并训练模型

有关使用 Java 的 Amazon Comprehend 示例,请参阅 Amazon Comprehend Java 示例

使用 Python (Boto3) 训练自定义实体识别器

实例化 Boto3 SDK:

import boto3 import uuid comprehend = boto3.client("comprehend", region_name="region")

创建实体识别器:

response = comprehend.create_entity_recognizer( RecognizerName="Recognizer-Name-Goes-Here-{}".format(str(uuid.uuid4())), LanguageCode="en", DataAccessRoleArn="Role ARN", InputDataConfig={ "EntityTypes": [ { "Type": "ENTITY_TYPE" } ], "Documents": { "S3Uri": "s3://Bucket Name/Bucket Path/documents" }, "Annotations": { "S3Uri": "s3://Bucket Name/Bucket Path/annotations" } } ) recognizer_arn = response["EntityRecognizerArn"]

列出所有识别器:

response = comprehend.list_entity_recognizers()

等待识别器达到“已训练”状态:

while True: response = comprehend.describe_entity_recognizer( EntityRecognizerArn=recognizer_arn ) status = response["EntityRecognizerProperties"]["Status"] if "IN_ERROR" == status: sys.exit(1) if "TRAINED" == status: break time.sleep(10)