学习跨度级交互以提取方面情感三元组
方面情感三元组
方面情感三元组(Aspect Sentiment Triplet)是一种在情感分析中使用的结构,它包含三个部分:方面目标(Aspect Target)、情感(Sentiment)和对应的观点词(Opinion Term)。
-
方面目标:这是评论或观点的主题,例如在产品评论中,方面目标可能是“电池寿命”、“屏幕大小”等。
-
情感:这是对方面目标的情感倾向,通常分为正面、负面和中性。
-
观点词:这是表达对方面目标情感的词或短语。
传统的方面情感三元组提取方法
通常包括以下步骤:
-
方面术语提取(Aspect Term Extraction, ATE):这一步骤的目标是从文本中识别出方面目标。这通常通过命名实体识别(NER)或者依赖句法分析的方法来实现。
-
观点术语提取(Opinion Term Extraction, OTE):这一步骤的目标是从文本中识别出观点词。这也通常通过NER或者依赖句法分析的方法来实现。
-
情感分类(Sentiment Classification):这一步骤的目标是确定观点词对应的情感倾向,通常分为正面、负面和中性。这可以通过情感词典、机器学习或深度学习方法来实现。
-
方面-观点配对(Aspect-Opinion Pairing):这一步骤的目标是确定哪个观点词对应哪个方面目标。这通常通过依赖句法分析的方法来实现,例如,观点词和方面目标可能在同一句子中,并且在依存关系图中相互靠近。
传统提取方法的例子
假设我们有以下的评论:“我喜欢这部手机的电池寿命,但屏幕太小。”
-
方面术语提取(Aspect Term Extraction, ATE):在这个评论中,我们可以识别出两个方面目标:“电池寿命”和“屏幕”。
-
观点术语提取(Opinion Term Extraction, OTE):我们可以识别出两个观点词:“喜欢”和“太小”。
-
情感分类(Sentiment Classification):对于观点词“喜欢”,我们可以将其分类为正面情感;对于观点词“太小”,我们可以将其分类为负面情感。
-
方面-观点配对(Aspect-Opinion Pairing):通过分析句子结构,我们可以确定“喜欢”这个观点词是对“电池寿命”这个方面目标的,而“太小”这个观点词是对“屏幕”这个方面目标的。
因此,我们可以提取出两个方面情感三元组:(“电池寿命”,“喜欢”,正面)和(“屏幕”,“太小”,负面)。
这篇论文的创新点
跨度级交互
跨度级交互(Span-level Interactions)是一种处理文本数据的方法,它不仅仅关注单个词,而是关注文本中的一段连续的词序列,即“跨度”。
在情感分析中,跨度级交互可以帮助模型更好地理解和捕获目标(Aspect Target)和观点(Opinion Term)之间的关系。例如,对于评论“我喜欢这部手机的电池寿命,但屏幕太小。”来说,如果我们只关注单个词,可能会错过“电池寿命”和“屏幕太小”这样的多词表达。而通过跨度级交互,我们可以将“电池寿命”和“屏幕太小”作为整体来处理,从而更准确地理解评论的含义。
在这篇论文中,作者提出了一种新的模型,该模型在预测目标和观点的情感关系时,会考虑它们的整个跨度的交互。这种方法可以更准确地捕获目标和观点之间的关系,从而提高方面情感三元组提取的性能。
双通道跨度修剪策略
双通道跨度修剪策略是这篇论文中提出的一种策略,用于在处理大量的跨度候选项时,有效地减少计算成本,同时最大化有效的目标和观点跨度配对的机会。
这个策略的工作原理如下:
-
目标和观点候选项的选择:模型会根据每个跨度的提及类型的分数来选择目标和观点的候选项。具体来说,模型会计算每个跨度作为目标和观点的概率,并基于这些概率来选择最佳的候选项。这样,模型就可以得到目标候选池和观点候选池。
-
跨度修剪:为了考虑每个句子的候选项数量,模型会选择n*z个跨度作为候选项,其中n是句子的长度,z是一个阈值超参数。这样,模型就可以得到修剪后的目标和观点候选池。
-
目标-观点配对:模型会将每个目标候选项与每个观点候选项配对,然后计算它们之间的情感关系的概率。
假设我们有一个句子:"我喜欢这部手机的电池寿命,但屏幕太小。" 在这个句子中,我们可以枚举出许多可能的跨度,如"我","喜欢","这部手机","电池寿命","屏幕","太小"等等。如果我们要对所有可能的跨度进行处理,计算成本会非常高。
在这里,双通道跨度修剪策略就派上用场了。首先,模型会计算每个跨度作为目标(如"这部手机","电池寿命","屏幕")和观点(如"喜欢","太小")的概率。然后,模型会选择概率最高的n*z个跨度作为候选项,其中n是句子的长度,z是一个阈值超参数。例如,如果n是10,z是0.5,那么模型就会选择5个跨度作为候选项。
接下来,模型会将每个目标候选项与每个观点候选项配对,然后计算它们之间的情感关系的概率。例如,模型可能会计算"电池寿命"(目标)和"喜欢"(观点)之间的情感关系的概率,然后再计算"屏幕"(目标)和"太小"(观点)之间的情感关系的概率。
"双通道"在这里指的是模型同时处理两种类型的跨度:目标跨度和观点跨度。这两种跨度被视为两个不同的"通道",每个通道都有自己的处理流程和修剪策略。
性能提升
这篇论文的性能提升主要体现在以下几个方面:
-
更高的精度和召回率:与之前的模型(如GTS)相比,这篇论文提出的模型在单词和多词跨度的情感三元组提取任务上都实现了更高的精度和召回率。这主要归功于模型对跨度级交互的处理,以及双通道跨度修剪策略的应用。
-
更好的处理多词跨度:在处理包含多词目标或观点的情感三元组时,这篇论文提出的模型表现出了显著的性能提升。这主要是因为模型通过枚举跨度来自然地提高了多词跨度的召回率。
-
有效的计算成本控制:通过双通道跨度修剪策略,模型能够在保证性能的同时,有效地控制计算成本。与不区分目标和观点候选项的单通道策略相比,双通道策略在计算效率上有显著的优势。
-
更好的模型泛化能力:在四个不同的数据集上,这篇论文提出的模型都表现出了优于之前模型的性能,这表明模型具有良好的泛化能力。
召回率
召回率(Recall)是一种衡量模型性能的指标,主要用于评估模型找出所有相关实例的能力。召回率的定义如下:
召回率 = 真正例 / (真正例 + 假反例)
在这个公式中,真正例(True Positive)是模型正确预测为正例(即模型预测为正,实际也为正)的数量,假反例(False Negative)是模型错误预测为反例(即模型预测为反,实际为正)的数量。
召回率的值介于0和1之间,值越接近1,表示模型在找出所有相关实例方面的性能越好。
代码链接
相关文章:
学习跨度级交互以提取方面情感三元组
方面情感三元组 方面情感三元组(Aspect Sentiment Triplet)是一种在情感分析中使用的结构,它包含三个部分:方面目标(Aspect Target)、情感(Sentiment)和对应的观点词(Op…...
那些年的Xposed开发经验记录
把之前写的Xposed相关文章合并到一块,方便查阅 目录 多进程App的Hook问题XposedHelper中的静态变量demo的AndroidManifest.xml的测试核心代码结论限制handleLoadPackage被单个进程多次执行的问题 多dex Hook问题为应用增加权限利用Xposed删除权限参考 Hook框架集锦…...
android studio内存分析之Memory profiler的使用
目录 Android Studio中内存分析工具Memory profiler的使用1. 打开Memory Profiler2. 工具使用3. 内存选项说明4. 内存性能分析器概览5. 内存计算方式6. 查看内存分配7. 捕获java/kotlin方式查看内存分配8. 堆转储文件导入和导出 内存性能分析器中的泄漏检测 Android Studio中内…...
Qt下载慢/无法下载解决方式
文章目录 一. Qt在线安装下载二. 安装方式 一. Qt在线安装下载 官网下载:https://www.qt.io/download清华源下载:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/ 二. 安装方式 进入下载好的目录 在目录栏输入CMD&…...
【UE4 RTS】04-Camera Pan
前言 本篇实现了CameraPawn的旋转功能。 效果 步骤 1. 打开项目设置,添加两个操作映射 2. 打开玩家控制器“RTS_PlayerController_BP”,新建一个浮点型变量,命名为“PanSpeed” 在事件图表中添加如下节点 此时运行游戏可以发现当鼠标移动…...
出现raise NotImplementedError报错
在学习《动手学深度学习》时,实现下面代码时,报出raise NotImplementedError错误。 import collections import torch from d2l import torch as d2l import math from torch import nnclass Seq2SeqEncoder(d2l.Encoder):def __init__(self,vocab_size,…...
第一百二十二天学习记录:C++提高:STL-vector容器(上)(黑马教学视频)
vector基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新的空间,而是找更大的内…...
《Linux从练气到飞升》No.11 初识操作系统
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...
什么是 XSS 攻击?
概念 XSS 攻击指的是跨站脚本攻击,是一种代码注入攻击。攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等。 XSS 的本质是因为网站没有对恶意代码进行过滤,与正常的代码混合在一起了&…...
基于Spring Boot的招聘网站的设计与实现(Java+spring boot+MySQL)
获取源码或者论文请私信博主 演示视频: 基于Spring Boot的招聘网站的设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java springboot框…...
中级课程——CSRF
文章目录 案例原理挖掘 案例 原理 挖掘 挖掘详情 首先就是对目标敏感部位进行抓包分析,比如修改信息、转账、添加信息等等。通常一个数据包HTTP请求头里边都会有一个Referer,这个需要特别去验证。比如放到Burpsuit Repeater里边去测试:去掉…...
面试热题(岛屿数量)
给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均…...
【WebRTC---源码篇】(二十四)GCC获取码率后的分配
RtpTransportControllerSend::PostUpdates 配置码率 GoogCcNetworkController::GetPacingRates pacing_factor_默认2.5。也就是说pacer发送报文的码率是探测码率的2.5倍。 PacerConfig GoogCcNetworkController::GetPacingRates(Timestamp at_time) const {// Pacing rate …...
数据可视化工具LightningChart .NET正式发布v10.5.1——拥有全新的3D新功能
LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学…...
AWS认证SAA-C03每日一题
本题库由云计算狂魔微信公众号分享。 【SAA-C03助理级解决方案架构师认证】A company has a multi-tier application that runs six front-end web servers in an Amazon EC2 Auto Scaling group in a single Availability Zone behind an Application Load Balancer(ALB).A …...
ASP.NET Core MVC -- 将视图添加到 ASP.NET Core MVC 应用
Index页 右键单击“视图”文件夹,然后单击“添加”>>“新文件夹”,并将文件夹命名为“HelloWorld”。 右键单击“Views/HelloWorld”文件夹,然后单击“添加”>“新项”。 在“添加新项 - MvcMovie”对话框中: 在右上…...
基于R做宏基因组结果的PCoA分析
写在前面 因为公司给的PCA结果效果不佳,决定从中重新挑选部分样本进行再分析 步骤 表格结果预处理 在属水平genus参考原本结果已有的PCA图,尽可能挑选距离较远且聚团的样本 选取不同样本属水平的丰度数据,整理成逗号分隔的csv文件 代码…...
8.10 算法刷题【1道题】
8.10 算法刷题 22. 链表中环的入口结点(快慢指针) 22. 链表中环的入口结点(快慢指针) 原题链接 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x…...
Apache Maven:从构建到部署,一站式解决方案
目录 一、Maven介绍 1. Maven是什么? 2.Maven的作用? 二、Maven仓库介绍 2.1 库的分类 三、Maven安装与配置 3.1 Maven安装 3.2 Maven环境配置 3.3 仓库配置 四、Eclipse与Maven配置 五、Maven项目测试 5.1 新建Maven项目步骤及注意事项 5.…...
文章四:版本控制策略 - 穿越时光机:Git版本控制进阶技巧
开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun 概述 版本控制是Git的核心功能,它使得开发者可以记录代码的历史变更,并能够在不同版本…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
