本体关联批量分析 - Amazon Comprehend Medical

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

本体关联批量分析

使用 Amazon Comprehend Medical 检测存储在 Amazon Simple Storage Service (Amazon S3) 桶中的临床文本实体,并将这些实体关联到标准化本体。您可以使用本体关联批量分析来分析一组文档或最多包含 20000 个字符的单个文档。通过使用控制台或本体关联批处理 API,您可以执行操作,以启动、停止、列出和描述正在进行的批量分析作业。

有关批量分析和其他 Amazon Comprehend Medical 操作的定价信息,请参阅 Amazon Comprehend Medical Pricing

执行批量分析

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

使用 API 操作执行批量分析

先决条件

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

  1. 将数据上传到 S3 桶。

  2. 要开始新的分析作业,请使用 start icd10cm InferenceJob、st artsN InferenceJob omedCT 或操作。StartRxNormInferenceJob提供包含输入文件的 Amazon S3 桶的名称以及您将要向其发送输出文件的 Amazon S3 桶的名称。

  3. 使用 desc ribeicd10cm InferenceJob、describeNomedc t 或操作来监控任务的进度。InferenceJob DescribeRxNormInferenceJob此外,你可以使用 Listicd10cm InferenceJobslistsNomedCT 以及查看所有本体InferenceJobs关联批量ListRxNormInferenceJobs分析作业的状态。

  4. 如果你需要停止正在进行的作业,请使用 stopicd10cm InferenceJob、stop snomedCT 或停止分析InferenceJobStopRxNormInferenceJob

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

使用控制台执行批量分析

  1. 将数据上传到 S3 桶。

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

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

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

适用于批量操作的 IAM 策略

调用 Amazon Comprehend Medical 批处理 API 操作的 IAM 角色必须有一个策略,允许访问包含输入和输出文件的 S3 桶。此外,还必须为 IAM 角色分配信任关系,这样 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 创建此新目录,这样一个作业的输出就不会覆盖另一个作业的输出。

批处理操作产生的输出与同步操作相同。

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

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

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

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

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

批处理清单文件

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

{"Summary" : {"Status" : "COMPLETED | FAILED | PARTIAL_SUCCESS | STOPPED", "JobType" : "ICD10CMInference | RxNormInference | SNOMEDCTInference", "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" }, { ...} ] }