Sarcasm detection论文解析 |利用对话语境进行讽刺分析

news2024/12/25 1:06:24

论文地址:

论文地址:Sarcasm Analysis Using Conversation Context | Computational Linguistics | MIT Press

github地址:https://github.com/debanjanghosh/sarcasm_context

Alex-Fabbri/deep_learning_nlp_sarcasm: code for deep learning models applied to nlp tasks (github.com)

论文首页:

 

 

利用对话语境进行讽刺分析


📅出版年份:2018
📖出版期刊:Computational Linguistics
📈影响因子:2
🧑文章作者:Ghosh Debanjan,Fabbri Alexander R.,Muresan Smaranda
📍 期刊分区:

JCR分区: Q1 中科院分区升级版: 计算机科学2区 中科院分区基础版: 工程技术4区 影响因子: 9.3 5年影响因子: 6.2 EI: 是 CCF: B


🔎摘要:

讽刺检测的计算模型通常依赖于孤立的语句内容。然而,如果没有额外的语境,说话者的讽刺意图并不总是很明显。我们以社交媒体讨论为重点,研究了三个问题:(1) 对话语境建模是否有助于讽刺检测?(2) 我们能否识别是对话上下文的哪一部分触发了讽刺回复? (3) 对于包含多个句子的讽刺帖子,我们能否识别出讽刺的具体句子?为了解决第一个问题,我们研究了几种类型的长短时记忆(LSTM)网络,它们可以对对话上下文和当前回合进行建模。我们的研究表明,在句子层面关注上下文和当前转折的 LSTM 网络以及条件 LSTM 网络优于只读取当前转折的 LSTM 模型。作为会话上下文,我们考虑了前一轮、后一轮或两者。我们的计算模型在两种类型的社交媒体平台上进行了测试: 推特和论坛。我们讨论了这些数据集之间的一些差异,包括它们的规模和金标签注释的性质。为了解决后两个问题,我们对 LSTM 模型产生的注意力权重进行了定性分析,并将结果与人类在这两个任务中的表现进行了比较。


🌐研究目的:

我们以社交媒体讨论为重点,研究了三个问题:p756

(1) 对话语境建模是否有助于讽刺检测?

(2) 我们能否识别是对话上下文的哪一部分触发了讽刺回复?

(3) 对于包含多个句子的讽刺帖子,我们能否识别出讽刺的具体句子?

我们的研究目标之一是对两类社交媒体平台进行比较研究,这两类平台已被单独考虑用于讽刺检测。

📰研究背景:

  • 讽刺检测的计算模型通常依赖于孤立的语句内容。然而,如果没有额外的语境,说话者的讽刺意图并不总是很明显。p756

  • 曾经的大多数方法大多考虑的是孤立的语篇。p759

  • 目前有两个主要的研究方向--作者语境和对话语境p759

🔬研究方法:


🔩模型架构:

两种架构:

  • 一种是同时使用单词级和句子级注意力的分层结构(Yang et al. 2016),

  • 另一种仅使用句子级注意力(这里我们仅使用平均单词嵌入来表示句子) 。

基于注意力的 LSTM 网络 p767

  • 对话上下文由先前的回合 pt 表示。上下文(左)由 LSTM (LSTMpt) 读取,

  • 当前轮 ct(右)由另一个 LSTM (LSTMct) 读取。

请注意,对于我们也考虑后续转 st 的模型,我们只需使用另一个 LSTM 来读取 st。

条件 LSTM 网络 p769

我们还尝试了 Rockta ̈schel 等人引入的条件编码模型。

使用了两个独立的LSTM——LSTMpt和LSTMct——与之前的架构类似,没有任何注意力,但是对于LSTMct来说,它的内存状态是用LSTMpt的最后一个单元状态来初始化的。对于使用连续转弯 st 作为上下文的模型,LSTM 表示 LSTMst 以 LSTMct 的表示为条件。


🧪实验:

📇 数据集:

互联网论证语料库IACv2

Twitter 和 Reddit 数据集

  • 在 Twitter 和 Reddit 数据中,我们拥有自标注数据(即发言者自己将其帖子标注为讽刺信息)

  • 我们有通过众包获得的标签,如 IAC 的情况(Oraby 等人,2016 年)

所有数据集被随机分为训练(80%)、开发(10%)和测试(10%),保持讽刺与讽刺的相同分布。

📏评估指标:

  • 我们报告讽刺 (S) 和非讽刺 (NS) 类别的准确率 (P)、召回率 (R) 和 F1 分数。

  • 我们通过对模型的误差分析来结束本节(第 5.3 节)

📉 优化器&超参数:

  • 训练集中的词汇外单词通过从 (−0.05, 0.05) 均匀采样的值来随机初始化,并在训练期间进行优化。

  • dropout :0.5

  • 小批量大小: 16

  • L2 正则化为:1E-4

  • epoch:30

  • 每个帖子的最大句子数阈值:10

📋 实验结果:

我们的实验表明,基于注意力的模型可以识别讽刺的固有特征(即讽刺标记和讽刺因素,例如上下文不一致)。


🚩研究结论:

我们表明,与外部注释(众包)转弯的语料库(例如 IACv2)相比,自我标记的讽刺转弯(例如 Reddit)更难识别。我们证明即使如果Reddit中的训练数据大十倍,对我们的实验没有太大影响。


📝总结

💡创新点:

  • 本文扩展了语境的概念,将 "后一轮 "与 "前一轮 "一并考虑。本文从数据集的规模和金色标签的获取方式(自我标签与众包标签)两个方面讨论了数据集的性质。

  • 解决了一个新问题:对于问题3,我们对人类的任务表现和 LSTM 模型的注意力权重进行了比较分析。

  • 加入了新的基线(tf-idf;RBF 内核)和使用不平衡数据集的运行。

  • 经验表明,明确地建立转折模型比仅仅将当前转折和先前转折(和/或后续转折)连接起来更有帮助,也能提供更好的结果。

  • 使用了两个情感词典来建立转弯情感模型:MPQA 情感词典和个意见词典

  • 使用多个 LSTM:一个读取当前一轮,一个(或两个)读取上下文(如一个 LSTM 读取前一轮,一个读取后一轮)

⚠局限性:

我们还进行了彻底的错误分析,并发现了几种类型的错误:缺少世界知识、使用俚语、使用反问句和使用数字。

🔧改进方法:

在未来的工作中,我们计划开发方法来解决这些错误,例如

  • 对反问句进行建模(类似于 Oraby 等人[2017])

  • 采用专门的方法来对与数字相关的讽刺消息进行建模

  • 使用其他基于词典的特征来包括俚语。

🖍️知识补充:

  • Schifanella 等人(2016 年)提出了一种多模态方法,即结合文本和视觉特征来检测讽刺语言。p758

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

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

相关文章

基于springboot实现公司日常考勤系统项目【项目源码+论文说明】

基于springboot实现公司日常考勤系统演示 摘要 目前社会当中主要特征就是对于信息的传播比较快和信息内容的安全问题,原本进行办公的类型都耗费了很多的资源、传播的速度也是相对较慢、准确性不高等许多的不足。这个系统就是运用计算机软件来完成对于企业当中出勤率…

debug的基本使用

1.简介   首先看下IDEA中Debug模式下的界面。 如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。就简单说下图中标注的8个地方: ① 以Debug模式启动服务,左边的一个按…

Redis运维篇-快速面试笔记(速成版)

文章目录 1. Redis的持久化1.1 RDB(快照模式)1.2 AOF 模式 2. Redis主从模型(高可用)2.1 Redis的主从复制2.2 Redis拓扑结构 3. Redis集群模式(高并发)3.1 Redis的Slots3.2 集群模式的常用命令3.3 多主多从…

win下vscode的vim切换模式的中英文切换

问题描述 在vscode中安装vim插件后,如果insert模式下完成输入后,在中文输入方式下按esc会发生无效输入,需要手动切换到英文。 解决方法 下载完成vscode并在其中配置vim插件下载github—im-select.exe插件(注意很多博文中的gitcod…

Node.js -- express 框架

文章目录 1. express 使用2. 路由2.1 路由的使用2.2 获取请求报文参数2.3 获取路由参数2.4 路由参数练习 3. express 响应设置4. 中间件4.1 全局中间件4.2 路由中间件4.3 静态资源中间件 5. 获取请求体数据 body-parser6. 防盗链7. 路由模块化8. 模板引擎8.1 了解EJS8.2 列表渲…

InfluxDB安装使用介绍

1.介绍 InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 2.对常见关系型数据库(MySQL)的基础概念对比 1…

Spring Cloud——Circuit Breaker上篇

Spring Cloud——Circuit Breaker上篇 一、分布式系统面临的问题1.服务雪崩2.禁止服务雪崩故障 二、Circuit Breaker三、resilience4j——服务熔断和降级1.理论知识2.常用配置3.案例实战(1)COUNT_BASED(计数的滑动窗口)&#xff0…

UE4_Niagara_两个模型之间的粒子幻化

学习笔记,仅供参考! 操作步骤: 1、新建niagara system,添加空的发射器,渲染改为网格体渲染器,网格体为1M_Cube. 2、创建粒子材质重载。 3、渲染网格体的材质设置: 4、在发射器属性面板&#x…

LeetCode 213 —— 打家劫舍 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题是 LeetCode 198—— 打家劫舍 的升级版,多了一个首尾相连的设定。 因为首尾相连,所以第一个房屋和最后一个房屋只能偷窃其中一个。 所以,第一种方案就是不偷窃最后一个房…

Web APIs 学习归纳6--- BOM浏览器对象

前面几节主要针对DOM进行了学习,现在开始新的内容的学习---DOM浏览器对象。 DOM是更注重页面(document)内容的设计,但是BOM不仅限于页面(document)的设计,而是更加全面包括页面的刷新&#xff0…

SpringBoot使用ResponseBodyAdvice和RequestBodyAdvice实现请求体解密、响应体加密

文章目录 一、写在前面二、实现细节1、定义加解密注解2、请求体解密逻辑3、响应体加密逻辑4、测试类5、测试结果 三、源码分析1、RequestResponseBodyMethodProcessor2、RequestBodyAdvice3、ResponseBodyAdvice 一、写在前面 项目中经常需要对接第三方平台,每次对…

redis ZRANGE 使用最详细文档

环境: redis_version:7.2.2 本文参考 redis 官方文档1 语法 ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]参数含义key是有序集合的键名start stop在不同语境下,可用值不一样BYSCORE | BYLEX按照分数查询 | 相…

Node.js -- mongoose

文章目录 1. 介绍2. mongoose 连接数据库3. 插入文件4. 字段类型5. 字段值验证6. 文档处理6.1 删除文档6.2 更新文档6.3 读取文档 7. 条件控制8. 个性化读取9. 代码模块化 1. 介绍 Mongoose是一个对象文档模型库,官网http://www.mongoosejs.net/ 方便使用代码操作mo…

2021-10-21 51单片机两位数码管显示0-99循环

缘由单片机两位数码管显示0-99循环-编程语言-CSDN问答 #include "REG52.h" #include<intrins.h> sbit K1 P3^0; sbit K2 P3^1; sbit K3 P3^2; sbit K4 P3^3; sbit bpP3^4; bit k1,wk10,wk20; unsigned char code SmZiFu[]{63,6,91,79,102,109,125,7,127,1…

数据库(MySQL) —— DDL语句

MySQL—— DDL语句 什么是MySQL的DDL语句查看所有的所有数据库查看当前使用的数据库库操作创建库使用数据库删除库 表操作创建表查询当前库中所有的表查询表结构查询指定表的建表语句删除表 表修改删除字段修改数据类型修改字段名和字段类型重命名表删除指定表并重新创建该表 我…

c3 笔记7 css基本语法

相关内容&#xff1a;字体、段落、词间距、文字效果&#xff08;对齐、上下标、阴影&#xff09;、背景图、背景渐变、…… 单位pt与px的差别pt是印刷使用的字号单位&#xff0c;不管屏幕分辨率是多少&#xff0c;打印到纸上看起来都是相同的&#xff0c;lot的长度是0.01384英寸…

Mybatis四种实例化对象方式

代码准备 创建mybatis-config.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration…

【golang学习之旅】深入理解字符串string数据类型

系列文章 【golang学习之旅】报错&#xff1a;a declared but not used 【golang学习之旅】Go 的基本数据类型 目录 系列文章使用示例string的底层数据结构关于字符串复制字符串是不可变的如何高效的进行字符串拼接&#xff1f; 使用示例 Go 语言中的字符串只是一个只读的字节…

CUDA CPP Unity Compute Shader

为学 开始一个新的学习计划&#xff0c;涵盖&#xff1a; 主题学习内容CUDAProfessional CUDA C Programming/NVIDIA CUDA初级教程视频(周斌)CCPrimer / The Cherno CPPUnity Compute ShaderUdemy Learn to Write Unity Compute ShadersLinear AlgebraMIT 18.06 Prof.Gilbert…

typescript类型检查和原始类型

typescript类型检查和原始类型 类型检查 非严格类型是typescript默认的类型检查模式&#xff0c;在该模式下&#xff0c;类型检查的规则相对轻松&#xff0c;不会对undefined和null值做过多的限制&#xff0c;允许将undefined和null值赋给string类型的变量。进行JavaScript代…