情感分析(Sentiment Analysis)是近年来国内外研究的热点,旨在对带有情感色彩的主观性文本进行分析、处理、归纳和推理。情感分析具有广泛的应用场景,可被应用于消费决策、舆情分析、个性化推荐等领域。
如上图所示,情感分析涉及句子级情感极性分类、属性抽取、观点抽取、属性级情感极性分类等多项情感任务。近期,PaddleNLP基于通用信息抽取技术UIE开源的情感分析能力覆盖以上基础功能,且解决了属性聚合和隐性观点抽取难题,并提供情感分析结果可视化能力,帮助用户快速分析业务数据。此外,基于UIE的技术方案小样本能力强悍 ,仅需标注几条数据即可获得大幅效果提升。
项目地址
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/sentiment_analysis/unified_sentiment_extraction
多位开发者已使用这部分能力。例如,某车企研发了汽车领域客户意见洞察和舆情分析系统。UIE方案相对于其之前采取的双向循环神经网络+序列标注思路,通过更少的数据量、更低的机器成本,获取了更精准的效果。
专注于消费领域的投资机构黑蚁资本,通过产业经验和产业资源支持所投资的企业。其基于PaddleNLP情感分析技术研发了评论洞察系统——哈勃舆情,供美妆、配饰、保健食品、酒水饮料、服装、数码电器等多个领域、多家线上电商品牌以及线下餐饮品牌使用。其通过细颗粒度的评论分析模型,帮助品牌高效深入地了解用户,从反馈中自动抽取出高价值信息,实现量化统计分析,持续优化产品和服务。
本文将详解情感分析任务难点以及基于UIE的情感分析技术方案和使用方式。全文2400字,预计需要2分钟。
情感分析任务三大挑战
挑战一:在情感分析任务中,某一应用场景可能会涉及多项相关子任务。传统做法往往会针对每个子任务单独训练相应模型,最终将多个模型预测结果进行合并,从而获得最终结果,该流程耗时耗力。
挑战二:不同领域、不同场景下的数据差异较大,导致针对某一应用场景训练的模型无法有效迁移到其他应用场景,往往需要使用大量数据重新训练。
挑战三:文本评论中往往会出现多个属性和观点词,有些属性可能会有多种说法,有些观点词甚至没有明确提到对应的属性,需要将不同的属性和观点词信息正确识别并匹配。
基于UIE的情感分析技术方案
传统技术方案通常是对多个任务分阶段进行。例如,针对“蛋糕外观很漂亮”进行属性级情感分析任务,目标是抽取<属性,观点词,情感极性>三元组,即<外观,漂亮,积极>三元组。传统方案下,第一阶段需要通过序列标注思路、抽取属性和观点词。第二阶段通过文本分类思路,实现属性级情感分析。在每一阶段需要单独训练一个模型,最终将每个阶段的模型预测结果进行合并获得最终结果,模型的开发、训练、部署成本都很高。此外,各个任务、各个模型单独训练,使得模型无法在不同任务或场景中获得较好的迁移能力。
UIE采用统一的Prompt形式建模,实现了实体抽取、关系抽取、事件抽取、情感分析等任务的统一建模,使得模型可以使用大量的精标注数据进行多任务训练,融合不同任务的底层知识,从而在各类场景上都获得了惊艳的零样本及少样本迁移能力。同时,由于UIE支持多种类型的任务,因此也不再需要针对每个任务单独训练模型。
实验1
PaddleNLP情感分析方案以UIE为训练底座,在大量情感分析数据集上进一步训练,增强了模型对于情感知识的处理能力。下表展示了通用UIE模型uie-base和情感知识增强的UIE模型uie-senta-base在属性级情感分析任务上的效果对比。在情感分析任务上,更推荐使用uie-senta-base。
实验2
为了满足精度-性能兼顾的需求,PaddleNLP开源出了多种规模的模型,供大家选择。以下为各个模型在1w条属性、观点抽取数据集上的效果对比。
实验3
与PaddleNLP中早期开源的基于SKEP的两阶段式情感分析方案对比,在2w条属性级情感分析数据集上进行测试,基于UIE的方案显著优于两阶段式方案,这得益于UIE模型对于多任务数据的充分利用。
在小样本情况下,UIE的优势更加突出。在家电、服装、餐饮评论数据集上测试,仅标注5条样本,F1值平均可提升10个点。而传统预训练模型-微调范式下,5条样本是远远不足以支撑训练的。
功能介绍
覆盖句子级、属性级丰富功能,支持分析结果可视化
覆盖语句级情感分析、属性级情感分析、属性与观点抽取等基础能力。并提供可视化分析能力,打通从输入数据到情感分析结果可视化流程,助力用户更加快速获取情感分析结果,聚焦于业务分析。
解决同义属性聚合、隐性观点词抽取难题
支持用户结合业务深度定制,进一步定制情感分析能力,加强模型属性聚合和隐性观点抽取能力。如下图所示,在针对属性"价格"的情感信息抽取中。
**同义属性聚合:**无论语料中出现的属性是"价格"还是"价钱",都可以把对应的情感信息正确抽取出来,达到属性聚合的目的;
**隐性观点词抽取:**即便语料中缺失了"价格"相关的属性词,只有对应的观点词,也可以将对应的情感信息抽取出来,从而实现隐性观点抽取。
支持开箱即用、二次开发
开箱即用:打通Taskflow使用流程,几行代码获取分析结果,并进行直观可视化
使用paddenlp.Taskflow几行代码即可使用情感信息抽取能力。
from paddlenlp import Taskflow
# Aspect Term Extraction
schema = ["评价维度"]
# Aspect - Opinion Extraction
schema = [{"评价维度":["观点词"]}]
# Aspect - Sentiment Extraction
schema = [{"评价维度":["情感倾向[正向,负向,未提及]"]}]
# Aspect - Sentiment - Opinion Extraction
schema = [{"评价维度":["观点词", "情感倾向[正向,负向,未提及]"]}]
senta = Taskflow("sentiment_analysis", model="uie-senta-base", schema=schema)
senta('蛋糕味道不错,店家服务也很热情')
定制模型:打通Label Studio标注—微调训练—部署—结果可视化全流程
考虑到用户进行情感分析时,往往聚焦于某个特定场景或领域。为满足用户更高的情感分析精度要求,PaddleNLP打通Label Studio数据标注平台,提供了情感数据标注、模型微调、部署和可视化的全流程解决方案示例,轻松上手定制流程。
前往官网,了解详细使用方法
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/sentiment_analysis/unified_sentiment_extraction
实践教程
https://aistudio.baidu.com/aistudio/projectdetail/5318177
更多情感分析相关能力介绍
百度大脑全面开放AI领先能力,包括语音识别、文字识别、语言与知识等近1400项场景化能力、飞桨企业版EasyDL和BML、智能对话定制平台UNIT、AI学习与实训社区AI Studio及实现算法与硬件深度整合的软硬一体产品度目等。其中情感倾向分析、评论观点抽取、对话情绪识别等场景化能力深受用户欢迎,已经落地到千行百业。
欢迎前往平台官网了解详情
https://ai.baidu.com/tech/nlp_basic
开源项目地址
GitHub
https://github.com/PaddlePaddle/PaddleNLP
Gitee
https://gitee.com/paddlepaddle/PaddleNLP
飞桨公众号后台回复关键词:PaddleNLP,获取更多学习资料包。
关注【飞桨PaddlePaddle】公众号,获取更多技术内容~