Evaluates language models' ability to recognize and decompose fine-grained human emotions from self-disclosed narratives. It probes whether models can align with human emotional expressions across 10 Plutchik-based dimensions (8 basic emotions + 2 sentiments) rather than just predicting surface-level emotion words. Use when the user wants to benchmark on EXPRESS, or asks about evaluating this task. Reports F1_V.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill express-emotion-recognition-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Express Emotion Recognition Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-express-emotion-recognition-eval)More formats (shields.io, HTML) on the badges page.
---
name: express-emotion-recognition-eval
description: Evaluates language models' ability to recognize and decompose fine-grained human emotions from self-disclosed narratives. It probes whether models can align with human emotional expressions across 10 Plutchik-based dimensions (8 basic emotions + 2 sentiments) rather than just predicting surface-level emotion words. Use when the user wants to benchmark on EXPRESS, or asks about evaluating this task. Reports F1_V.
metadata:
skill_kind: dataset_eval
source_arxiv: 2509.09593
bibtex_key: shu2025fluent
confidence: high
---
# express-emotion-recognition-eval
> Fluent but Unfeeling: The Emotional Blind Spots of Language Models — Shu et al. (2025) (arXiv:2509.09593, 2025)
## What this evaluates
Evaluates language models' ability to recognize and decompose fine-grained human emotions from self-disclosed narratives. It probes whether models can align with human emotional expressions across 10 Plutchik-based dimensions (8 basic emotions + 2 sentiments) rather than just predicting surface-level emotion words.
## Datasets
- **EXPRESS** — total 33679; splits: test (-1); repo https://github.com/Computing-for-Social-Good-CSG/express-emotion-recognition.git
## Metrics
- `Acc_L` — range: [0, 1]
- Lexical accuracy: the proportion of instances where the model's predicted emotion word exactly matches the human self-disclosed emotion word.
- `Acc_V` — range: [0, 1]
- Vector accuracy: the proportion of instances where the model's predicted 10-dimensional emotion vector exactly matches the ground-truth human vector.
- `F1_V` **(primary)** — range: [0, 1]
- Average Vector F-1 Score: macro-averaged F1 score computed across the 10 emotion dimensions of the predicted vs. ground-truth emotion vectors.
## Input / output format
**Input**: Text of a human self-disclosed emotional experience (Reddit post), optionally accompanied by few-shot examples or CoT instructions.
**Output**: A predicted emotion word and/or a 10-dimensional binary/continuous vector representing the decomposed emotion according to Plutchik’s Wheel.
## Scoring recipe
```python
def score(predictions, golds):
acc_l = sum(1 for p, g in zip(predictions, golds) if p.word == g.word) / len(predictions)
acc_v = sum(1 for p, g in zip(predictions, golds) if p.vector == g.vector) / len(predictions)
f1_v = 0.0
for dim in range(10):
tp = sum(1 for p, g in zip(predictions, golds) if p.vector[dim] == 1 and g.vector[dim] == 1)
fp = sum(1 for p, g in zip(predictions, golds) if p.vector[dim] == 1 and g.vector[dim] == 0)
fn = sum(1 for p, g in zip(predictions, golds) if p.vector[dim] == 0 and g.vector[dim] == 1)
prec = tp / (tp + fp) if (tp + fp) > 0 else 0
rec = tp / (tp + fn) if (tp + fn) > 0 else 0
f1_v += 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 0
f1_v /= 10
return acc_l, acc_v, f1_v
```
## Common pitfalls
- CoT prompting consistently degrades performance on this task, contrary to its success in many reasoning benchmarks.
- Segmenting long posts into 512-token chunks does not disadvantage models with larger context windows, as full-post evaluation yields nearly identical results.
- Models often predict semantically plausible but contextually shallow emotions, overusing words like 'anxious' or 'frustrated' while missing human nuances like 'disheartened' or 'panicked'.
## Evidence (verbatim from paper)
> Here, we present our findings on the emotion recognition capabilities of LLMs evaluated on the EXPRESS dataset. ... $Acc_{L}$ ranged from 0.051 to 0.318, while $Acc_{V}$, slightly higher, ranged from 0.097 to 0.388. $F1_{V}$ ranged from 0.434 to 0.711, compared to a baseline of randomly generated vectors at 0.322.
## Citation
```bibtex
@misc{shu2025fluent,
title={Fluent but Unfeeling: The Emotional Blind Spots of Language Models},
author={Shu et al. (2025)},
year={2025},
note={arXiv:2509.09593}
}
```
- arXiv: 2509.09593
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!