发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

使用 Amazon Comprehend 检测客户评论的情绪

  • 2019-10-30
  • 本文字数:4289 字

    阅读完需:约 14 分钟

使用 Amazon Comprehend 检测客户评论的情绪

如今,公共内容之间的关联越来越密切。客户评论数据是深入了解消费相关决策的工具,企业若能准确把握其中的情绪,便获得了重要的市场情报,从而可以主动将问题扼杀在萌芽阶段。


情绪分析是通过计算来确定一段文字蕴含的情绪是正面、负面、中立还是各种情绪交织在一起的一种流程。Amazon Comprehend 是由多个 API 组成的自然语言处理 (NLP) 文本分析服务,这些 API 可用于检测情绪 (以及关键短语、命名实体和语言),并根据一组文档执行主题建模。该服务利用先进的深度学习算法检测情绪,这些算法采用评分机制和属性来评估文本。Amazon Comprehend 训练数据集主要包括产品描述中的数据以及来自世界上最大的自然语言集合之一 – Amazon.com 上的客户评论。我们为您提供经过全方位训练的模型,该模型会根据新数据反复进行训练,确保与语言发展保持同步。目前大部分数据工程师和开发人员都不具备使用 ML 所需的一般技能。Amazon Comprehend 填补了这一技能空缺,可让开发人员利用现有的技能轻松使用 NLP。


本博文将向您介绍在事件驱动型无服务器架构 (使用 AWS 服务构建) 中,如何使用 Amazon Comprehend 来检测客户情绪。

解决方案架构概览


我们来看看 Amazon.com 上的产品评论,并使用 Amazon Comprehend 来对给定评论进行情绪分类。我们以 Amazon Echo、Amazon Echo Dot 和 Amazon Echo Show 的评论为例。我们将上传其他伪造的示例数据 (尽量不损害品牌声誉),然后使用具有细微差别的信息来模拟检索与产品有关的负面情绪,例如,正在召回的有缺陷、受损或危险商品。最后,我们使用 Amazon Athena 对负面评论进行交互查询并导出报告,以便让企业立即采取措施。


评论上传:用户将文本格式的客户评论上传到“Customer Review”(客户评论) 存储桶。


客户评论情绪分析函数:将安全上传评论作为触发评论情绪分析函数的 Amazon S3 事件,以便将评论下载到临时文件,然后调用 Amazon Comprehend 针对该评论执行文本分析,接着将总体情绪连同正面、负面、中立和混合信心评分一起输出到 CSV 文件。包含情绪的 CSV 文件将存储在同一“Customer Review”(客户评论) 存储桶内的“sentiment”(情绪) 文件夹中。


交互式 SQL 查询:使用 Amazon Athena 查询评论结果并重点关注负面情绪。

分步配置

我们先部署 AWS CloudFormation 模板,以便预置与 Amazon S3、AWS Lambda 和 Amazon Comprehend API 进行交互所需的 AWS Identity and Access Management (IAM) 角色和 Lambda 函数。


col 1col 2col 3col 4


  | **_区域_**                     | **_区域代码_**      | **_启动_**                                                                                                                                                                                                                                                                                                                                      
复制代码


1 | 美国东部


(弗吉尼亚北部) | us-east-1 |



  1. 在 CloudFormation 控制台中,选择 Launch Stack (启动堆栈) 按钮 (如上方所示)。如果感兴趣,可以在此处查看 YAML 模板。

  2. 在“选择模板”页面上,选择下一步

  3. 在“指定详细信息”页面上,选择下一步

  4. 在“选项”页面上,保留所有默认设置,然后选择下一步

  5. 在“Review”(评论) 页面上,选中相应复选框,以便确认 CloudFormation 将创建 IAM 资源以及包含客户名称的 IAM 资源。

  6. 选择创建更改集


注意:我们提供的 CloudFormation 模板使用 AWS Serverless Application Model (AWS SAM) 编写而成。AWS SAM 可以简化无服务器应用程序的函数、API 等的定义方式,还可以简化这些服务的某些功能 (例如,环境变量) 的定义方式。在 CloudFormation 模板中部署 SAM 模板时,需要执行转换步骤来将 SAM 模板转换为标准 CloudFormation,因此,您必须选择“创建更改集”按钮才能执行该转换。


  1. 等待几秒钟,让更改集完成计算更改。您的屏幕应该会如下所示:

  2. 最后,选择执行,让 CloudFormation 启动后台的资源。您不必等待其完成即可继续执行下一步。

Amazon Simple Storage Service (S3) 存储桶事件触发器:

部署完 IAM 角色、Lambda 函数和 S3 存储桶之后,请务必为您的 Comprehend 情绪分析函数创建 S3 事件触发器。


  1. 打开 Amazon S3 控制台,选择以“review-sentiment”开头的新 S3 存储桶。

  2. 在“高级设置”部分下方选择属性,然后选中事件框。

  3. 选择 + Add notification (+ 添加通知),然后配置以下各项:

  4. 名称:SentimentAnalysis

  5. 事件:ObjectCreate (All)

  6. 后缀:.txt

  7. 发送到:Lambda 函数

  8. Lambda:review-sentiment-ComprehendSentimentAnalysis-XYZ

  9. 选择保存

S3 客户评论上传:

为了对使用案例进行说明,我们提取的是 Amazon Echo、Amazon Echo Dot 和 Amazon Echo Show 最上面的客户评论。我们将每条评论保存到文本文件中。


  1. 下载以下三条评论:

  2. review-B01DFKC2SO.txt

  3. review-B01J24C0TI.txt

  4. review-B0749WVS7J.txt


注意:Amazon 客户评论未经许可不得用于商业用途。在实施您的应用程序时,应当将此数据替换为您有权使用的数据源。


  1. 从控制台中选择您的 S3 存储桶,然后选择“添加”以添加各个评论文本文件,最后选择上传

  2. 刷新存储桶,然后验证存储桶中的以下输出:

  3. 注意:这是我们创建的事件驱动型无服务器架构。上传到我们 S3 存储桶的评论被视为一个事件,用于触发 Comprehend-SentimentAnalysis 函数,进而将情绪和情绪信心评分输出到 CSV 文件中,该文件位于 S3 存储桶的“sentiment”(情绪) 文件夹中。

  4. 选择一条评论,然后选择下载

  5. “我的兄弟 Robert 由于颈部以下多发性硬化症而瘫痪在床,卧病不起已经长达 30 多年,如今有了一个新朋友,这就是 Alexa!每当 Alexa 播放 70 年代的音乐,玩“Jeopardy”(危险边缘) 游戏,回答他的所有问题并且在每天早晨将他唤醒时,Robert 总是满含幸福的泪水。感谢 Amazon 为我卧病在床的兄弟带来安慰。”

  6. 选择 sentiment (情绪) 文件夹,并打开 CSV 文件查看其内容。

  7. “情绪”信息介绍文本的总体情绪以及以下每个标签的情绪评分:“Positive”(正面)、“Negative”(负面)、“Neutral”(中立) 及“Mixed”(混合)。所有这些情绪评分均通过 MXNet 深度学习模型返回,并显示为 0 到 1 之间的浮点值,其中 1 表示情绪标签为充满信心。例如,此 CSV 表示 Amazon Echo Dot 评论的总体情绪为“POSITIVE”(正面),正面情绪评分 (信心) 为 82%。

  8. 为了丰富我们的评论数据,请返回 S3 存储桶,并在此处从以下示例评论数据上传各个文本文件。


将每条评论上传到 S3 存储桶时,都会调用 Amazon Comprehend。由于 S3 上存储的评论数量不受限制,下一步就是要能够对这些评论进行查询,并找出对企业而言最重要的内容。在接下来的步骤中,我们将查询 S3 中现有的评论,然后过滤出负面评论。

使用 Amazon Athena 进行交互查询

我们将进一步深化此操作:按负面情绪从强到弱的顺序,使用 SQL 语句对所有评论进行排序。通过此查询,企业可以准确了解从何处着手并明智地安排周期。


Athena 控制台中,运行以下命令以在默认数据库中创建 Athena 表。 重要提示:请将 <bucket_name> 替换为之前创建的 S3 存储桶。


SQL


CREATE EXTERNAL TABLE IF NOT EXISTS default.ReviewSentimentAnalysis (  `ImageLocation` string,  `Timestamp` string,     `Sentiment` string,  `Positive` string,  `Negative` string,  `Neutral` string,  `Mixed` string  )ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'WITH SERDEPROPERTIES (  'serialization.format' = ',',  'field.delim' = ',') LOCATION 's3://<bucket_name>/sentiment/'
复制代码



表成功创建后,请将以下 SQL 语句复制粘贴到编辑器中。 选择 Run Query (运行查询)。


SQL


SELECT * FROM default.ReviewSentimentAnalysis WHERE sentiment='NEGATIVE'ORDER BY negative DESC
复制代码


结论

总而言之,Amazon Comprehend 可以快速识别发生变化的观点以及总体情绪,让您能够深入了解客户反馈,从而减少了解客户所需的时间和精力。此外,这也提供了一个立即采取相应措施的机会,以便满足客户不断变化的需求。


训练 NLP 不仅很困难,而且成本也非常昂贵。获取真实情绪的过程存在诸多障碍,例如,在对话不连贯、挖苦和讽刺时语言含义模糊不清,在使用表情符号的象征性表达中,仅捕获文本无法进行分析。所有这些障碍使得情绪更难以理解,因此,可能会影响所得到的结果的质量。 即使采用大型非结构化情绪富文本数据集和适当的分析方法,要想成功预测客户需求或对其作出反应,也需要做出大量的努力。这要求企业拥有相应的技能和专业知识来构建有效的机器学习 (ML) 模型,并在模型中包含可用来训练准确的情绪分类器的优化算法,然后运用 ML 技术来进一步降低系统不准确性,同时通过连续的反馈循环不断改进该模型。


Amazon Comprehend 将数据科学家需要执行的无差异繁重工作进行了抽象化,让您能够轻松将该服务集成到您的应用程序或分析解决方案中。此外,您还可以在 AWS 上一次查询几百万条评论,然后仅显示相关信息。可通过多种我们使用案例以外的方式来收集文字信息,例如,通过 Amazon Kinesis 或者 Amazon CloudWatch 中的计划事件实时提取数据。此外,提取并分析情绪之后,还可以洞察文本数据的其他很多方面。例如,您可以将数据的新字符串加载到数据仓库 (例如,Amazon Redshift) 中,在 Amazon QuickSight 等商业智能 (BI) 工具中查看该数据,或者将负面情绪评论复制到某个 S3 存储桶,以便触发我们的 Simple Notification Service (SNS) 以通知您的客户服务团队。


所有这些操作均在无服务器架构中执行,因此无需服务器即可编写和运行代码。归根结底,业务逻辑应该是您需要编写的唯一代码。我们将一如既往地继续以真正敏捷的方式对我们的模型进行迭代。请继续为我们提供反馈。现在充分发挥您的想象力,在 AWS 上尽情构建吧!



补充阅读

了解如何使用包括 Amazom Comprehend 和 Amazon Quicksight 在内的 Amazon ML 服务构建社交媒体控制面板



作者介绍:



Todd Escalona 是一名解决方案架构师,他致力于向企业客户以及在初创社区中推广 AWS 云,同时通过聆听客户心声来了解客户目标,并以此为出发点来进行反向营销。他会确定需求,围绕具体使用案例提供架构指导,并且协助他人设计可扩展、可靠且性能高的应用程序和服务。他对各种各样的技术感兴趣,例如,人工智能、机器学习以及事件驱动型无服务器架构。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/detect-sentiment-from-customer-reviews-using-amazon-comprehend/


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-10-30 08:00564

评论

发布
暂无评论
发现更多内容

面试官:什么是死锁?怎么排查死锁?怎么避免死锁?

小林coding

多线程 操作系统 死锁

需求分析是什么?

Simon

架构实战营

LiteOS内核源码分析:任务栈信息

华为云开发者联盟

LiteOS 任务栈 栈指针 LOS_StackInfo LOS_Task

答题拿奖两不误:华为云知乎金牌答题官,就是你!

华为云开发者联盟

程序员 华为云 知乎答题 答案 金牌答题官

一周信创舆情观察(3.22~3.28)

统小信uos

当 ITOA 遇上 Cloud Alert,企业可以至少每年节省 3600 小时!

睿象云

智能告警

华为帐号服务学习笔记(一):什么是HMS,什么是华为帐号服务

Coding狙击

android HMS

零代码实现一对一表关系和无限主子表级联保存

crudapi

API crud crudapi 主子表 多对多

2021年企业需要了解的和云计算相关的6大趋势

浪潮云

云计算

Uniswap v3揭开真面目NA公链(Nirvana)NAC公链表示不服

区块链第一资讯

有了人工智能技术,告警管理会发生什么变化?

睿象云

人工智能 事件管理

Java-技术专题-Synchronized锁的分析

洛神灬殇

Java synchronized

年纪轻轻,为什么要搞中间件开发?“路怎么走,让你们自己挑”

小傅哥

Java 分布式 小傅哥 中间件 架构设计

有道云笔记新版编辑器架构设计(下)

有道技术团队

架构 大前端

INTERSPEECH2020 语音情感分析论文之我见

华为云开发者联盟

数据处理 模型 音频 语言情感分析 INTERSPEECH2020

阿里云:城市大脑数据智能解决方案

不脱发的程序猿

大数据 阿里云 城市大脑 数据智能解决方案 4月日更

gorm源码阅读之callback

werben

Go 语言 gorm

节能降耗——搭建绿色IDC能耗与管控系统

一只数据鲸鱼

物联网 数据中心 数据可视化 IDC 机房管理

RTC技术干货 | 音频质量评价体系那些事

拍乐云Pano

音视频 WebRTC RTC 3A算法 音频

ZooKeeper 会话的秘密

HelloGitHub

Java zookeeper ZooKeeper原理 zk

Rust从0到1-所有权-概念介绍

rust 所有权

统一元数据,数据湖Catalog让大数据存算分离不再是问题

华为云开发者联盟

大数据 元数据 存算分离 华为云MRS 数据湖Catalog

【LeetCode】笨阶乘Java题解

Albert

算法 LeetCode 4月日更

一文掌握GaussDB(DWS) SQL进阶技能:全文检索

华为云开发者联盟

sql 全文检索 华为云 GaussDB(DWS) 字段

RUOYI 框架教程 12| 若依视图解决多表查询,就是这么简单!

Java_若依框架教程

Java 技术 Ruoyi 框架 若依

AIOps 让「事件管理」变得更加智能

睿象云

AIOPS 告警管理

华为帐号服务学习笔记(二):OAuth2.0协议详解

Coding狙击

android 华为 OAuth 2.0 HMS

Apache Flink Meetup · 上海站,超强数据湖干货等你!

Apache Flink

flink 数据湖 iceberg

FloydHub 2020年最佳机器学习书籍之一《可解释机器学习》中文版来啦!

博文视点Broadview

微众银行区块链开源基于Rust的Wasm合约语言框架Liquid

Patract

智能合约 rust polkadot Patract Wasm

无人驾驶平台,让IT没有难做的测试

鲸品堂

方法论 无人驾驶

使用 Amazon Comprehend 检测客户评论的情绪_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章