在Amazon QuickSight中使用词云可视化Amazon Comprehend分析

在Amazon QuickSight中使用词云可视化Amazon Comprehend分析

在一堆自由格式文本文档中寻找见解就像在一堆草堆里找针一样困难。传统的方法可能是使用词频统计或其他基本分析方法来解析文档,但是有了亚马逊人工智能和机器学习(ML)工具的强大功能,我们可以更深入地理解内容。

亚马逊Comprehend是一个完全托管的服务,使用自然语言处理(NLP)来提取有关文档内容的见解。亚马逊Comprehend通过识别文档中的实体、关键短语、情感、主题和自定义元素来开发见解。亚马逊Comprehend可以根据对文档结构和实体关系的理解创建新的见解。例如,使用亚马逊Comprehend,您可以扫描整个文档存储库以查找关键短语。

亚马逊Comprehend让非机器学习专家可以轻松完成通常需要数小时的任务。亚马逊Comprehend消除了清理、构建和训练自己的模型所需的大部分时间。对于在NLP或任何其他领域构建更深入的自定义模型,如果需要,亚马逊SageMaker可以让您以更常规的机器学习工作流程构建、训练和部署模型。

在本文中,我们使用亚马逊Comprehend和其他AWS服务来分析和提取文档存储库中的新见解。然后,我们使用亚马逊QuickSight生成一个简单而强大的词云可视化图,以便轻松发现主题或趋势。

解决方案概述

下图显示了解决方案架构。

首先,我们收集要分析的数据并将其加载到AWS帐户中的亚马逊简单存储服务(Amazon S3)存储桶中。在本示例中,我们使用格式化的文本文件。然后,使用亚马逊Comprehend对数据进行分析。亚马逊Comprehend创建一个JSON格式的输出,需要使用AWS Glue将其转换和处理为数据库格式。我们使用亚马逊Athena验证数据并提取特定格式的数据表,以供使用词云进行QuickSight分析。有关可视化的更多信息,请参阅Amazon QuickSight中的数据可视化。

先决条件

在进行本步骤之前,您应具备以下先决条件:

  • AWS帐户
  • 访问AWS管理控制台的权限
  • 基本数据库表知识
  • 用于输入和输出数据的S3存储桶

将数据上传到S3存储桶

将数据上传到S3存储桶。在本文中,我们使用UTF-8格式的美国宪法文本作为输入文件。然后,您可以开始分析数据并创建可视化效果。

使用亚马逊Comprehend分析数据

亚马逊Comprehend可以处理许多类型的基于文本和图像的信息。除了文本文件外,您还可以使用亚马逊Comprehend进行一步分类和实体识别,接受图像文件、PDF文件和Microsoft Word文件作为输入,但本文不讨论这些。

要分析您的数据,请完成以下步骤:

  1. 在亚马逊Comprehend控制台上,选择导航窗格中的分析作业
  2. 选择创建分析作业
  3. 输入作业名称。
  4. 对于分析类型,选择关键短语
  5. 对于语言,选择英语
  6. 对于输入数据位置,指定您作为先决条件创建的文件夹。
  7. 对于输出数据位置,指定您作为先决条件创建的文件夹。
  8. 选择创建IAM角色
  9. 输入角色名称的后缀。
  10. 选择创建作业

作业将运行,并且状态将显示在分析作业页面上。

等待分析任务完成。Amazon Comprehend将创建一个文件并将其放置在您提供的输出数据文件夹中。该文件以.gz或GZIP格式存储。

此文件需要下载并转换为非压缩格式。您可以使用Amazon S3控制台从数据文件夹或S3存储桶下载对象。

  1. 在Amazon S3控制台上,选择对象并选择下载。如果您想将对象下载到特定文件夹中,请在操作菜单上选择下载
  2. 将文件下载到本地计算机后,打开压缩文件并将其保存为非压缩文件。

在AWS Glue爬虫处理文件之前,必须将非压缩文件上传到输出文件夹中。在本示例中,我们将非压缩文件上传到稍后步骤中使用的相同输出文件夹中。

  1. 在Amazon S3控制台上,导航到您的S3存储桶并选择上传
  2. 选择添加文件
  3. 选择来自本地计算机的非压缩文件。
  4. 选择上传

上传文件后,删除原始的压缩文件。

  1. 在Amazon S3控制台上,选择存储桶并选择删除
  2. 通过在文本框中输入文件名确认要永久删除文件。
  3. 选择删除对象

这将使输出文件夹中仅剩一个文件:非压缩文件。

使用AWS Glue将JSON数据转换为表格格式

在此步骤中,您将准备好的Amazon Comprehend输出作为Athena的输入。Amazon Comprehend的输出格式为JSON。您可以使用AWS Glue将JSON转换为数据库结构,最终由QuickSight读取。

  1. 在AWS Glue控制台上,在导航窗格中选择爬虫
  2. 选择创建爬虫
  3. 为爬虫输入一个名称。
  4. 选择下一步
  5. 对于您的数据是否已映射到Glue表,选择尚未
  6. 添加数据源。
  7. 对于S3路径,输入Amazon Comprehend输出数据文件夹的位置。

请确保在路径名后添加斜杠/。AWS Glue将搜索文件夹路径中的所有文件。

  1. 选择爬取所有子文件夹
  2. 选择添加S3数据源

  1. 为爬虫创建一个新的AWS身份和访问管理(IAM)角色。
  2. 为IAM角色输入一个名称。
  3. 选择更新所选IAM角色,以确保将新角色分配给爬虫。
  4. 选择下一步以输入输出(数据库)信息。
  5. 选择添加数据库
  6. 输入一个数据库名称。
  7. 选择下一步
  8. 选择创建爬虫
  9. 选择运行爬虫以运行爬虫。

您可以在AWS Glue控制台上监控爬虫的状态。

使用Athena准备QuickSight的表格

Athena将从AWS Glue爬虫创建的数据库表中提取数据,以提供QuickSight用于创建词云的格式。

  1. 在Athena控制台上,在导航窗格中选择查询编辑器
  2. 对于数据源,选择AwsDataCatalog
  3. 对于数据库,选择爬虫创建的数据库。

为了创建适用于QuickSight的表格,数据必须从数组中解嵌套。

  1. 第一步是使用相关的Amazon Comprehend数据创建一个临时数据库:
CREATE TABLE temp AS
SELECT keyphrases, nested
FROM output
CROSS JOIN UNNEST(output.keyphrases) AS t (nested)
  1. 以下语句限制了至少三个单词的短语,并按短语的频率分组:
CREATE TABLE tableforquicksight AS
SELECT COUNT(*) AS count, nested.text
FROM temp
WHERE nested.Score > .9 AND 
 length(nested.text) - length(replace(nested.text, ' ', '')) + 1 > 2
GROUP BY nested.text
ORDER BY count desc

使用QuickSight可视化输出

最后,您可以从分析中创建可视化输出。

  1. 在QuickSight控制台上,选择新建分析
  2. 选择新建数据集
  3. 对于创建数据集,选择从新数据源创建
  4. 选择数据源为Athena
  5. 输入数据源名称,并选择创建数据源

  1. 选择可视化

确保QuickSight可以访问存储Athena表的S3存储桶。

  1. 在QuickSight控制台上,选择用户个人资料图标,然后选择管理QuickSight

  1. 选择安全性和权限
  1. 查找QuickSight访问AWS服务部分。

通过配置对AWS服务的访问权限,QuickSight可以访问这些服务中的数据。用户和组的访问可以通过选项进行控制。

  1. 验证Amazon S3被授予访问权限。

现在您可以创建词云。

  1. 可视类型下选择词云。
  2. 将文本拖动到按组分组,将计数拖动到大小

选择可视化中的选项菜单(三个点)以访问编辑选项。例如,您可能希望隐藏显示中的术语“其他”。您还可以编辑标题和副标题等项目。要将词云下载为PDF,请在QuickSight工具栏上选择下载

清理

为了避免产生持续的费用,删除在各自的服务控制台上未使用的数据、进程或资源。

结论

Amazon Comprehend使用自然语言处理(NLP)来提取关于文档内容的见解。它通过识别文档中的实体、关键短语、语言、情感和其他常见元素来开发见解。您可以使用Amazon Comprehend根据文档的结构创建新产品。例如,使用Amazon Comprehend,您可以扫描整个文档存储库以查找关键短语。

本文介绍了使用AWS工具和QuickSight从Amazon Comprehend构建词云以可视化文本内容分析的步骤。

让我们通过评论区保持联系!