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.
Multi-label cognitive distortion classification dataset used to train the DistortionMlp head in the Lattice on-device CBT journaling app.
Sources
The default config combines all three (3176 rows total).
Schema
Each row:
{"text": "...", "labels": [false, true, false, ...]}labels is a 12-element boolean array. Index → class mapping:
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):
Usage
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