当前位置: 代码迷 >> 综合 >> SemEval2019Task3_ERC | (6) Hybrid Features for Emotion Recognition in Textual Conversation
  详细解决方案

SemEval2019Task3_ERC | (6) Hybrid Features for Emotion Recognition in Textual Conversation

热度:19   发布时间:2024-01-15 00:26:42.0

原文下载 提取码:n8lx

目录

1. 比赛介绍

2. 模型描述

3. 实验


1. 比赛介绍

SemEval2019Task3_ERC是2019年Semantic Evaluation的第三个任务,对话情感识别。

使用的数据集是EmoContext,该对话数据集为纯文本数据集,来自社交平台。分为训练集、验证集和测试集。其中训练集、验证集、测试集各包含30,160、2755和5509个对话,每个对话都包含三轮(2人对话数据集(Person1,Person2,Person1)),因此训练集、验证集、测试集各包含90,480、8265和16,527个子句(utterances)。

这个数据集存在严重的类别不均衡现象,和其他数据不均衡现象有所区别,它在训练集比较均衡,但在验证集和测试集中每一个情感类别数据大约占总体的<4%(符合实际情况,实际对话中大部分子句是不包含任何情感的),具体统计情况如下:

与一般的判断给定文本/句子情感的任务不同,该任务的的目标是,给定一个对话(3轮),判断最后一轮/最后一个子句说话者所表达的情感,建模时需要利用对话的上下文(context)来判断最后一个子句的情感。

数据集的每个对话中,只有最后一个子句有情感标签,该数据集的情感标签分为三类:Happiness、Sadness、Anger还有一个附加的标签(others)。其中有5740个对话标签为Happiness,6816个对话标签为Sadness,6533个对话标签为Anger,剩余对话标签全为others。比赛采用的评估指标为:micro F1-score(只在三个情感类别Happiness、Sadness、Anger上计算micro F1-score,不包括others。本文所采用模型的最好结果是 0.6717)数据集样例如下图所示:

虽然这只是一个包含3轮对话且只有最后一轮对话有情感标签的数据集,但是可以把基于该数据集训练的模型,应用到更广泛的场景,如判断一个对话中任意一个子句的情感。假设该对话包含N个子句/N轮,若要判断第i个子句的情感,只需要把第i个子句连同第i-1,i-2个子句一同喂给训练好的模型,就可以判断第i个子句的情感了。其中i=1,...,N ,对话中每一个子句的情感就可以确定了(对 对话中前两个子句判断情感时,可以通过填充实现)。

 

2. 模型描述

  • 数据预处理

数据集中的对话是非正式的社交媒体文本(英文),因此可以使用ekphrasis/nltk等工具对数据进行预处理,文本预处理流程包括:缩写展开、拼写检查、单词规范化、单词标注、分词、将表情符号替换为合适的关键词、去除停止词、词干提取等。

  • turn-level encoder

把输入对话切分为3轮/3个子句,并行通过两个深度学习模型submodel1和submodel2.

submodel1:把三个子句的单词分别通过embedding层(可以使用预训练词向量、原文没有使用预训练)转换为词向量,使用三个CuDNNGRU(Keras中基于CuDNN的快速GRU实现,可以认为就是一个GRU)对三个子句分别进行编码,把三个GRU的编码结果进行拼接,在通过一个全局最大池化层,再通过两个全连接层(50单元,ReLU),得到submodel1的输出。

submodel2:把三个子句的单词分别通过embedding层(可以使用预训练词向量、原文没有使用预训练)转换为词向量,使用三个CNN对三个子句分别进行编码,把三个CNN的编码结果进行全局最大池化,最池化结果再进行拼接,再通过两个全连接层(100单元,Sigmoid),得到submodel2的输出。

  • dialogue-level encoder

submodel3:将输入对话看作一个整体来提取特征,首先使用TF-IDF对 对话提取语义特征,再把结果通过全连接层;然后使用SenticNet对每个词检索情感标签,然后把该词替换为检索到的情感标签,对于检索不到情感标签的词直接从对话中删除,然后对 替换完情感标签的对话,使用TF-IDF提取(情感标签)特征,把结果通过全连接层;最后把两个全连接层的结果进行拼接,再通过两个全连接层(50单元,ReLU),得到submodel3的输出。

  • emotion classification

把三个submodel 的输出拼接在一起(把手工特征TF-IDF和自动提取的特征混合),再通过两个全连接层(50单元,ReLU),再通过输出层进行分类。

 

3. 实验

 

 

  相关解决方案