当前位置: 首页 > news >正文

学习跨度级交互以提取方面情感三元组

方面情感三元组

方面情感三元组(Aspect Sentiment Triplet)是一种在情感分析中使用的结构,它包含三个部分:方面目标(Aspect Target)、情感(Sentiment)和对应的观点词(Opinion Term)。

  1. 方面目标:这是评论或观点的主题,例如在产品评论中,方面目标可能是“电池寿命”、“屏幕大小”等。

  2. 情感:这是对方面目标的情感倾向,通常分为正面、负面和中性。

  3. 观点词:这是表达对方面目标情感的词或短语。

传统的方面情感三元组提取方法

通常包括以下步骤:

  1. 方面术语提取(Aspect Term Extraction, ATE):这一步骤的目标是从文本中识别出方面目标。这通常通过命名实体识别(NER)或者依赖句法分析的方法来实现。

  2. 观点术语提取(Opinion Term Extraction, OTE):这一步骤的目标是从文本中识别出观点词。这也通常通过NER或者依赖句法分析的方法来实现。

  3. 情感分类(Sentiment Classification):这一步骤的目标是确定观点词对应的情感倾向,通常分为正面、负面和中性。这可以通过情感词典、机器学习或深度学习方法来实现。

  4. 方面-观点配对(Aspect-Opinion Pairing):这一步骤的目标是确定哪个观点词对应哪个方面目标。这通常通过依赖句法分析的方法来实现,例如,观点词和方面目标可能在同一句子中,并且在依存关系图中相互靠近。

传统提取方法的例子

假设我们有以下的评论:“我喜欢这部手机的电池寿命,但屏幕太小。”

  1. 方面术语提取(Aspect Term Extraction, ATE):在这个评论中,我们可以识别出两个方面目标:“电池寿命”和“屏幕”。

  2. 观点术语提取(Opinion Term Extraction, OTE):我们可以识别出两个观点词:“喜欢”和“太小”。

  3. 情感分类(Sentiment Classification):对于观点词“喜欢”,我们可以将其分类为正面情感;对于观点词“太小”,我们可以将其分类为负面情感。

  4. 方面-观点配对(Aspect-Opinion Pairing):通过分析句子结构,我们可以确定“喜欢”这个观点词是对“电池寿命”这个方面目标的,而“太小”这个观点词是对“屏幕”这个方面目标的。

因此,我们可以提取出两个方面情感三元组:(“电池寿命”,“喜欢”,正面)和(“屏幕”,“太小”,负面)。

这篇论文的创新点

跨度级交互

跨度级交互(Span-level Interactions)是一种处理文本数据的方法,它不仅仅关注单个词,而是关注文本中的一段连续的词序列,即“跨度”。

在情感分析中,跨度级交互可以帮助模型更好地理解和捕获目标(Aspect Target)和观点(Opinion Term)之间的关系。例如,对于评论“我喜欢这部手机的电池寿命,但屏幕太小。”来说,如果我们只关注单个词,可能会错过“电池寿命”和“屏幕太小”这样的多词表达。而通过跨度级交互,我们可以将“电池寿命”和“屏幕太小”作为整体来处理,从而更准确地理解评论的含义。

在这篇论文中,作者提出了一种新的模型,该模型在预测目标和观点的情感关系时,会考虑它们的整个跨度的交互。这种方法可以更准确地捕获目标和观点之间的关系,从而提高方面情感三元组提取的性能。

双通道跨度修剪策略

双通道跨度修剪策略是这篇论文中提出的一种策略,用于在处理大量的跨度候选项时,有效地减少计算成本,同时最大化有效的目标和观点跨度配对的机会

这个策略的工作原理如下:

  1. 目标和观点候选项的选择:模型会根据每个跨度的提及类型的分数来选择目标和观点的候选项。具体来说,模型会计算每个跨度作为目标和观点的概率,并基于这些概率来选择最佳的候选项。这样,模型就可以得到目标候选池和观点候选池。

  2. 跨度修剪:为了考虑每个句子的候选项数量,模型会选择n*z个跨度作为候选项,其中n是句子的长度,z是一个阈值超参数。这样,模型就可以得到修剪后的目标和观点候选池。

  3. 目标-观点配对:模型会将每个目标候选项与每个观点候选项配对,然后计算它们之间的情感关系的概率。

假设我们有一个句子:"我喜欢这部手机的电池寿命,但屏幕太小。" 在这个句子中,我们可以枚举出许多可能的跨度,如"我","喜欢","这部手机","电池寿命","屏幕","太小"等等。如果我们要对所有可能的跨度进行处理,计算成本会非常高。

在这里,双通道跨度修剪策略就派上用场了。首先,模型会计算每个跨度作为目标(如"这部手机","电池寿命","屏幕")和观点(如"喜欢","太小")的概率。然后,模型会选择概率最高的n*z个跨度作为候选项,其中n是句子的长度,z是一个阈值超参数。例如,如果n是10,z是0.5,那么模型就会选择5个跨度作为候选项。

接下来,模型会将每个目标候选项与每个观点候选项配对,然后计算它们之间的情感关系的概率。例如,模型可能会计算"电池寿命"(目标)和"喜欢"(观点)之间的情感关系的概率,然后再计算"屏幕"(目标)和"太小"(观点)之间的情感关系的概率。

"双通道"在这里指的是模型同时处理两种类型的跨度:目标跨度和观点跨度。这两种跨度被视为两个不同的"通道",每个通道都有自己的处理流程和修剪策略。

性能提升

这篇论文的性能提升主要体现在以下几个方面:

  1. 更高的精度和召回率:与之前的模型(如GTS)相比,这篇论文提出的模型在单词和多词跨度的情感三元组提取任务上都实现了更高的精度和召回率。这主要归功于模型对跨度级交互的处理,以及双通道跨度修剪策略的应用。

  2. 更好的处理多词跨度:在处理包含多词目标或观点的情感三元组时,这篇论文提出的模型表现出了显著的性能提升。这主要是因为模型通过枚举跨度来自然地提高了多词跨度的召回率。

  3. 有效的计算成本控制:通过双通道跨度修剪策略,模型能够在保证性能的同时,有效地控制计算成本。与不区分目标和观点候选项的单通道策略相比,双通道策略在计算效率上有显著的优势。

  4. 更好的模型泛化能力:在四个不同的数据集上,这篇论文提出的模型都表现出了优于之前模型的性能,这表明模型具有良好的泛化能力。

召回率

召回率(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的核心功能,它使得开发者可以记录代码的历史变更,并能够在不同版本…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

生成 Git SSH 证书

🔑 1. ​​生成 SSH 密钥对​​ 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​: -t rsa&#x…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)&#xff…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...