Syntax-Aware Aspect-Level Sentiment Classification with PWCN 论文阅读笔记
一、作者
Chen Zhang, Qiuchi Li, and Dawei Song. 2019. Syntax-Aware Aspect-Level Sentiment Classification with Proximity-Weighted Convolution Network. In Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR’19). Association for Computing Machinery, New York, NY, USA, 1145–1148. https://doi.org/10.1145/3331184.3331351
二、背景
在方面级情感分析任务中,对方面及其上下文的语义相关性进行建模一直是一个巨大的挑战。
LSTM 与注意力机制和记忆网络的结合在一定程度上提高了对于方面和上下文之间的语义交互的建模能力,但这些方法往往会忽视句子中的句法关系,比如对于句子 Its size is ideal and the weight is acceptable.,传统的基于语义相关性方法很大可能会将 ideal 描述为 acceptable ,但从句法的角度分析,二者是没有直接联系的。同时,现有的句法分析往往聚焦于单词级别的分析,在处理短语组成的上下文时便会显得捉襟见肘。
三、创新点
为了解决上述局限性,作者提出了一个新的 ABSA 框架,该框架利用方面与其上下文之间的句法关系,基于 LSTM 在 N 元语法(n-gram)的级别上聚合特征。同时受位置机制(position mechanism)的启发,该框架利用邻近权重(proximity weight,上下文词与方面词的句法接近度)来确定上下文词在句子中的重要性。然后邻近权重会被集成到卷积网络中以捕获 N 元句法信息,称为邻近加权卷积网络(Proximity-Weighted Convolution Network)。最后,通过最大池化来选择最重要的特征进行预测。
四、具体实现

模型总体结构如上图所示。一个长度为 n 的句子可以表示为 S={w0,w1,⋯,wτ,wτ+1,⋯,wτ+m−1,⋯,wn−1}\mathbf{S} = \{w_0, w_1, \cdots, w_\tau, w_{\tau + 1}, \cdots, w_{\tau + m - 1}, \cdots, w_{n - 1}\}S={w0,w1,⋯,wτ,wτ+1,⋯,wτ+m−1,⋯,wn−1},其中 τ\tauτ 代表方面术语的起始 token,然后通过词嵌入得到单词向量 V={e0,⋯,en−1}\mathbf{V} = \{e_0, \cdots, e_{n-1}\}V={e0,⋯,en−1},再通过双向LSTM得到隐藏状态向量 H=h0,⋯,hn−1\mathbf{H} = {h_0, \cdots, h_{n - 1}}H=h0,⋯,hn−1。
1.邻近权重
作者在模型中将句法依赖信息形式化为临近权重,用于描述上下文词与方面词之间的接近程度。依照此思路,作者通过位置邻近和依赖邻近,分别对上下文词和方面术语之间的句法依赖进行了建模。
a.位置邻近
位置邻近很容易理解,通常情况下,一个方面词的上下文词更可能在该方面词周围,因此作者将句子中的单词位置信息视为近似的句法邻近度量,位置邻近权重的计算公式如下:

很显然,位置邻近权重会随着上下文词与方面词之间距离的增加而相应减少。
b.依赖邻近

依赖邻近基于句子的句法依存树。对于给定的句子,首先通过spaCy工具构建其句法依存树,然后计算每个单词与方面词之间的依存距离(即每个单词与方面词在依存树中的最短路径长度),对于多词方面短语,考虑对于对于方面边界的最短距离,而对于多句法树的情况,需要手动将其他句法树中的距离设定为句子长度的一半。该距离会被存储到 d={d0,d1,⋯,dτ,dτ+1,⋯,dτ+m−1,⋯,dn−1}\mathbf{d} = \{d_0, d_1, \cdots, d_\tau, d_{\tau + 1}, \cdots, d_{\tau + m - 1}, \cdots, d_{n - 1}\}d={d0,d1,⋯,dτ,dτ+1,⋯,dτ+m−1,⋯,dn−1}中。最后,根据 d\mathbf{d}d 即可计算依赖邻近权重,计算过程如下:

2.邻近加权卷积
邻近加权卷积的本质是在长度为 l 的卷积核上的一维卷积,同时会在卷积计算之前分配邻近权重,从而得到的句子中第 i 个词的邻近加权表示 ri=pihir_i = p_ih_iri=pihi。此外,作者还对句子进行了零填充以确保卷积操作输入的句子和输出的句子具有相同的长度。
卷积操作可以表示为 qi=max(Wc⊤[ri−t⊕⋯⊕ri⊕⋯⊕ri+t]+bc,0)q_{i}=\max \left(\mathbf{W}_{c}^{\top}\left[r_{i-t} \oplus \cdots \oplus r_{i} \oplus \cdots \oplus r_{i+t}\right]+b_{c}, 0\right)qi=max(Wc⊤[ri−t⊕⋯⊕ri⊕⋯⊕ri+t]+bc,0),其中 t=⌊l2⌋t = \lfloor \frac{l}{2} \rfloort=⌊2l⌋,Wc\mathbf{W}_{c}Wc 和 bcb_cbc 分别为为卷积核的权重和偏置。由于只有少数卷积层的输出特征对分类有指导意义,因此还要通过最大池化来获最显著的特征 qsq_sqs。最后 qsq_sqs会被送到全连接层,通过 softmax 归一化以获得情感极性的分布。
模型的训练采用标准的梯度下降算法,采用交叉熵损失函数以及 L2L_2L2 正则化。
五、实验
作者采用了 Laptop(Pontiki et al., 2014)和 Restaurant(Pontiki et al., 2014)两个数据集作为实验数据集。
作者对 PWCN-Pos(位置邻近的 PWCN)和 PWCN-Dep(依赖邻近的 PWCN)分别进行了实验,对比的模型除了 LSTM、RAM、IAN和TNet-LF以外,还包括两个模型变体 Att-PWCN-Pos(邻近权重会乘以归一化后的注意力权重,用来验证句法依赖与语义相关性是否可以相互结合)和 Point-PWCN-Pos(l 元语法被转化为一元语法以验证 N 元语法的有效性)。
作者对三次随机初始化后的实验结果进行了平均,最终的结果如下图所示:

实验结果也表明句法依赖方法的效果优于语义相关性的方法。
相关文章:
Syntax-Aware Aspect-Level Sentiment Classification with PWCN 论文阅读笔记
一、作者 Chen Zhang, Qiuchi Li, and Dawei Song. 2019. Syntax-Aware Aspect-Level Sentiment Classification with Proximity-Weighted Convolution Network. In Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information …...
hadoop考试应急
概述 四大特点:大量化、快速化、多元化、价值化 关键技术:采集、存储管理、处理分析、隐私和安全 计算模式:批处理、流、图、查询分析计算 Hadoop处理架构 了解就好 2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000…...
【React】Hooks
🚩🚩🚩 💎个人主页: 阿选不出来 💨💨💨 💎个人简介: 一名大二在校生,学习方向前端,不定时更新自己学习道路上的一些笔记. 💨💨💨 💎目…...
升级Room引发的惨案!!
kotlin升级 在升级kotlin的时候,直接升级到大版本的kotlin(比如1.7以上),直接报错,只是报错不知道原因。 koltin Release details 后来把koltin版本改成1.6.0,报如下的错,我们才知道gradle是需…...
RPC框架:一文带你搞懂RPC
RPC是什么(GPT答) ChatGPT回答: RPC(Remote Procedure Call)是一种分布式应用程序的编程模型,允许程序在不同的计算机上运行。它以一种透明的方式,将一个程序的函数调用定向到远程系统上的另一个程序,而使…...
电子招标采购系统源码—企业战略布局下的采购寻源
智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明࿰…...
P16 激活函数与Loss 的梯度
参考:https://www.ngui.cc/el/507608.html?actiononClick这里面简单回顾一下PyTorch 里面的两个常用的梯度自动计算的APIautoGrad 和 Backward, 最后结合 softmax 简单介绍一下一下应用场景。目录:1 autoGrad2 Backward3 softmax一 autoGrad输入 x输出损…...
ThinkPHP5美食商城系统
有需要请私信或看评论链接哦 可远程调试 ThinkPHP5美食商城系统一 介绍 此美食商城系统基于ThinkPHP5框架开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。用户注册登录后可购买美食,个人中心,评论和反馈等ÿ…...
Vue3 - $refs 使用教程,父组件调用获取子组件数据和方法(setup() / <script setup>)
前言 在 Vue2 中父组件使用 $refs 调用子组件数据和方法非常简单,但在 Vue3 中这种方法行不通了。 本文实现了 Vue3 中父组件使用 $refs 获取调用子组件数据和方法教程, 并且提供了 setup() 与 <script setup> 两种 “开发模式” 的示例代码,请根据需要进行选择。 网…...
华为OD机试 - 众数和中位数(Python)| 真题+思路+考点+代码+岗位
众数和中位数 题目 众数是指一组数据中出现次数多的数 众数可以是多个中位数是指把一组数据从小到大排列,最中间的那个数, 如果这组数据的个数是奇数,那最中间那个就是中位数 如果这组数据的个数为偶数,那就把中间的两个数之和除以 2 就是中位数查找整型数组中元素的众数并…...
一眼万年的 Keychron 无线机械键盘
一眼万年的 Keychron 无线机械键盘 一款好的键盘对于程序员或者喜欢码字的人来说是非常重要的,而最近博主入手了自己的第一款机械键盘——Keychron 无线机械键盘。 机械键盘特点 有独立轴体,通过两个簧接触,来触发信号,价格相对贵…...
自动化测试高频面试题(含答案)
Hello,你们的好朋友来了!今天猜猜我给大家带来点啥干货呢?最近很多小伙伴出去面试的时候经常会被问到跟自动化测试相关的面试题。所以,今天特意给大家整理了一些经常被公司问到的自动化测试相关的面试题。停,咱先收藏起…...
3、按键扫描检测处理
说明:本文处理按键的短按、长按检测执行,非矩阵按键 硬件可以类似如下连接即可,无需放置上下拉电阻; 按键动作分长按、短按(弹起时执行)两种 按下不放执行长按,但松开按键时不予执行短按函数 多个按键可以同时操作 按…...
集中式存储和分布式存储
分布式存储是相对于集中式存储来说的,在介绍分布式存储之前,我们先看看什么是集中式存储。不久之前,企业级的存储设备都是集中式存储。所谓集中式存储,从概念上可以看出来是具有集中性的,也就是整个存储是集中在一个系…...
【机器学习数据集】如何获得机器学习的练习数据?
一、scikit-learn自带数据集Scikit-learn内置了很多可以用于机器学习的数据,可以用两行代码就可以使用这些数据。自带的小的数据集为:sklearn.datasets.load_<name>load_bostonBoston房屋价格回归506*13fetch_california_housing加州住房回归20640…...
【编程实践】使用 Kotlin HTTP 框架 Fuel 实现 GET,POST 接口 kittinunf.fuel【极简教程】
目录 Fuel 简介 实现代码 GET网络请求用法(有三种写法...
大数据DataX(一):DataX的框架设计和插件体系
文章目录 DataX的框架设计和插件体系 一、DataX是什么...
软考高级信息系统项目管理师系列之十一:项目进度管理
软考高级信息系统项目管理师系列之十一:项目进度管理 一、进度管理领域输入、输出、工具和技术表二、项目进度管理1.项目进度管理过程2.项目进度管理三、项目进度管理过程1.项目进度管理2.工作包和活动3.活动清单4.活动属性5.项目进度网络图6.资源日历7.活动资源需求8.资源分解…...
vue2版本《后台管理模式》(下)
文章目录前言一、home 页以下都属于home子组件二、header 头部 组件二、Menu 页面三、Bread 面包屑四、Footer五 、分页器: Pageing六、权限管理总结前言 这章…...
软考中级-程序设计语言
(1)解释器解释源程序时不生成独立的目标代码,源程序和解释程序都参与到程序执行中。(2)编译器编译时生成独立的目标代码,运行时是运行与源程序等价的目标程序,源程序不参与执行。阶段补充&#…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
