使用异步作业 (API) 编辑 PII 实体 - Amazon Comprehend

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

使用异步作业 (API) 编辑 PII 实体

要编辑文本中的 PII 实体,您需要启动一个异步批处理作业。要运行任务,请将您的文档上传到 Amazon S3,然后提交StartPiiEntitiesDetectionJob请求。

开始之前

在开始之前,请确保您具有:

  • 输入和输出存储桶:确定要用于输入文件和输出文件的 Amazon S3 存储桶。存储桶必须与所调用的 API 位于同一区域。

  • IAM 服务角色:您必须拥有一个有权访问您的输入和输出存储桶的 IAM 服务角色。有关更多信息,请参阅 异步操作所需的基于角色的权限

输入参数

在您的请求中,请包含以下必需的参数:

  • InputDataConfig— 为您的请求提供InputDataConfig定义,其中包括任务的输入属性。对于 S3Uri 参数,指定输入文档的 Amazon S3 位置。

  • OutputDataConfig— 为您的请求提供OutputDataConfig定义,其中包括任务的输出属性。对于 S3Uri 参数,指定 Amazon Comprehend 写入其分析结果的 Amazon S3 位置。

  • DataAccessRoleArn:提供 AWS Identity and Access Management 角色的 Amazon 资源名称(ARN)。该角色必须授予 Amazon Comprehend 对您的输入数据的读取权限以及对您在 Amazon S3 中的输出位置的写入权限。有关更多信息,请参阅 异步操作所需的基于角色的权限

  • Mode:将该参数设置为 ONLY_REDACTION。使用此设置,Amazon Comprehend 会将您的输入文档的副本写入 Amazon S3 中的输出位置。在此副本中,每个 PII 实体都经过了编辑。

  • RedactionConfig— 为您的请求提供RedactionConfig定义,其中包括密文的配置参数。指定要编辑的 PII 类型,并指定是用其类型的名称还是您选择的字符替换每个 PII 实体:

    • PiiEntityTypes 数组中指定要编辑的 PII 实体类型。要编辑所有实体类型,请将数组值设置为 ["ALL"]

    • 要将每个 PII 实体替换为其类型,请将 MaskMode 参数设置为 REPLACE_WITH_PII_ENTITY_TYPE。例如,使用此设置,PII 实体“Jane Doe”将替换为“[姓名]”。

    • 要用您选择的字符替换每个 PII 实体中的字符,请将 MaskMode 参数设置为 MASK,然后将 MaskCharacter 参数设置为替换字符。仅提供单个字符。有效字符为!、#、¥、%、&、*和@。例如,使用此设置,PII 实体“Jane Doe”将替换为“**** ***”

  • LanguageCode— 将此参数设置为enes。Amazon Comprehend 支持英语或西班牙语文本的 PII 检测。

输出文件格式

以下示例显示了编辑 PII 的分析作业的输入和输出文件。输入格式是每行一个文档。

{ Managing Your Accounts Primary Branch Canton John Doe Phone Number 443-573-4800 123 Main StreetBaltimore, MD 21224 Online Banking HowardBank.com Telephone 1-877-527-2703 Bank 3301 Boston Street, Baltimore, MD 21224

编辑该输入文件的分析作业会生成以下输出文件。

{ Managing Your Accounts Primary Branch ****** ******** Phone Number ************ ********************************** Online Banking ************** Telephone ************** Bank *************************************** }

使用 PII 进行编辑 AWS Command Line Interface

以下示例使用 AWS CLI的 StartPiiEntitiesDetectionJob 操作。

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

aws comprehend start-pii-entities-detection-job \ --region region \ --job-name job name \ --cli-input-json file://path to JSON input file

对于 cli-input-json 参数,请提供包含请求数据的 JSON 文件的路径,如以下示例中所示。

{ "InputDataConfig": { "S3Uri": "s3://input bucket/input path", "InputFormat": "ONE_DOC_PER_LINE" }, "OutputDataConfig": { "S3Uri": "s3://output bucket/output path" }, "DataAccessRoleArn": "arn:aws:iam::account ID:role/data access role" "LanguageCode": "en", "Mode": "ONLY_REDACTION" "RedactionConfig": { "MaskCharacter": "*", "MaskMode": "MASK", "PiiEntityTypes": ["ALL"] } }

如果启动事件检测作业的请求成功,您将会收到一条与以下类似的响应:

{ "JobId": "7c4fbe6e...e5b" "JobArn": "arn:aws:comprehend:us-west-2:123456789012:pii-entities-detection-job/7c4fbe6e...e5b" "JobStatus": "SUBMITTED", }

您可以使用该DescribeEventsDetectionJob操作来获取现有任务的状态。

aws comprehend describe-pii-entities-detection-job \ --region region \ --job-id job ID

任务成功完成后,您将会收到一条与以下类似的响应:

{ "PiiEntitiesDetectionJobProperties": { "JobId": "7c4fbe6e...e5b" "JobArn": "arn:aws:comprehend:us-west-2:123456789012:pii-entities-detection-job/7c4fbe6e...e5b" "JobName": "piiCLIredtest1", "JobStatus": "COMPLETED", "SubmitTime": "2022-05-05T14:54:06.169000-07:00", "EndTime": "2022-05-05T15:00:17.007000-07:00", "InputDataConfig": { (identical to the input data that you provided with the request) } }