文档处理模式 - Amazon Comprehend

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

文档处理模式

亚马逊 Comprehend 支持三种文档处理模式。您选择的模式取决于您需要处理的文档数量以及查看结果的即时程度:

  • 单个文档同步— 您使用单个文档调用 Amazon Comprehend 并收到同步响应,并立即发送到您的应用程序(或控制台)。

  • 多文档同步— 您使用最多包含 25 个文档的集合调用 Amazon Comprehend API 并收到同步响应。

  • 异步批处理— 对于大量文档,将文档放入 Amazon S3 存储桶并启动异步任务(使用控制台或 API 操作)来分析文档。Amazon Comprehend 将分析结果存储在您在请求中指定的 S3 存储桶/文件夹中。

单个文档处理

单文档操作是将文档分析结果直接返回到应用程序的同步操作。在创建一次处理一个文档的交互式应用程序时,请使用单文档同步操作。

有关同步 API 操作的更多信息,请参阅使用内置模型进行实时分析(用于控制台)和使用 API 的实时分析.

多文档同步处理

当您有多个要处理的文档时,可以使用Batch*一次向 Amazon Comprehend 发送多个文档的 API 操作。您最多可以在每个请求中发送 25 个文档。Amazon Comprehend 会发回一份回复列表,请求中的每个文档对应一个回复。使用这些操作发出的请求是同步的。您的应用程序调用该操作,然后等待来自服务的响应。

使用Batch*操作等同于为请求中的每个文档调用单个文档 API。使用这些 API 可以提高应用程序的性能。

每个 API 的输入都是一个 JSON 结构,其中包含要处理的文档。适用于所有操作,除了BatchDetectDominantLanguage,则必须设置输入语言。您仅可为每个请求设置一种输入语言。例如,以下是输入BatchDetectEntitiesoperation. 它包含两个文档,是英文的。

{ "LanguageCode": "en", "TextList": [ "I have been living in Seattle for almost 4 years", "It is raining today in Seattle" ] }

来自的响应Batch*操作包含两个列表,ResultListErrorList. 这些区域有:ResultList每个成功处理的文档都包含一条记录。请求中每个文档的结果与您在文档上运行单个文档操作时得到的结果相同。根据文档在输入文件中的顺序,为每个文档的结果分配一个索引。来自的响应BatchDetectEntitiesoperation如下:

{ "ResultList" : [ { "Index": 0, "Entities": [ { "Text": "Seattle", "Score": 0.95, "Type": "LOCATION", "BeginOffset": 22, "EndOffset": 29 }, { "Text": "almost 4 years", "Score": 0.89, "Type": "QUANTITY", "BeginOffset": 34, "EndOffset": 48 } ] }, { "Index": 1, "Entities": [ { "Text": "today", "Score": 0.87, "Type": "DATE", "BeginOffset": 14, "EndOffset": 19 }, { "Text": "Seattle", "Score": 0.96, "Type": "LOCATION", "BeginOffset": 23, "EndOffset": 30 } ] } ], "ErrorList": [] }

当请求中出现错误时,响应包含ErrorList标识包含错误的文档。文档由其在输入列表中的索引标识。例如,将下面的输入BatchDetectLanguage操作包含无法处理的文档:

{ "TextList": [ "hello friend", "$$$$$$", "hola amigo" ] }

来自 Amazon Comprehend 的回复包括一个错误列表,该列表标识了包含错误的文档:

{ "ResultList": [ { "Index": 0, "Languages":[ { "LanguageCode":"en", "Score": 0.99 } ] }, { "Index": 2 "Languages":[ { "LanguageCode":"es", "Score": 0.82 } ] } ], "ErrorList": [ { "Index": 1, "ErrorCode": "InternalServerException", "ErrorMessage": "Unexpected Server Error. Please try again." } ] }

有关同步批处理 API 操作的更多信息,请参阅实时批处理 API.

异步批处理过程

要分析大型文档和大量文档集合,请使用 Amazon Comprehend 异步操作。

要分析文档集合,通常执行以下步骤:

  1. 将文档存储在 Amazon S3 存储桶中。

  2. 启动一个或多个分析作业来分析文档。

  3. 监控分析作业的进度。

  4. 作业完成后,从 S3 存储桶中检索分析结果。

有关如何使用异步 API 操作的更多信息,请参阅使用控制台运行分析作业(consolsole)使用 API 执行异步分析作业.