CoolFace
Datasetpublic

masked-kunsiquat/shreevastava-cognitive-distortions

Multi-label cognitive distortion classification dataset used to train the DistortionMlp head in the Lattice on-device CBT journaling app. Sources Config File Rows Classes covered Origin corpus data/corpus.jsonl 2530 10 (all except DISQUALIFYING_POSITIVE, BLAME) Shreevastava et al. therapy forum posts — human-annotated synth data/synth_disqualifying_positive.jsonl 307 DISQUALIFYING_POSITIVE Claude-generated synthetic synth data/synth_blame.jsonl 339 BLAME… See the full description on the dataset page: https://huggingface.co/datasets/masked-kunsiquat/shreevastava-cognitive-distortions.

sourceHugging Facemitupdated 5mo agoView on Hugging Face
1likes38downloads
Dataset Card

Multi-label cognitive distortion classification dataset used to train the DistortionMlp head in the Lattice on-device CBT journaling app.

Sources

ConfigFileRowsClasses coveredOrigin
corpusdata/corpus.jsonl253010 (all except DISQUALIFYING_POSITIVE, BLAME)Shreevastava et al. therapy forum posts — human-annotated
synthdata/synth_disqualifying_positive.jsonl307DISQUALIFYING_POSITIVEClaude-generated synthetic
synthdata/synth_blame.jsonl339BLAMEClaude-generated synthetic

The default config combines all three (3176 rows total).

Schema

Each row:

json
{"text": "...", "labels": [false, true, false, ...]}

labels is a 12-element boolean array. Index → class mapping:

Index`CognitiveDistortion`Burns label
0ALL_OR_NOTHINGAll-or-Nothing Thinking
1OVERGENERALIZATIONOvergeneralization
2MENTAL_FILTERMental Filter
3DISQUALIFYING_POSITIVEDisqualifying the Positive
4MIND_READINGMind Reading
5FORTUNE_TELLINGFortune-Telling
6CATASTROPHIZINGMagnification / Catastrophizing
7EMOTIONAL_REASONINGEmotional Reasoning
8SHOULD_STATEMENTSShould Statements
9LABELINGLabeling
10PERSONALIZATIONPersonalization
11BLAMEBlame

Rows with all-false labels represent "No Distortion" examples. Multi-label rows have more than one true entry.

Corpus label mapping

The Shreevastava et al. corpus uses different label strings. The mapping applied during ingestion (DistortionCorpusMapper):

Corpus labelIndex
All-or-nothing thinking0
Overgeneralization1
Mental filter2
Mind Reading4
Fortune-telling5
Magnification6
Emotional Reasoning7
Should statements8
Labeling9
Personalization10
No Distortionall-zeros

Usage

python
from datasets import load_dataset

# Full combined dataset
ds = load_dataset("masked-kunsiquat/shreevastava-cognitive-distortions")

# Corpus only
corpus = load_dataset("masked-kunsiquat/shreevastava-cognitive-distortions", "corpus")

# Check class balance
from collections import Counter
label_counts = Counter()
for row in ds["train"]:
    for i, v in enumerate(row["labels"]):
        if v:
            label_counts[i] += 1