我的同事 Jeff Barr 最近写了一篇关于 Amazon Comprehend 的文章,这是一项用于发现文本中的见解和关系的服务,在 2017 年的 AWS re:Invent 大会上发布。如今,在反复研究客户反馈之后,我们将发布适用于 Comprehend 的全新异步批量推理功能。异步批处理操作可处理存储在 Amazon Simple Storage Service (S3) 存储桶中的文档,并可执行所有常规 Comprehend 操作,例如实体识别、关键短语提取、情绪分析和语言检测。与单文档 API 和批处理 API 相比,这些新的异步批处理 API 支持的文档要大得多,从而减少了客户截断文档以获取服务的需求。当然,所有单文档 API 和批处理同步 API 操作仍可用于提供实时结果。通过增加异步操作,开发人员可以选择最适合其应用程序的工具。让我们深入了解一下这一新型 API。
异步 API 操作
新的批处理 API 遵循与 Amazon Comprehend 的 TopicDetection API 相同的异步调用结构。在分析一系列文档时,我们首先要调用某个 Start*
API,例如 StartDominantLanguageDetectionJob
、 StartEntitiesDetectionJob
、 StartKeyPhrasesDetectionJob
或 StartSentimentDetectionJob
。
这些 API 中的每一个都采用 InputDataConfig 和 OutputDataConfig,用以指定传入数据的格式和位置,以及相关结果应存储在 S3 的哪个位置。InputDataConfig 用于指定应将输入数据视为每个文件一个文档还是每行一个文档。
另外,我们还可以给任务命名并添加一个用于同步用途的唯一请求标识符。如果我们不提供这些信息,Comprehend 服务将自动生成它们。
在撰写本文时,对于实体和关键短语检测、语言检测及情绪检测,异步操作支持的最大单个文档大小分别为 100KB、1MB 和 5KB。批处理中所有文件的总大小必须小于 5GB,而且对于每个批次,我们提交的单独文件数不能超过 100 万个。
现在我们已经了解了 API 的功能,接下来我们来看看更新后的控制台并启动任务!
Amazon Comprehend 分析控制台
首先,我将导航到 AWS 管理控制台并打开 Amazon Comprehend。接下来,我将选择新的分析控制台。
在此,我可以单击控制台右上角的“创建”按钮来创建一个新的分析任务。我将创建一个实体检测任务并选择英语作为我的文档语言。然后,我会指示控制台选择一些示例数据。
现在,我将配置输出数据的位置,并确保所选服务角色有权访问该 S3 存储桶。然后,我将启动任务!
在如下页面上,我可以看到在控制台中启动的操作,并可等到操作完成后再查看详细结果。
在任务页面上,我可以看到任务的状态和输出位置。如果我从 S3 位置下载结果,则可以查看示例文本中检测到的实体。
在这里,我已截断结果,但大多数情况下它们如下所示:
Json
很酷吧!我们可以通过类似的步骤进行情感检测或关键短语检测。由于我们可以在一个批次中提交多达 5GB 的数据,因此客户将花费较少的时间来转换和截断文档。
我个人推荐使用 AWS Step Functions 之类的工具,以编程方式检查任务状态。设置和构建编程分析管道非常简单。
正如我们在 Roy Hasson 撰写的这篇博客文章中提到的,您还可以使用 AWS Glue 将 Comprehend 作为您常规 ETL 操作的一部分加以调用。
附加信息
您可以在该文档中找到有关这些新 API 的详细信息,并了解有关限制和最佳实践的更多信息。
如前所述,同步批处理 API 仍然可用,并且适合用于较小的文档集和较小的文档。
和往常一样,欢迎随时在这里或在 Twitter 上分享您的反馈。
作者介绍:
Randall Hunt
AWS 全球高级布道师。此前供职于 NASA, SpaceX 及 MongoDB。
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/amazon-comprehend-launches-asynchronous-batch-operations/
评论