使用 Amazon Comprehend 实现自然语言处理 - 情感分析与实体提取的活用
详解 Comprehend 的情感分析、实体提取以及自定义分类模型的构建。
Comprehend 概述
Comprehend 是提供自然语言处理(NLP)API 的服务,支持的语言因功能而异。输入文本后,返回情感分析、实体提取、关键短语提取、语言检测和句法分析的结果。无需机器学习专业知识即可将 NLP 功能集成到应用程序中。通过自定义分类模型和自定义实体识别,还可应对行业特定的文本分类。内部使用基于迁移学习的预训练模型,即使使用少量标注数据也能构建自定义模型。
情感分析与自定义模型
情感分析 API 将文本情感判定为 Positive、Negative、Neutral、Mixed 四个类别,并返回各类别的置信度分数。可用于电商网站的评论分析和呼叫中心的通话文本分析。自定义分类通过准备带标签的训练数据,构建按行业特定类别对文本进行分类的模型。支持多类分类(每文档一个标签)和多标签分类(每文档多个标签),接受 CSV 或增强清单格式的训练数据。在 CSV 格式的多类分类中,训练每类最少需要 50 个文档。PII 检测自动检测文本中的个人信息并进行脱敏处理。
PII 检测与实时分析
Comprehend 的 PII 检测 API 自动检测文本中的个人信息(姓名、地址、电话号码、电子邮件地址、信用卡号、社会保障号),返回位置信息和置信度分数(支持的语言为英语和西班牙语)。ContainsPiiEntities API 判断是否包含 PII,DetectPiiEntities API 确定具体位置。创建实时分析端点后,可使自定义分类模型或自定义实体识别模型持续运行,通过 API 调用获取推理结果。异步批处理作业可批量处理 S3 上的大量文档,将结果输出到 S3。Comprehend Medical 专门针对医疗文本,提取药品名、疾病名和手术名。
设计最佳实践与陷阱
将 Comprehend 集成到生产环境时,需注意几个设计要点。首先,同步 API 采用动态限流(在处理能力有余量时逐步增加处理的请求数),处理高流量时可考虑切换到批处理或通过 Service Quotas 申请配额提升。其次,情感分析和句法分析的同步 API 每文档上限为 5 KB,长文档分成多个块发送。在句子边界处分割,可避免分析在句子中间被截断的片段。自定义模型运维中,Flywheel 是一种重新训练的机制。Flywheel 自动监控模型性能,在精度下降时使用新数据执行重新学习。此外,实时端点从启动到删除期间持续计费,请求频率较低时,也可考虑从 Lambda 启动异步作业的架构。
与其他服务的比较
除 Comprehend 外,NLP 实现方式还包括使用 SageMaker 构建自定义模型和通过 Bedrock 使用大语言模型(LLM)。Comprehend 作为预构建的 NLP API 容易上手,适合情感分析和实体提取等标准任务。SageMaker 具有微调 Hugging Face Transformers 模型等高自由度,但需要管理训练基础设施和模型托管。Bedrock 的 LLM 仅通过提示即可实现零样本分类。决策指南:需要高吞吐量的标准 NLP 任务选择 Comprehend,需要自定义损失函数或架构选择 SageMaker,少量灵活分类任务选择 Bedrock。此外,Comprehend 可与 AWS 服务(S3、Lambda、Kinesis)组合使用,并可通过 IAM 实现细粒度访问控制。
Comprehend 的费用体系
Comprehend 按 API 调用的字符数计费。情感分析、实体提取、关键短语提取以 100 字符为 1 个单位计算,每个请求最低 3 个单位(300 字符)。自定义模型训练按小时费率计费(按秒计费),实时端点按推理单元数(每个单元每秒处理 100 字符)和运行时间计费。异步处理按字符数计费,实时端点的费用则取决于运行时间。在流量较少的时段删除端点并切换为异步作业,该时段就不会产生端点运行时间的费用。可通过 Comprehend Flywheel 组织模型持续改进的流程。
总结
Comprehend 是通过 API 提供情感分析、实体提取、PII 检测等 NLP 功能的服务。通过自定义分类模型应对行业特定的文本分类,通过批处理和实时端点处理多样的分析工作负载。Comprehend Medical 还支持医疗文本中药品名和疾病名的提取。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。