基于 Amazon Comprehend 的文本 分析开发实践 奚文俊,AWS 技术客户经理 Wenjun Xi, Technical Account Manager, Amazon Web Services 2018 年 5 月 15 日 May 15, 2018
自然语言处理的趋势
自然语言处理的研究方向 语法语义 分析 对话系统 信息抽取 问答系统 自然语言处 理 文本挖掘 信息检索 机器翻译
自然语言处理场景无处不在 公众公开的内容 社交媒体 新闻 客户 Engagement 产品评论 产品支持 ( 电话 电子邮件 反馈 )
自然语言处理模型训练的挑战 数据标注 数据准备 清洗 转换 训练模型 评估调参 再训练 NLP 模型 部署模型
Amazon Comprehend
Amazon Comprehend: 自然语言处理 情感实体语言关键短语主题建模 基于深度学习
文本分析 N a m e d E n t i t i e s A m a z o n. c o m : O r g a n i z a t i o n S e a t t l e, W A : L o c a t i o n J u l y 5 t h, 1 9 9 4 : D a t e J e f f B e z o s : P e r s o n A m a z o n. c o m, I n c. i s l o c a t e d i n S e a t t l e, W A a n d w a s f o u n d e d J u l y 5 t h, 1 9 9 4 b y J e f f B e z o s. O u r c u s t o m e r s l o v e b u y i n g e v e r y t h i n g f r o m b o o k s t o b l e n d e r s at g r e a t p r i c e s K e y p h r a s e s O u r c u s t o m e r s b o o k s b l e n d e r s g r e a t p r i c e s S e n t i m e n t P o s i t i v e L a n g u a g e E n g l i s h
主题分类 主题关键词 Topic Term Weight 0 Washington.89 1 Silicon Valley.67 2 Roasting.91 文档按主题归类 Document Topic Proportion Doc.txt 0.89 Doc.txt 1.07 Doc.txt 2.04
常见使用场景 客户反馈分析 实时分析客户对于贵公司品牌 产品和服务的情绪 基于情感的搜索 让您的搜索功能更智能 : 基于关键短语 情感和主题 知识发现和管理 根据主题来管理文本 / 文档, 个性化内容推荐
如何使用 Amazon Comprehend
API 概览 Synchronous DetectDominantLanguage BatchDetectDominantLanguage DetectEntities Batch DetectEntities DetectKeyPhrases Batch DetectKeyPhrases DetectSentiment Batch DetectSentiment 检测语言, 可以检测 100 种语言 检测命名实体, 比如人名 地点 组织等 检测能表征文本内容特点的关键名词短语 检测文本所表示的情感 : 正面 负面 混合 ( 正面负面皆有 ) 中性 Asynchronous StartTopicDetection ListTopicDetection DescribeTopicDetection 开始主题分类任务 列举所有您提交的主题分类任务 获取主题分类任务的状态等信息
Comprehend 和 AWS 服务结合 Articles, Documents Amazon S3 Amazon ES Amazon Redshift Amazon Aurora 语意搜索 丰富的过滤 通过 Grouping 来分析趋势 通过 Joining 来关联查询 Social Media, Support Amazon Kinesis Amazon Comprehend Amazon EMR Clustering Graph, Search Amazon Transcribe
演示 : 近实时电影评论分析仪表盘
仪表盘概览
整体架构 Amazon Comprehend review-stream 用户评论 Amazon Kinesis Data Firehose AWS Lambda Amazon ES Kibana entity-stream Amazon S3 Amazon Kinesis Data Firehose
设计要点 为什么用到两个 Kinesis Firehose? 需求 : 点击 Dashboard 中的一个视图, 其他视图相应作过滤 Entity Type: PERSON
设计要点 设计一 : 使用 nested 类型 Kibana 目前不支持复合字段的聚合查询 https://www.elastic.co/guide/en/kibana/current/nested-objects.html
设计要点 设计二 : 命名实体文本和类型作为两个 List 缺陷 : 命名实体文本和类型之间的关联丢失 无法通过类型来过滤命名实体
设计要点 设计三 : 增加一个字段 doc_type 用来区分文档类型 : doc: 该文档包含 entity name 和 type 两个 List entity: 每个 entity 作为一个独立文档
设计要点 使用 Comprehend 批量 API 提升吞吐量, 一次分析 25 条文本
动手实践 Blog https://aws-blogs-prod.amazon.com/china/realizing-near-real-time-textsentiment-analysis-with-aws-comprehend/ 相关资源 代码 :https://github.com/gddezero/realtime-text-analysis 数据集 : http://ai.stanford.edu/~amaas/data/sentiment/aclimdb_v1.tar.gz
演示 : 文本主题分类
输入数据 One document per file One document per line
输出结果和 IAM role
查看任务运行状态和结果
查看任务运行状态和结果 Topic ID 占比 权重
免费试用 现已在如下区域可用 US East (N. Virginia) US East (Ohio) US West (Oregon) EU (Ireland) 免费试用额度 命名实体识别 情绪分析 关键短语抽取 语言检测 每月 50K 文本单位 (5M 字母 ) 主题模型 每月 5 个任务 ( 每个任务最多 1MB)
Thank You!