Evaluates the robustness of neural language models to non-adversarial character- and word-level input perturbations (e.g., typos, deletions, synonyms) while preserving semantic meaning. Use when the user wants to benchmark on TC, SA, NER, SS, QA (unspecified downstream datasets), or asks about evaluating this task. Reports accuracy.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill robustness-perturbation-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Robustness Perturbation Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-robustness-perturbation-eval)More formats (shields.io, HTML) on the badges page.
---
name: robustness-perturbation-eval
description: Evaluates the robustness of neural language models to non-adversarial character- and word-level input perturbations (e.g., typos, deletions, synonyms) while preserving semantic meaning. Use when the user wants to benchmark on TC, SA, NER, SS, QA (unspecified downstream datasets), or asks about evaluating this task. Reports accuracy.
metadata:
skill_kind: dataset_eval
source_arxiv: 2108.12237
bibtex_key: moradi2021evaluating
confidence: high
---
# robustness-perturbation-eval
> Evaluating the Robustness of Neural Language Models to Input Perturbations — Moradi et al. (2021) (arXiv:2108.12237, 2021)
## What this evaluates
Evaluates the robustness of neural language models to non-adversarial character- and word-level input perturbations (e.g., typos, deletions, synonyms) while preserving semantic meaning.
## Datasets
- **TC, SA, NER, SS, QA (unspecified downstream datasets)** — total ?; splits: test (-1); repo https://github.com/mmoradi-iut/NLP-perturbation
## Metrics
- `accuracy` **(primary)** — range: percent
- Percentage of correctly predicted labels on perturbed test samples compared to ground truth labels.
- `absolute performance decrease` — range: percent
- Difference between baseline accuracy on unperturbed test sets and accuracy on perturbed samples.
## Input / output format
**Input**: Text samples from downstream NLP tasks with applied character-level or word-level perturbations.
**Output**: Predicted labels or scores for each perturbed input instance.
## Scoring recipe
```python
accuracy = sum(1 for pred, gold in zip(predictions, gold_labels) if pred == gold) / len(gold_labels) * 100
drop = baseline_accuracy - accuracy
return accuracy, drop
```
## Common pitfalls
- Three word-level perturbations (Deletion, Negation, Replacement with Synonyms) require manual curation to filter meaningless samples or adjust labels, as they may change text meaning.
- Performance is highly sensitive to the Perturbation Per Sample (PPS) hyperparameter, with results reported for PPS=1 in main tables but tested up to PPS=4.
- Models are evaluated in a black-box manner without fine-tuning on perturbed data; results reflect zero-shot robustness on test sets.
## Evidence (verbatim from paper)
> Table 4: Performance of the language models on the test sets and word-level perturbed samples of the downstream tasks. For every task and every perturbation method, the highest score is shown in bold face.
## Citation
```bibtex
@misc{moradi2021evaluating,
title={Evaluating the Robustness of Neural Language Models to Input Perturbations},
author={Moradi et al. (2021)},
year={2021},
note={arXiv:2108.12237}
}
```
- arXiv: 2108.12237

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!