PaddleNLP开源基于UIE的情感分析,解决小样本难题,助力客户意见洞察与舆情分析!

news2024/11/17 15:36:02

情感分析(Sentiment Analysis)是近年来国内外研究的热点,旨在对带有情感色彩的主观性文本进行分析、处理、归纳和推理。情感分析具有广泛的应用场景,可被应用于消费决策、舆情分析、个性化推荐等领域。
情感分析任务示意

如上图所示,情感分析涉及句子级情感极性分类、属性抽取、观点抽取、属性级情感极性分类等多项情感任务。近期,PaddleNLP基于通用信息抽取技术UIE开源的情感分析能力覆盖以上基础功能,且解决了属性聚合和隐性观点抽取难题,并提供情感分析结果可视化能力,帮助用户快速分析业务数据。此外,基于UIE的技术方案小样本能力强悍 ,仅需标注几条数据即可获得大幅效果提升。

项目地址
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/sentiment_analysis/unified_sentiment_extraction

多位开发者已使用这部分能力。例如,某车企研发了汽车领域客户意见洞察和舆情分析系统。UIE方案相对于其之前采取的双向循环神经网络+序列标注思路,通过更少的数据量、更低的机器成本,获取了更精准的效果。
黑蚁资本评论洞察系统部分功能

专注于消费领域的投资机构黑蚁资本,通过产业经验和产业资源支持所投资的企业。其基于PaddleNLP情感分析技术研发了评论洞察系统——哈勃舆情,供美妆、配饰、保健食品、酒水饮料、服装、数码电器等多个领域、多家线上电商品牌以及线下餐饮品牌使用。其通过细颗粒度的评论分析模型,帮助品牌高效深入地了解用户,从反馈中自动抽取出高价值信息,实现量化统计分析,持续优化产品和服务。

本文将详解情感分析任务难点以及基于UIE的情感分析技术方案和使用方式。全文2400字,预计需要2分钟。

情感分析任务三大挑战

挑战一:在情感分析任务中,某一应用场景可能会涉及多项相关子任务。传统做法往往会针对每个子任务单独训练相应模型,最终将多个模型预测结果进行合并,从而获得最终结果,该流程耗时耗力。

挑战二:不同领域、不同场景下的数据差异较大,导致针对某一应用场景训练的模型无法有效迁移到其他应用场景,往往需要使用大量数据重新训练。

挑战三:文本评论中往往会出现多个属性和观点词,有些属性可能会有多种说法,有些观点词甚至没有明确提到对应的属性,需要将不同的属性和观点词信息正确识别并匹配。

基于UIE的情感分析技术方案

传统技术方案通常是对多个任务分阶段进行。例如,针对“蛋糕外观很漂亮”进行属性级情感分析任务,目标是抽取<属性,观点词,情感极性>三元组,即<外观,漂亮,积极>三元组。传统方案下,第一阶段需要通过序列标注思路、抽取属性和观点词。第二阶段通过文本分类思路,实现属性级情感分析。在每一阶段需要单独训练一个模型,最终将每个阶段的模型预测结果进行合并获得最终结果,模型的开发、训练、部署成本都很高。此外,各个任务、各个模型单独训练,使得模型无法在不同任务或场景中获得较好的迁移能力。
传统方案 vs 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开放能力
百度大脑全面开放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】公众号,获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移位操作符、位操作符,原码、反码、补码

整数的二进制的表达形式有3种。原码反码补码下面我们举一个例子吧十进制的2原码&#xff1a;00000000000000000000000000000010&#xff08;常见的形式&#xff09;反码&#xff1a;00000000000000000000000000000010补码&#xff1a;00000000000000000000000000000010小结 正整…

k8s集群部署02

k8s集群部署02k8s集群部署02仍然报错若镜像拉取过慢原因k8s集群部署02 一、pod基本操作Pod是可以创建和管理Kubernetes计算的最小可部署单元&#xff0c;一个Pod代表着集群中运行的一个进程&#xff0c;每个pod都有一个唯一的ip。一个pod类似一个豌豆荚&#xff0c;包含一个或…

Hack the Box CTF 比赛 简单难度 XOR 密码学题目 Crypto 流程| Multikey Walkthrough

这是近期参加HTB夺旗战时遇到的一道难度为简单的密码学Crypto题目。但是我觉得挺有意思&#xff0c;就做下记录。 1. 题目&#xff1a; 题干没有太多的内容&#xff0c;就是一段python程序&#xff0c;和一个output的加密结果&#xff0c;如下。 Python&#xff1a; import …

【数据结构】手推堆实现,拳打堆排序,脚踩Top-k

目录一.完全二叉树的顺序结构二.堆的概念及结构三.堆的实现1.堆向下调整2.向下调整建堆3.向下调整建堆时间复杂度4.堆的插入&#xff08;向上调整&#xff09;5.向上调整建堆6.向上调整建堆时间复杂度7.堆的删除8.堆的代码实现四.Top-K问题五.堆排序一.完全二叉树的顺序结构 堆…

GPIO实验

一、GPIO简介 GPIO&#xff08;General-purpose input/output&#xff09;即通用型输入输出&#xff0c;GPIO可以控制连接在其之上的引脚实现信号的输入和输出 芯片的引脚与外部设备相连&#xff0c;从而实现与外部硬件设备的通讯、控制及信号采集等功能 实验步骤1. 通过电路…

第十七讲:神州三层交换机DHCP服务器配置

DHCP是基于Client&#xff0d;Server模式的协议&#xff0c;DHCP客户机向DHCP服务器索取网络地址及配置参数&#xff1b;服务器为客户机提供网络地址及配置参数&#xff1b;当DHCP客户机和DHCP服务器不在同一子网时&#xff0c;需要由DHCP中继为DHCP客户机和DHCP服务器传递DHCP…

java企业通知小程序微信消息推送小程序企业消息通知系统网站源码

简介 本系统主要是利用小程序和springboot开发的企业分组消息推送&#xff0c;主要是员工关注小程序&#xff0c;由分组领导创建消息主体并设置消息提醒时间&#xff0c;利用微信的消息模板对选定的员工进行消息提醒推送。比如公司的技术部需要在11月3号早上8点举行晨会&#…

【Java编程进阶】面向对象思想初识

推荐学习专栏&#xff1a;Java 编程进阶之路【从入门到精通】 文章目录1. 面向对象初识2. 类和对象2.1 类的定义2.2 对象的创建和使用3. 构造方法4. 方法重载5. static 关键字5.1 static 方法5.2 static 变量6. 对象的引用和 this7. 总结1. 面向对象初识 之前我们学习了 C 语言…

P2367 语文成绩和P5542 Painting The Barn S(一维和二维差分)

目录 前言 一、P2367 语文成绩 二、P5542 Painting The Barn S 前言 图文详解一维差分 图文详解二维差分 一、P2367 语文成绩 题目背景&#xff1a; 语文考试结束了&#xff0c;成绩还是一如既往地有问题。 题目描述&#xff1a; 语文老师总是写错成绩&#xff0c;所以当…

关于C语言中内存分配

一、static在C语言里面可以用来修饰变量&#xff0c;也可以用来修饰函数。 1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、栈和堆里。 其实我们平时所说的堆栈是栈而不是堆&#xff0c;不要弄混。 例如&#xff1a;在file.c中 int a ; int main() { int b…

如何在 Python 中自动化处理 Excel 表格?

考虑一个场景&#xff0c;要求在网站上为 30,000 名员工创建一个帐户。手动重复执行此任务会非常枯燥乏味。此外&#xff0c;这将花费太多时间&#xff0c;这不是一个明智的决定。 现在想象一下从事数据输入工作的员工的生活。他们的工作是从 Excel 表格中获取数据并将其插入其…

CSS 实现灯笼动画,祝大家元旦快乐

前言 &#x1f44f;CSS 实现大红灯笼动画&#xff0c;祝大家元旦快乐&#xff0c;2023越来越棒&#xff01;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义一个灯笼的背景色bg&#xff0c;线条颜色lineColor :root …

数字时代下, 企业如何保证数据的安全

随着全球数字化进程的蓬勃发展&#xff0c;在互联网时代下技术和数据深度融合的数字经济模式为许多行业带来了更大创收。数据也已经成为了五大核心生产要素之一&#xff0c;驱动着国家、社会、企业全方位高速发展。“迎接数字时代&#xff0c;激活数据要素潜能&#xff0c;推进…

四、 Spring-MVC

MVC MVC &#xff1a;Model View Controller&#xff0c;是模型(model)&#xff0d;视图(view)&#xff0d;控制器(controller)的缩写&#xff0c;一种软件设计规范。本质上也是一种解耦。 Model&#xff08;模型&#xff09;是应用程序中用于处理应用程序数据逻辑的部分。通常…

使用CLIP构建视频搜索引擎

CLIP(Contrastive Language-Image Pre-training)是一种机器学习技术&#xff0c;它可以准确理解和分类图像和自然语言文本&#xff0c;这对图像和语言处理具有深远的影响&#xff0c;并且已经被用作流行的扩散模型DALL-E的底层机制。在这篇文章中&#xff0c;我们将介绍如何调整…

再获权威认可 百分点科技入选Forrester AI/ML平台主流供应商

近日&#xff0c;全球领先的研究和咨询公司Forrester发布了2022年第四季度中国AI/ML&#xff08;人工智能/机器学习&#xff09;平台报告《The AI/ML Platform Landscape In China, Q4 2022》&#xff0c;系统分析了AI/ML平台市场的业务价值、市场成熟度及市场动态&#xff0c;…

python基础语法24-多线程实操

上一节说了多线程的理论知识,今天来实际操作一下。 1.创建线程 python中有2中方法创建线程,分别为函数和类继承 (1).使用函数来创建线程 调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下: _thread.start_new_thread ( function, args[, kwargs] ) 参数说…

保护小程序,防止反编译:打造不怕反编译的小程序

保护小程序&#xff0c;防止反编译 打造不怕反编译的小程序 这几年,小程序、小游戏&#xff0c;非常火。 业内人都知道&#xff0c;小程序或小游戏&#xff0c;就是H5应用&#xff0c;就是htmlJS。这类应用&#xff0c;反编译很容易&#xff0c;网上就有很多方法教程。 对小…

我坦白→低代码功能我有,SQL练习题、数据可视化、数据填充助你高效

简介 今天勇哥看了一下群里的聊天信息&#xff0c;大家都在说低代码平台&#xff0c;见大家对于低代码这么热衷的情况下&#xff0c;勇哥也不藏着掖着了&#xff0c;先放几个低代码功能出来&#xff0c;给大家玩一玩&#xff0c;更多的功能敬请期待。 帮勇哥投个票&#xff1…

Docker进阶 — 一文掌握Docker基础

Docker进阶 — 一文掌握Docker基础 文章目录Docker进阶 --- 一文掌握Docker基础一、初识 Docker1. 什么是Docker2. Docker架构3. DockerHub4. Docker运行模式5. Docker和虚拟机的区别二、Docker 的安装1. Linux安装Docker2. Window 安装Docker环境配置1. 开启 Hyper-V服务2. 安…