GoEmotions:用于细粒度情感分类的数据集

发布时间:2021-11-28编辑:RainNight阅读(177)

    情绪是社交互动的一个关键方面,影响着人们的行为方式并塑造了人际关系。对于语言来说尤其如此——只需几个词,我们就能表达出各种微妙而复杂的情感。因此,使机器能够理解上下文和情感一直是研究界的长期目标,这反过来又将实现各种应用程序,包括移情聊天机器人,检测有害在线行为的模型以及改进的客户支持交互。

    在过去的十年中,NLP研究界已经为基于语言的情感分类提供了几个数据集。其中大多数是手动构建的,涵盖了目标领域(新闻标题,电影字幕,甚至童话故事),但往往相对较小,或者只关注1992年提出的六种基本情绪(愤怒,惊讶,厌恶,喜悦,恐惧和悲伤)。虽然这些情绪数据集使对情绪分类的初步探索成为可能,但它们也强调了对更广泛的情绪集进行大规模数据集的需求,这些数据集可以促进更广泛的未来潜在应用。

    在”GoEmotions:细粒度情绪数据集”中,我们描述了GoEmotions,这是一个人类注释的数据集,其中包含从流行的英语子reddit中提取的58k Reddit评论,并标有27个情感类别。作为迄今为止最大的完全注释的英语细粒度情感数据集,我们在设计GoEmotions分类法时考虑了心理学和数据的适用性。与仅包含一种积极情绪(喜悦)的基本六种情绪相比,我们的分类法包括12种积极情绪,11种消极情绪,4种模棱两可的情绪类别和1种”中性”,使其广泛适用于需要情感表达之间微妙区分的对话理解任务。

    我们正在发布GoEmotions数据集以及一个详细的教程,该教程演示了使用GoEmotions训练神经模型架构(可在TensorFlow Model Garden上获得)并将其应用于基于会话文本建议表情符号的任务的过程。在GoEmotions 模型卡中,我们探讨了使用 GoEmotions 构建的模型的其他用途,以及使用数据的注意事项和限制。

    file

    file

    file

    这段文字同时表达了几种情感,包括兴奋、赞同和感激。

    这段文字表达了解脱,一种复杂的情感,传达了积极和消极的情绪。

    这段文字传达了悔恨,这是一种复杂的情感,经常被表达,但不能被简单的情感模型所捕捉。

    构建数据集

    我们的目标是构建一个大型数据集,专注于对话数据,其中情感是沟通的关键组成部分。由于Reddit平台提供了大量的公开内容,其中包括直接的用户对用户对话,因此它是情感分析的宝贵资源。因此,我们从2005年(Reddit的开始)到2019年1月使用Reddit评论构建了GoEmotions,这些评论来自至少10k评论的subreddits,不包括已删除和非英语的评论。

    为了能够构建具有广泛代表性的情感模型,我们应用了数据管理措施,以确保数据集不会强化一般或特定于情感的语言偏见。这一点尤其重要,因为Reddit有一个已知的人口偏见,倾向于年轻的男性用户,这并不能反映全球多元化的人口。该平台还引入了对有毒,冒犯性语言的偏向 。为了解决这些问题,我们使用预定义的术语来识别有害评论,这些术语用于冒犯性/成人和粗俗内容,以及身份和宗教,我们将其用于数据过滤和屏蔽。我们还过滤了数据,以减少亵渎性语言,限制文本长度,并平衡所表示的情绪和情绪。为了避免过度代表流行的subreddits,并确保评论也反映不太活跃的subreddit,我们还平衡了subreddit社区之间的数据。

    我们创建了一个分类法,旨在共同最大化三个目标:(1)提供Reddit数据中表达的情感的最大覆盖范围;(2)提供最大覆盖的情感表达类型;(3)限制情绪的总数及其重叠。这样的分类法允许数据驱动的细粒度情感理解,同时还可以解决某些情绪的潜在数据稀疏性。

    建立分类法是定义和优化情感标签类别的迭代过程。在数据标记阶段,我们总共考虑了56个情绪类别。从这个样本中,我们识别并删除了评分者很少选择的情绪,由于与其他情绪的相似性而具有低的内陆者一致性,或者难以从文本中检测到的情绪。我们还添加了评分者经常建议的情绪,并在数据中得到了很好的体现。最后,我们改进了情感类别名称,以最大限度地提高可解释性,从而实现了高内译者一致性,94%的示例至少有两个评分者同意至少1个情感标签。

    已发布的GoEmotions数据集包括下面介绍的分类法,并通过最后一轮数据标记完全收集,其中分类法和评级标准都是预定义和固定的。

    file

    数据分析和结果

    情绪在 GoEmotions 数据集中分布不均匀。重要的是,积极情绪的高频率强化了我们进行更多样化的情绪分类的动机,而不是规范的六种基本情绪所提供的。

    file

    为了验证我们的分类选择是否与基础数据相匹配,我们进行了主保留成分分析(PPCA),这是一种通过提取情绪判断的线性组合来比较两个数据集的方法,这些情绪判断在两组评分器中表现出最高的联合变异性。因此,它有助于我们发现在评分者之间具有高度一致性的情感维度。PPCA以前被用来理解视频和语音中情感识别的主要维度,我们在这里用它来理解文本中情感的主要维度。

    我们发现每个分量都很重要(所有维度的 p 值< 1.5e-6),这表明每个情绪捕获了数据的唯一部分。这并非易事,因为在之前关于言语中情绪识别的工作中,30个情绪维度中只有12个被发现是重要的。

    我们根据评分者判断之间的相关性来检查所定义情绪的聚类。通过这种方法,当两种情绪经常被评分者共同选择时,它们将聚集在一起。我们发现,就其情绪(消极,积极和模糊)相关的情绪聚集在一起,尽管在我们的分类中没有预先定义的情绪概念,表明评级的质量和一致性。例如,如果一个评分者选择”兴奋”作为给定评论的标签,那么另一个评分者更有可能选择相关的情绪,例如”喜悦”,而不是”恐惧”。也许令人惊讶的是,所有模棱两可的情绪都聚集在一起,它们与积极的情绪聚在一起。

    file

    同样,就其强度而言相关的情绪,如喜悦和兴奋,紧张和恐惧,悲伤和悲伤,烦恼和愤怒,也是密切相关的。

    file

    我们的论文提供了使用GoEmotions进行的其他分析和建模实验。

    未来工作:人类标记的

    替代方案 虽然GoEmotions提供了大量人类注释的情绪数据,但存在其他使用启发式方法进行自动弱标记的情绪数据集。占主导地位的启发式方法使用与情感相关的Twitter标签作为情感类别,这允许人们廉价地生成大型数据集。但是,由于多种原因,这种方法受到限制:Twitter上使用的语言与许多其他语言域明显不同,从而限制了数据的适用性;标记是人为生成的,当直接使用时,容易出现重复、重叠和其他分类不一致;这种方法对Twitter的特殊性限制了它对其他语言语料库的应用。

    我们提出了一种替代的,更容易获得的启发式方法,其中嵌入在用户对话中的表情符号作为情感类别的代理。这种方法可以应用于任何包含合理出现的表情符号的语言语料库,包括许多会话的表情符号。由于表情符号比Twitter标签更标准化,更少稀疏,因此它们呈现的不一致更少。

    请注意,这两种提出的方法 - 使用Twitter标签和使用表情符号 - 都不是直接针对情感理解,而是针对对话表达的变体。例如,在下面的对话中,

Collect from 雨夜的博客 雨夜的博客