five

argilla/go_emotions_raw

收藏
Hugging Face2023-11-27 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/argilla/go_emotions_raw
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集是通过Argilla工具创建的,包含了go_emotions数据集的原始版本,每个原始问题都被定义为一个FeedbackRecord,并包含了每个注释者的响应。数据集的主要用途是展示注释者之间的一致性以及响应与建议之间的度量。数据集包含一个配置文件argilla.yaml和与HuggingFace datasets兼容的记录格式。数据集可以通过Argilla或datasets库加载。数据集的字段包括文本字段、问题字段、建议字段、元数据字段和向量字段。数据集的结构包括字段、问题、建议、元数据和注释指南。数据集的创建过程包括加载原始数据集、处理标签、创建反馈数据集并推送到HuggingFace。

该数据集是通过Argilla工具创建的,包含了go_emotions数据集的原始版本,每个原始问题都被定义为一个FeedbackRecord,并包含了每个注释者的响应。数据集的主要用途是展示注释者之间的一致性以及响应与建议之间的度量。数据集包含一个配置文件argilla.yaml和与HuggingFace datasets兼容的记录格式。数据集可以通过Argilla或datasets库加载。数据集的字段包括文本字段、问题字段、建议字段、元数据字段和向量字段。数据集的结构包括字段、问题、建议、元数据和注释指南。数据集的创建过程包括加载原始数据集、处理标签、创建反馈数据集并推送到HuggingFace。
提供机构:
argilla
原始信息汇总

数据集卡片 for go_emotions_raw

数据集描述

  • 数据集概述:该数据集包含go_emotions的原始版本,作为一个FeedbackDataset。每个原始问题被定义为一个单独的FeedbackRecord,并包含每个标注者的responses。简化版本数据集中的最终标签被用作suggestions,以便我们可以使用此数据集展示标注者之间的一致性以及responsessuggestions的指标。

  • 数据集内容

    • 一个符合Argilla数据集格式的配置文件argilla.yaml
    • 与HuggingFace datasets兼容的数据集记录。
    • 用于构建和整理数据集的标注指南(如果已在Argilla中定义)。

加载数据集

使用Argilla加载

python import argilla as rg

ds = rg.FeedbackDataset.from_huggingface("argilla/go_emotions_raw")

使用datasets库加载

python from datasets import load_dataset

ds = load_dataset("argilla/go_emotions_raw")

支持的任务和排行榜

该数据集可以包含多个字段、问题和响应,因此可以用于不同的NLP任务,具体取决于配置。数据集结构在数据集结构部分描述。

该数据集没有关联的排行榜。

数据集结构

数据在Argilla中的结构

数据集在Argilla中包含以下部分:

  • 字段(Fields)

    • text:类型为FieldTypes.text
  • 问题(Questions)

    • label:类型为QuestionTypes.multi_label_selection,允许的值包括[admiration, amusement, anger, annoyance, approval, caring, confusion, curiosity, desire, disappointment, disapproval, disgust, embarrassment, excitement, fear, gratitude, grief, joy, love, nervousness, optimism, pride, realization, relief, remorse, sadness, surprise, neutral]。
  • 建议(Suggestions)

    • label-suggestion:类型为QuestionTypes.multi_label_selection,允许的值与label相同。
  • 元数据(Metadata)

    • 可选字段,用于提供数据记录的额外信息。
  • 外部ID(external_id)

    • 可选字段,用于提供数据记录的外部ID。

数据实例

在Argilla中的数据实例示例如下:

json { "external_id": null, "fields": { "text": " "If you donu0027t wear BROWN AND ORANGE...YOU DONu0027T MATTER!" We need a tshirt with that on it asap! " }, "metadata": {}, "responses": [ { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000001", "values": { "label": { "value": [ "neutral" ] } } }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000016", "values": { "label": { "value": [ "anger", "annoyance", "optimism" ] } } }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000028", "values": { "label": { "value": [ "approval" ] } } }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000039", "values": { "label": { "value": [ "neutral" ] } } }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000048", "values": { "label": { "value": [ "annoyance" ] } } } ], "suggestions": [ { "agent": null, "question_name": "label", "score": null, "type": "human", "value": [ "annoyance", "neutral" ] } ], "vectors": {} }

在HuggingFace datasets中的数据实例示例如下:

json { "external_id": null, "label": [ { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000001", "value": [ "neutral" ] }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000016", "value": [ "anger", "annoyance", "optimism" ] }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000028", "value": [ "approval" ] }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000039", "value": [ "neutral" ] }, { "status": "submitted", "user_id": "00000000-0000-0000-0000-000000000048", "value": [ "annoyance" ] } ], "label-suggestion": [ "annoyance", "neutral" ], "label-suggestion-metadata": { "agent": null, "score": null, "type": "human" }, "metadata": "{}", "text": " "If you donu0027t wear BROWN AND ORANGE...YOU DONu0027T MATTER!" We need a tshirt with that on it asap! " }

数据分割

数据集包含一个分割,即train

数据集创建

生成脚本

python import argilla as rg from datasets import load_dataset import uuid from datasets import concatenate_datasets

ds = load_dataset("go_emotions", "raw", split="train") ds_prepared = load_dataset("go_emotions")

_CLASS_NAMES = [ "admiration", "amusement", "anger", "annoyance", "approval", "caring", "confusion", "curiosity", "desire", "disappointment", "disapproval", "disgust", "embarrassment", "excitement", "fear", "gratitude", "grief", "joy", "love", "nervousness", "optimism", "pride", "realization", "relief", "remorse", "sadness", "surprise", "neutral", ] label_to_id = {label: i for i, label in enumerate(_CLASS_NAMES)} id_to_label = {i: label for i, label in enumerate(_CLASS_NAMES)}

Concatenate the datasets and transform to pd.DataFrame

ds_prepared = concatenate_datasets([ds_prepared["train"], ds_prepared["validation"], ds_prepared["test"]]) df_prepared = ds_prepared.to_pandas()

Obtain the final labels as a dict, to later include these as suggestions

labels_prepared = {} for idx in df_prepared.index: labels = [id_to_label[label_id] for label_id in df_prepared[labels][idx]] labels_prepared[df_prepared[id][idx]] = labels

Add labels to the dataset and keep only the relevant columns

def add_labels(ex): labels = [] for label in _CLASS_NAMES: if ex[label] == 1: labels.append(label) ex["labels"] = labels

return ex

ds = ds.map(add_labels) df = ds.select_columns(["text", "labels", "rater_id", "id"]).to_pandas()

Create a FeedbackDataset for text classification

feedback_dataset = rg.FeedbackDataset.for_text_classification(labels=_CLASS_NAMES, multi_label=True)

Create the records with the original responses, and use as suggestions

the final labels in the "simplified" go_emotions dataset.

records = [] for text, df_text in df.groupby("text"): responses = [] for rater_id, df_raters in df_text.groupby("rater_id"): responses.append( { "values": {"label": {"value": df_raters["labels"].iloc[0].tolist()}}, "status": "submitted", "user_id": uuid.UUID(int=rater_id), } ) suggested_labels = labels_prepared.get(df_raters["id"].iloc[0], None) if not suggested_labels: continue suggestion = [ { "question_name": "label", "value": suggested_labels, "type": "human", } ] records.append( rg.FeedbackRecord( fields={"text": df_raters["text"].iloc[0]}, responses=responses, suggestions=suggestion ) )

feedback_dataset.add_records(records)

Push to the hub

feedback_dataset.push_to_huggingface("plaguss/go_emotions_raw")

搜集汇总
数据集介绍
main_image_url
构建方式
在情感计算领域,高质量标注数据是模型训练的基础。argilla/go_emotions_raw数据集源自go_emotions原始版本,通过Argilla平台重构为反馈数据集格式。其构建过程首先加载原始标注数据,将每条文本及其对应的多位标注者响应整合为独立的反馈记录。原始简化版本中的最终标签被转化为建议标签,从而保留了每位标注者的独立判断,为研究标注者间一致性提供了原始数据基础。该数据集通过结构化转换,确保了标注过程的透明性和数据的可追溯性。
特点
该数据集的核心特点在于其保留了情感分类任务中的原始标注多样性。每条记录不仅包含文本内容,还完整收录了多位标注者对于二十八种情感类别的独立多标签选择,展现了人类情感理解的复杂性。数据集以反馈数据集格式组织,明确区分了字段、问题、响应和建议等结构,便于深入分析标注者间的分歧与共识。这种设计使得数据集不仅能用于训练情感分类模型,更可作为研究标注者行为、评估标注质量以及开发共识算法的宝贵资源。
使用方法
在自然语言处理研究中,该数据集为情感分析任务提供了丰富的实验材料。用户可通过Argilla客户端库直接加载数据集,利用其内置功能进行数据探索和标注分析。同时,数据集也兼容Hugging Face的datasets库,方便集成至主流机器学习工作流。研究者可依据反馈记录中的多响应数据,计算标注者间一致性指标,或对比原始响应与建议标签的差异,从而评估不同标签整合策略的效果。该数据集适用于模型训练、标注质量评估及人机交互反馈机制等多个研究方向。
背景与挑战
背景概述
情感计算作为自然语言处理领域的关键分支,致力于赋予机器识别、理解和表达人类情感的能力。GoEmotions数据集由Google Research团队于2021年创建,旨在为细粒度情感分类提供高质量标注资源。该数据集从Reddit平台收集了超过58,000条英文评论,并标注了28种情感类别及中性标签,覆盖了从钦佩、娱乐到悲伤、惊喜等广泛的情感谱系。其核心研究问题在于解决传统情感分类模型在复杂、细微情感识别上的局限性,通过大规模、多标注者的数据构建,为情感分析模型的训练与评估提供了重要基准,显著推动了细粒度情感识别技术的发展。
当前挑战
GoEmotions数据集所解决的核心领域挑战在于细粒度情感分类的复杂性,即如何准确区分人类表达中微妙且往往交织的多种情感状态。传统二分类或简单多分类模型难以捕捉情感的重叠性与上下文依赖性,而该数据集通过多标签标注体系直接应对这一难题。在构建过程中,数据集面临的主要挑战包括标注者间一致性管理,由于情感主观性强,不同标注者对同一文本可能赋予差异显著的情感标签;此外,从社交媒体文本中提取并规范化非正式、含噪声的语言表达,确保数据质量与代表性,亦是一项艰巨任务。这些挑战共同凸显了情感标注工作中平衡主观性与客观标准的固有困难。
常用场景
经典使用场景
在情感计算与自然语言处理领域,argilla/go_emotions_raw数据集作为原始标注数据的集合,为研究者提供了深入探索文本情感多标签分类的宝贵资源。该数据集收录了来自真实场景的文本片段,并保留了多位标注者的独立标注结果,使得分析标注者间一致性、理解情感表达的复杂性成为可能。其经典使用场景在于构建和评估多标签情感分类模型,通过对比原始标注与简化版本标签的差异,研究者能够优化模型对细微情感交织的捕捉能力。
实际应用
在实际应用层面,基于argilla/go_emotions_raw数据集训练的模型能够赋能多种需要精细情感理解的产品与服务。例如,在社交媒体监控中,系统可以同时识别用户评论中蕴含的愤怒、失望与讽刺等多重情感,为企业提供更全面的舆情洞察。在心理健康辅助应用或人机对话系统中,准确识别复杂情感状态有助于提供更具共情能力的交互体验。此外,该数据集的结构也直接支持标注平台的工作流程优化与质量评估。
衍生相关工作
围绕该数据集衍生的经典工作主要集中在标注质量分析与模型训练方法创新。一方面,研究者利用其原始标注数据开发了新的标注者一致性度量指标与数据清洗算法,以提升数据集质量。另一方面,许多先进的多标签情感分类模型,特别是那些专注于建模标签相关性或处理标注噪声的神经网络架构,常以此数据集作为基准测试平台。这些工作共同推动了细粒度情感分析领域向更精准、更可靠的方向发展。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作