文本分析批处理 API - Amazon Comprehend Medical

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

文本分析批处理 API

使用 Amazon Comprehend Medical 分析存储在 Amazon S3 桶中的医学文本。一个批次最多分析 10 GB 文档。您可以使用控制台创建和管理批量分析作业,或者使用批处理 API 来检测医疗实体,包括受保护健康信息 (PHI)。这些 API 可以启动、停止、列出和描述正在进行的批量分析作业。

可以在此处查看批量分析和其他 Amazon Comprehend Medical 操作的定价信息。

重要提示

Amazon Comprehend Medical 的批量分析操作不能代替专业的医学意见、诊断或治疗。为您的使用案例确定正确的置信度阈值,并在需要高准确度的情况下使用高置信度阈值。对于某些使用案例,结果应由经过适当培训的人力审核人员进行审核和验证。Amazon Comprehend Medical 的所有操作只能在患者护理场景中使用,并且要由训练有素的医学专家审查准确性并进行合理的医学判断。

使用 API 执行批量分析

您可以使用 Amazon Comprehend Medical 控制台或 Amazon Comprehend Medical 批处理 API 来运行批量分析作业。

先决条件

在使用 Amazon Comprehend Medical API 时,请创建 AWS Identity Access and Management (IAM) 策略并将其附加到 IAM 角色。要了解有关 IAM 角色和信任策略的更多信息,请参阅 IAM 策略和权限

  1. 将数据上传到 S3 桶。

  2. 要启动新的分析作业,请使用 StartEntitiesDetection V2Job 操作或 start DetectionJob Phi 操作。开始作业时,请告知 Amazon Comprehend Medical 包含输入文件的输入 S3 桶的名称,并指定输出 S3 存储桶以便在批量分析后写入文件。

  3. 使用控制台、 DescribeEntitiesDetection V2Job 操作或 Des DetectionJob cribePHI 操作监控作业的进度。此外, ListEntitiesDetectionV2Jobs 和 ListPhi 还DetectionJobs 允许您查看所有本体链接批量分析作业的状态。

  4. 如果您需要停止正在进行的作业,请使用 StopEntitiesDetection V2Job 或 stopPhi DetectionJob 停止分析。

  5. 要查看分析作业的结果,请参阅您在启动作业时配置的输出 S3 桶。

使用控制台执行批量分析

  1. 将数据上传到 S3 桶。

  2. 要开始新的分析作业,请选择要执行的分析类型。然后,提供包含输入文件的 S3 桶的名称以及您想要向其发送输出文件的 S3 桶的名称。

  3. 在作业运行期间监控其状态。在控制台中,您可以查看所有批量分析操作及其状态,包括分析的开始和结束时间。

  4. 要查看分析作业的结果,请查看您在启动作业时配置的输出 S3 桶。

适用于批量操作的 IAM 策略

调用 Amazon Comprehend Medical 批处理 API 的 IAM 角色必须具有一项策略,允许其访问包含输入和输出文件的 S3 桶。还必须分配信任关系,让 Amazon Comprehend Medical 服务能够担任该角色。要了解有关 IAM 角色和信任策略的更多信息,请参阅 IAM 角色

该角色必须具有以下策略。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::input-bucket/*" ], "Effect": "Allow" }, { "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::input-bucket", "arn:aws:s3:::output-bucket", ], "Effect": "Allow" }, { "Action": [ "s3:PutObject" ], "Resource": [ " arn:aws:s3:::output-bucket/*" ], "Effect": "Allow" } ] }

该角色必须拥有以下信任关系。建议您使用 aws:SourceAccount aws:SourceArn 条件键来防止混淆代理安全问题。要详细了解混淆的代理问题以及如何保护您的 AWS 账户,请参阅 IAM 文档中的混淆代理问题

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "comprehendmedical.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:comprehendmedical:region:account_id:*" } } } ] }

批量分析输出文件

Amazon Comprehend Medical 为批次中的每个输入文件创建一个输出文件。文件的扩展名为 .out。Amazon Comprehend Medical 首先使用 AwsAccountIdJobTypeJobId-作为名称在输出 S3 存储桶中创建一个目录,然后将该批次的所有输出文件写入该目录。Amazon Comprehend Medical 创建这个新目录的目的是防止一个作业的输出被另一个作业的输出覆盖。

批处理操作产生的输出与同步操作的输出相同。有关 Amazon Comprehend Medical 生成的输出示例,请参阅检测实体(版本 2)

每个批处理操作都会生成三个清单文件,其中包含有关作业的信息。

  • Manifest – 总结作业。提供有关作业所用参数、作业的总大小以及已处理的文件数量的信息。

  • success – 提供有关已成功处理的文件的信息。包括输入和输出文件名以及输入文件的大小。

  • unprocessed – 列出批处理作业未处理的文件,包括每个文件的错误代码和错误消息。

Amazon Comprehend Medical 会将文件写入您为批处理作业指定的输出目录。摘要清单文件将与标题为 Manifest_AccountId-Operation-JobId 的文件夹一起写入输出文件夹。清单文件夹中有一个 success 文件夹,其中包含成功清单。还包括一个 failed 文件夹,其中包含未处理的文件清单。以下部分显示了清单文件的结构。

批处理清单文件

以下是批处理清单文件的 JSON 结构。

{"Summary" : {"Status" : "COMPLETED | FAILED | PARTIAL_SUCCESS | STOPPED", "JobType" : "EntitiesDetection | PHIDetection", "InputDataConfiguration" : { "Bucket" : "input bucket", "Path" : "path to files/account ID-job type-job ID" }, "OutputDataConfiguration" : { "Bucket" : "output bucket", "Path" : "path to files" }, "InputFileCount" : number of files in input bucket, "TotalMeteredCharacters" : total characters processed from all files, "UnprocessedFilesCount" : number of files not processed, "SuccessFilesCount" : total number of files processed, "TotalDurationSeconds" : time required for processing, "SuccessfulFilesListLocation" : "path to file", "UnprocessedFilesListLocation" : "path to file", "FailedJobErrorMessage": "error message or if not applicable, The status of the job is completed" } }

成功清单文件

以下是文件的 JSON 结构,其中包含有关已成功处理的文件的信息。

{ "Files": [{ "Input": "input path/input file name", "Output": "output path/output file name", "InputSize": size in bytes of input file }, { "Input": "input path/input file name", "Output": "output path/output file name", "InputSize": size in bytes of input file }] }

未处理清单文件

以下是清单文件的 JSON 结构,其中包含有关未处理文件的信息。

{ "Files" : [ { "Input": "file_name_that_failed", "ErrorCode": "error code for exception", "ErrorMessage": "explanation of the error code and suggestions" }, { ...} ] }