Skip to content
Back to skills

Semeval2017task4 Eval

ASecurity

Evaluates the ability of models to classify sentiment in social media posts (tweets) across different languages (English and Arabic) and granularities (overall polarity, topic-specific polarity, and ordinal scales). Use when the user wants to benchmark on SemEval-2017 Task 4, or asks about evaluating this task. Reports macro-average recall.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
researchpython

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill semeval2017task4-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Semeval2017task4 Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Semeval2017task4 Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-semeval2017task4-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-semeval2017task4-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: semeval2017task4-eval
description: Evaluates the ability of models to classify sentiment in social media posts (tweets) across different languages (English and Arabic) and granularities (overall polarity, topic-specific polarity, and ordinal scales). Use when the user wants to benchmark on SemEval-2017 Task 4, or asks about evaluating this task. Reports macro-average recall.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 1912.00741
  bibtex_key: [REDACTED]
  confidence: high
---

# semeval2017task4-eval

> SemEval-2017 Task 4: Sentiment Analysis in Twitter — Rosenthal et al. (2017) (arXiv:1912.00741, 2017)

## What this evaluates

Evaluates the ability of models to classify sentiment in social media posts (tweets) across different languages (English and Arabic) and granularities (overall polarity, topic-specific polarity, and ordinal scales).

## Datasets

- **SemEval-2017 Task 4** — total ?; splits: train (-1), test (-1)

## Metrics

- `macro-average recall` **(primary)** — range: [0, 1]
  - The unweighted mean of recall scores for each sentiment class (Positive, Negative, Neutral). Calculated as the sum of per-class recalls divided by the number of classes.

## Input / output format

**Input**: Tweet text, optionally accompanied by topic labels or user demographic metadata.

**Output**: A sentiment label (Positive, Negative, Neutral) for classification, or a predicted distribution over sentiment classes for quantification tasks.

## Scoring recipe

```python
def macro_avg_recall(y_true, y_pred, classes=['Positive', 'Negative', 'Neutral']):
    recalls = []
    for c in classes:
        tp = sum(1 for t, p in zip(y_true, y_pred) if t == c and p == c)
        fn = sum(1 for t, p in zip(y_true, y_pred) if t == c and p != c)
        recalls.append(tp / (tp + fn) if (tp + fn) > 0 else 0.0)
    return sum(recalls) / len(recalls)
```

## Common pitfalls

- Confusing macro-average recall with micro-average recall or accuracy, which can yield different rankings.
- Failing to account for class imbalance when comparing against simple baselines (e.g., predicting all Positive or all Negative).
- Mixing up topic-specific sentiment (Subtasks B-D) with overall tweet sentiment (Subtask A), which requires different model architectures.

## Evidence (verbatim from paper)

> For English the best ranking teams were BB_twtr and DataStories, both achieving a macro-average recall of 0.681.

## Citation

```bibtex
@misc{rosenthal2017semeval,
  title={SemEval-2017 Task 4: Sentiment Analysis in Twitter},
  author={Rosenthal et al. (2017)},
  year={2017},
  note={arXiv:1912.00741}
}
```

- arXiv: 1912.00741

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.