sentiment-reasoning-healthcare-eval
Sentiment Reasoning for Healthcare — Nguyen et al. (2024) (arXiv:2407.21054, 2024)
What this evaluates
Evaluates a model's ability to jointly classify sentiment (negative, neutral, positive) from healthcare transcripts and generate semantically coherent rationales explaining the classification. It probes multimodal sentiment analysis, explainable AI, and chain-of-thought reasoning in a clinical dialogue setting.
Datasets
Metrics
accuracy (primary) — range: [0, 1]
- The proportion of correctly predicted sentiment labels out of the total number of instances. Labels are mapped to 0 (NEGATIVE), 1 (NEUTRAL), and 2 (POSITIVE).
class-wise F1 score — range: [0, 1]
- Macro-averaged F1 score computed across the three sentiment classes (NEGATIVE, NEUTRAL, POSITIVE), balancing precision and recall for each class equally.
ROUGE score — range: [0, 1]
- Recall-oriented n-gram overlap metric measuring the lexical overlap between the generated rationale and the human-annotated reference rationale.
BERTScore — range: [0, 1]
- Contextual embedding similarity metric that computes precision, recall, and F1 between generated and reference rationales using a pre-trained BERT model to capture semantic nuances.
Input / output format
Input: Transcript text (derived from human speech or ASR) representing a healthcare conversation turn.
Output: A sentiment label (0, 1, or 2) followed by a text rationale explaining the sentiment. Rationales may follow standard, elaborated, or step-by-step CoT formats.
Scoring recipe
def compute_metrics(predictions, gold_labels, generated_rationales, reference_rationales):
# Accuracy & F1
preds = [int(p) for p in predictions]
acc = sum(p == g for p, g in zip(preds, gold_labels)) / len(gold_labels)
f1 = macro_f1_score(gold_labels, preds)
# ROUGE & BERTScore
rouge = rouge_l_score(generated_rationales, reference_rationales)
bert = bertscore_score(generated_rationales, reference_rationales)
return {'accuracy': acc, 'f1': f1, 'rouge': rouge, 'bertscore': bert}
Common pitfalls
- ASR transcripts have a high Word-Error-Rate (~29.6%), which can artificially depress classification accuracy and rationale quality compared to human transcripts.
- ROUGE and BERTScore measure lexical/semantic overlap but do not verify the logical correctness or clinical safety of the generated rationales.
- Models must strictly output numeric labels (0, 1, 2) rather than text strings; failure to enforce this format during inference will break accuracy calculation.
Evidence (verbatim from paper)
For Sentiment Classificationtask, we employ accuracy and class-wise F1 score. For Rationale Generation, we employ ROUGE (Recall-Oriented Understudy for Gisting Evaluation) score Lin ([2004]). Also, we employ BERTScore [Zhang et al] which captures the contextual and semantic nuances. BERTscore has shown to correlate well with human judgment.
Citation
@misc{nguyen2024sentimentreasoning,
title={Sentiment Reasoning for Healthcare},
author={Nguyen et al. (2024)},
year={2024},
note={arXiv:2407.21054}
}
1---2name: sentiment-reasoning-healthcare-eval3description: Evaluates a model's ability to jointly classify sentiment (negative, neutral, positive) from healthcare transcripts and generate semantically coherent rationales explaining the classification. It probes multimodal sentiment analysis, explainable AI, and chain-of-thought reasoning in a clinical dialogue setting. Use when the user wants to benchmark on Sentiment Reasoning dataset, or asks about evaluating this task. Reports accuracy.4---56# sentiment-reasoning-healthcare-eval78> Sentiment Reasoning for Healthcare — Nguyen et al. (2024) (arXiv:2407.21054, 2024)910## What this evaluates1112Evaluates a model's ability to jointly classify sentiment (negative, neutral, positive) from healthcare transcripts and generate semantically coherent rationales explaining the classification. It probes multimodal sentiment analysis, explainable AI, and chain-of-thought reasoning in a clinical dialogue setting.1314## Datasets1516- **Sentiment Reasoning dataset** — total 30000; splits: test (-1); repo https://github.com/leduckhai/Sentiment-Reasoning1718## Metrics1920- `accuracy` **(primary)** — range: [0, 1]21 - The proportion of correctly predicted sentiment labels out of the total number of instances. Labels are mapped to 0 (NEGATIVE), 1 (NEUTRAL), and 2 (POSITIVE).22- `class-wise F1 score` — range: [0, 1]23 - Macro-averaged F1 score computed across the three sentiment classes (NEGATIVE, NEUTRAL, POSITIVE), balancing precision and recall for each class equally.24- `ROUGE score` — range: [0, 1]25 - Recall-oriented n-gram overlap metric measuring the lexical overlap between the generated rationale and the human-annotated reference rationale.26- `BERTScore` — range: [0, 1]27 - Contextual embedding similarity metric that computes precision, recall, and F1 between generated and reference rationales using a pre-trained BERT model to capture semantic nuances.2829## Input / output format3031**Input**: Transcript text (derived from human speech or ASR) representing a healthcare conversation turn.3233**Output**: A sentiment label (0, 1, or 2) followed by a text rationale explaining the sentiment. Rationales may follow standard, elaborated, or step-by-step CoT formats.3435## Scoring recipe3637```python38def compute_metrics(predictions, gold_labels, generated_rationales, reference_rationales):39 # Accuracy & F140 preds = [int(p) for p in predictions]41 acc = sum(p == g for p, g in zip(preds, gold_labels)) / len(gold_labels)42 f1 = macro_f1_score(gold_labels, preds)43 # ROUGE & BERTScore44 rouge = rouge_l_score(generated_rationales, reference_rationales)45 bert = bertscore_score(generated_rationales, reference_rationales)46 return {'accuracy': acc, 'f1': f1, 'rouge': rouge, 'bertscore': bert}47```4849## Common pitfalls5051- ASR transcripts have a high Word-Error-Rate (~29.6%), which can artificially depress classification accuracy and rationale quality compared to human transcripts.52- ROUGE and BERTScore measure lexical/semantic overlap but do not verify the logical correctness or clinical safety of the generated rationales.53- Models must strictly output numeric labels (0, 1, 2) rather than text strings; failure to enforce this format during inference will break accuracy calculation.5455## Evidence (verbatim from paper)5657> For Sentiment Classificationtask, we employ accuracy and class-wise F1 score. For Rationale Generation, we employ ROUGE (Recall-Oriented Understudy for Gisting Evaluation) score Lin ([2004]). Also, we employ BERTScore *[Zhang et al]* which captures the contextual and semantic nuances. BERTscore has shown to correlate well with human judgment.5859## Citation6061```bibtex62@misc{nguyen2024sentimentreasoning,63 title={Sentiment Reasoning for Healthcare},64 author={Nguyen et al. (2024)},65 year={2024},66 note={arXiv:2407.21054}67}68```6970- arXiv: 2407.21054