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

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τ+m1,,wn1},其中 τ\tauτ 代表方面术语的起始 token,然后通过词嵌入得到单词向量 V={e0,⋯,en−1}\mathbf{V} = \{e_0, \cdots, e_{n-1}\}V={e0,,en1},再通过双向LSTM得到隐藏状态向量 H=h0,⋯,hn−1\mathbf{H} = {h_0, \cdots, h_{n - 1}}H=h0,,hn1

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τ+m1,,dn1}中。最后,根据 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[ritriri+t]+bc,0),其中 t=⌊l2⌋t = \lfloor \frac{l}{2} \rfloort=2lWc\mathbf{W}_{c}Wcbcb_cbc 分别为为卷积核的权重和偏置。由于只有少数卷积层的输出特征对分类有指导意义,因此还要通过最大池化来获最显著的特征 qsq_sqs。最后 qsq_sqs会被送到全连接层,通过 softmax 归一化以获得情感极性的分布。

模型的训练采用标准的梯度下降算法,采用交叉熵损失函数以及 L2L_2L2 正则化。

五、实验

作者采用了 Laptop(Pontiki et al., 2014)和 Restaurant(Pontiki et al., 2014)两个数据集作为实验数据集。

作者对 PWCN-Pos(位置邻近的 PWCN)和 PWCN-Dep(依赖邻近的 PWCN)分别进行了实验,对比的模型除了 LSTMRAMIANTNet-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)是一种分布式应用程序的编程模型,允许程序在不同的计算机上运行。它以一种透明的方式,将一个程序的函数调用定向到远程系统上的另一个程序,而使…...

电子招标采购系统源码—企业战略布局下的采购寻源

​ 智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明&#xff0…...

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。系统角色分为用户和管理员。用户注册登录后可购买美食,个人中心,评论和反馈等&#xff…...

Vue3 - $refs 使用教程,父组件调用获取子组件数据和方法(setup() / <script setup>)

前言 在 Vue2 中父组件使用 $refs 调用子组件数据和方法非常简单,但在 Vue3 中这种方法行不通了。 本文实现了 Vue3 中父组件使用 $refs 获取调用子组件数据和方法教程, 并且提供了 setup() 与 <script setup> 两种 “开发模式” 的示例代码,请根据需要进行选择。 网…...

华为OD机试 - 众数和中位数(Python)| 真题+思路+考点+代码+岗位

众数和中位数 题目 众数是指一组数据中出现次数多的数 众数可以是多个中位数是指把一组数据从小到大排列,最中间的那个数, 如果这组数据的个数是奇数,那最中间那个就是中位数 如果这组数据的个数为偶数,那就把中间的两个数之和除以 2 就是中位数查找整型数组中元素的众数并…...

一眼万年的 Keychron 无线机械键盘

一眼万年的 Keychron 无线机械键盘 一款好的键盘对于程序员或者喜欢码字的人来说是非常重要的&#xff0c;而最近博主入手了自己的第一款机械键盘——Keychron 无线机械键盘。 机械键盘特点 有独立轴体&#xff0c;通过两个簧接触&#xff0c;来触发信号&#xff0c;价格相对贵…...

自动化测试高频面试题(含答案)

Hello&#xff0c;你们的好朋友来了&#xff01;今天猜猜我给大家带来点啥干货呢&#xff1f;最近很多小伙伴出去面试的时候经常会被问到跟自动化测试相关的面试题。所以&#xff0c;今天特意给大家整理了一些经常被公司问到的自动化测试相关的面试题。停&#xff0c;咱先收藏起…...

3、按键扫描检测处理

说明&#xff1a;本文处理按键的短按、长按检测执行&#xff0c;非矩阵按键 硬件可以类似如下连接即可&#xff0c;无需放置上下拉电阻&#xff1b; 按键动作分长按、短按(弹起时执行)两种 按下不放执行长按&#xff0c;但松开按键时不予执行短按函数 多个按键可以同时操作 按…...

集中式存储和分布式存储

分布式存储是相对于集中式存储来说的&#xff0c;在介绍分布式存储之前&#xff0c;我们先看看什么是集中式存储。不久之前&#xff0c;企业级的存储设备都是集中式存储。所谓集中式存储&#xff0c;从概念上可以看出来是具有集中性的&#xff0c;也就是整个存储是集中在一个系…...

【机器学习数据集】如何获得机器学习的练习数据?

一、scikit-learn自带数据集Scikit-learn内置了很多可以用于机器学习的数据&#xff0c;可以用两行代码就可以使用这些数据。自带的小的数据集为&#xff1a;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五 、分页器&#xff1a; Pageing![在这里插入图片描述](https://img-blog.csdnimg.cn/fbe9bb7e84a04ccda4d3fc9f4ab9c36b.png#pic_center)六、权限管理总结前言 这章…...

软考中级-程序设计语言

&#xff08;1&#xff09;解释器解释源程序时不生成独立的目标代码&#xff0c;源程序和解释程序都参与到程序执行中。&#xff08;2&#xff09;编译器编译时生成独立的目标代码&#xff0c;运行时是运行与源程序等价的目标程序&#xff0c;源程序不参与执行。阶段补充&#…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...