plaguss/go_emotions_raw
收藏数据集卡片 for go_emotions_raw
数据集描述
- 数据集摘要:
- 该数据集包含一个符合Argilla数据集格式的配置文件
argilla.yaml。该配置文件将在使用Argilla的FeedbackDataset.from_huggingface方法时用于配置数据集。 - 数据集记录采用与HuggingFace
datasets兼容的格式。这些记录在使用FeedbackDataset.from_huggingface时会自动加载,也可以通过datasets库独立加载。 - 如果已在Argilla中定义,数据集还包括用于构建和整理数据集的标注指南。
- 该数据集包含一个符合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。
- text 类型为
-
问题:向标注者提出的问题。它们可以是不同类型,如
RatingQuestion、TextQuestion、LabelQuestion、MultiLabelQuestion和RankingQuestion。- 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],描述为“通过从给定的标签列表中选择正确的标签来对文本进行分类”。
- label 类型为
-
建议:自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]。
- (可选)label-suggestion 类型为
此外,还有两个可选字段:
- 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")
标注指南
这是一个文本分类数据集,包含文本和标签。给定一组文本和预定义的标签集,文本分类的目标是根据其内容为每个文本分配一个或多个标签。请通过做出正确的选择来对文本进行分类。



