five

plaguss/go_emotions_raw

收藏
Hugging Face2023-11-24 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/plaguss/go_emotions_raw
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集名为go_emotions_raw,由Argilla创建,包含一个符合Argilla数据集格式的配置文件`argilla.yaml`,以及兼容HuggingFace `datasets`库的记录。数据集主要用于文本分类任务,包含多个字段、问题、建议、元数据和向量。数据集的记录包括文本字段和多个标签,标签用于分类文本内容。数据集可以通过Argilla或`datasets`库加载。

该数据集名为go_emotions_raw,由Argilla创建,包含一个符合Argilla数据集格式的配置文件`argilla.yaml`,以及兼容HuggingFace `datasets`库的记录。数据集主要用于文本分类任务,包含多个字段、问题、建议、元数据和向量。数据集的记录包括文本字段和多个标签,标签用于分类文本内容。数据集可以通过Argilla或`datasets`库加载。
提供机构:
plaguss
原始信息汇总

数据集卡片 for go_emotions_raw

数据集描述

  • 数据集摘要
    • 该数据集包含一个符合Argilla数据集格式的配置文件argilla.yaml。该配置文件将在使用Argilla的FeedbackDataset.from_huggingface方法时用于配置数据集。
    • 数据集记录采用与HuggingFace datasets兼容的格式。这些记录在使用FeedbackDataset.from_huggingface时会自动加载,也可以通过datasets库独立加载。
    • 如果已在Argilla中定义,数据集还包括用于构建和整理数据集的标注指南

加载数据集

使用Argilla加载

python import argilla as rg

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

使用datasets加载

python from datasets import load_dataset

ds = load_dataset("plaguss/go_emotions_raw")

支持的任务和排行榜

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

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

数据集结构

数据在Argilla中

数据集在Argilla中创建,包含以下内容:

  • 字段:数据集记录本身,目前仅支持文本字段。这些字段将用于提供对问题的响应。

    字段名称 标题 类型 必填 Markdown
    text 文本 text True False
  • 问题:向标注者提出的问题。它们可以是不同类型,如评分、文本、标签选择、多标签选择或排序。

    问题名称 标题 类型 必填 描述 值/标签
    label 标签 multi_label_selection True 通过从给定的标签列表中选择正确的标签来对文本进行分类。 [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]
  • 建议:人类或机器生成的建议,以协助标注者在标注过程中,这些建议总是与现有问题相关联,并命名为追加"-suggestion"和"-suggestion-metadata",包含建议的值及其元数据。

  • 元数据:一个字典,用于提供有关数据集记录的额外信息。这可以为标注者提供额外的上下文,或提供有关数据集记录本身的额外信息。元数据总是可选的,并且可以与argilla.yaml中的metadata_properties定义相关联。

  • 指南:可选的,只是一个纯字符串,用于向标注者提供指示。请参阅标注指南部分。

数据实例

在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! " }

数据字段

数据集字段包括以下内容:

  • 字段:数据集记录本身,目前仅支持文本字段。这些字段将用于提供对问题的响应。

    • text 类型为 text
  • 问题:向标注者提出的问题。它们可以是不同类型,如RatingQuestionTextQuestionLabelQuestionMultiLabelQuestionRankingQuestion

    • label 类型为 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],描述为“通过从给定的标签列表中选择正确的标签来对文本进行分类”。
  • 建议:自Argilla 1.13.0起,建议已包含在内,以提供标注者在标注过程中简化或协助。建议与现有问题相关联,总是可选的,并且不仅包含建议本身,还包含与之相关的元数据(如果适用)。

    • (可选)label-suggestion 类型为 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]。

此外,还有两个可选字段:

  • metadata:一个可选字段,用于提供有关数据集记录的额外信息。这可以为标注者提供额外的上下文,或提供有关数据集记录本身的额外信息。例如,您可以使用此字段提供数据集记录的原始来源链接,或提供有关数据集记录本身的额外信息,如作者、日期或来源。元数据总是可选的,并且可以与argilla.yaml中的metadata_properties定义相关联。
  • external_id:一个可选字段,用于为数据集记录提供外部ID。如果您希望将数据集记录链接到外部资源(如数据库或文件),这可能很有用。

数据分割

数据集包含一个单一分割,即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)}

合并数据集并转换为pd.DataFrame

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

获取最终标签作为字典,稍后将这些标签作为建议包含在内

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

向数据集添加标签并仅保留相关列

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()

创建用于文本分类的FeedbackDataset

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

创建带有原始响应的记录,并使用“简化”go_emotions数据集中的最终标签作为建议

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)

推送到hub

feedback_dataset.push_to_huggingface("plaguss/go_emotions_raw")

标注指南

这是一个文本分类数据集,包含文本和标签。给定一组文本和预定义的标签集,文本分类的目标是根据其内容为每个文本分配一个或多个标签。请通过做出正确的选择来对文本进行分类。

5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作