NRC-VAD: Valence, Arousal & Dominance via Best-Worst Scaling
Rate individual English words on three affective dimensions - valence (pleasant-unpleasant), arousal (active-calm), and dominance (in control-controlled) - using Best-Worst Scaling. Annotators see a 4-tuple of words and pick the highest and lowest word for each dimension; real-valued scores are derived from best-minus-worst counts. This is the annotation design behind the NRC-VAD Lexicon of 20,000+ words (Mohammad, ACL 2018).
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# NRC-VAD: Valence, Arousal & Dominance via Best-Worst Scaling
# Based on Mohammad (ACL 2018), "Obtaining Reliable Human Ratings of
# Valence, Arousal, and Dominance for 20,000 English Words."
#
# Best-Worst Scaling (BWS / MaxDiff) annotation design:
# - Annotators are shown a set (tuple) of four words.
# - For each affective dimension they pick the ONE word that is highest
# and the ONE word that is lowest on that dimension.
# - Each word appears in many different 4-tuples across the study.
# - A real-valued score in [0, 1] for each word is later computed as the
# proportion of times it was chosen best minus the proportion of times
# it was chosen worst. BWS yields far more reliable, consistent scores
# than asking annotators for absolute ratings on a numeric scale.
#
# The three dimensions (Osgood's semantic differential / Russell's model):
# - Valence: pleasure - displeasure (happy vs. sad / positive vs. negative)
# - Arousal: active - passive (excited/alert vs. calm/sluggish)
# - Dominance: dominant - submissive (in control vs. being controlled)
#
# Annotation guidelines:
# 1. Judge the word's typical, out-of-context affective association.
# 2. Answer all three dimensions independently - a word can be high on
# one dimension and low on another (e.g., "terrorist" is low valence
# but high arousal and high dominance).
# 3. The best and worst word may differ across the three dimensions.
# 4. If a word is unfamiliar, use the Skip button rather than guessing.
annotation_task_name: "NRC-VAD Best-Worst Scaling"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "prompt"
text_display_key: "prompt"
list_display_key: "options"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
annotation_schemes:
# ---- Valence ----
- annotation_type: radio
name: valence_best
description: "VALENCE - which word is the MOST positive / pleasant?"
labels:
- "Word 1"
- "Word 2"
- "Word 3"
- "Word 4"
- annotation_type: radio
name: valence_worst
description: "VALENCE - which word is the MOST negative / unpleasant?"
labels:
- "Word 1"
- "Word 2"
- "Word 3"
- "Word 4"
# ---- Arousal ----
- annotation_type: radio
name: arousal_best
description: "AROUSAL - which word is the MOST active / excited / alert?"
labels:
- "Word 1"
- "Word 2"
- "Word 3"
- "Word 4"
- annotation_type: radio
name: arousal_worst
description: "AROUSAL - which word is the MOST calm / passive / sluggish?"
labels:
- "Word 1"
- "Word 2"
- "Word 3"
- "Word 4"
# ---- Dominance ----
- annotation_type: radio
name: dominance_best
description: "DOMINANCE - which word conveys the MOST control / power?"
labels:
- "Word 1"
- "Word 2"
- "Word 3"
- "Word 4"
- annotation_type: radio
name: dominance_worst
description: "DOMINANCE - which word conveys the LEAST control (most controlled / weak)?"
labels:
- "Word 1"
- "Word 2"
- "Word 3"
- "Word 4"
allow_all_users: true
instances_per_annotator: 100
annotation_per_instance: 4
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "vad_001",
"prompt": "Word 1: love | Word 2: coffin | Word 3: chair | Word 4: riot",
"options": [
"love",
"coffin",
"chair",
"riot"
]
},
{
"id": "vad_002",
"prompt": "Word 1: serene | Word 2: panic | Word 3: cardboard | Word 4: victory",
"options": [
"serene",
"panic",
"cardboard",
"victory"
]
}
]
// ... and 8 more itemsTry it live — no install
Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.
▶ Run live in your browserGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/emotion-sentiment/nrc-vad-bws potato start config.yaml
Dataset & paper
Mohammad, ACL 2018
Citation (BibTeX)
@inproceedings{mohammad-2018-obtaining,
title = "Obtaining Reliable Human Ratings of Valence, Arousal, and Dominance for 20,000 {E}nglish Words",
author = "Mohammad, Saif",
booktitle = "Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
month = jul,
year = "2018",
address = "Melbourne, Australia",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/P18-1017",
pages = "174--184"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
NRC Affect Intensity: Word Emotion Intensity via Best-Worst Scaling
Rate individual English words for the INTENSITY of a basic emotion (anger, fear, joy, or sadness) using Best-Worst Scaling. Within an emotion, annotators see a 4-tuple of words all associated with that emotion and pick the word conveying the most and the least of it; real-valued intensity scores in [0,1] are derived from best-minus-worst counts. This is the annotation design behind the NRC Affect Intensity Lexicon of ~6,000 word-emotion intensity scores (Mohammad, LREC 2018). It complements the NRC-VAD (dimensional) and tweet-level emotion-intensity designs with word-level categorical-emotion intensity.
NRC Emotion Lexicon (EmoLex): Word-Emotion Association
Crowdsourced annotation of a word's associations with eight basic emotions (anger, anticipation, disgust, fear, joy, sadness, surprise, trust) and two polarities (positive, negative). Each word first goes through a word-choice question that both disambiguates the intended sense and screens inattentive workers, then annotators rate how strongly the word is associated with each emotion. This is the annotation design behind the NRC Word-Emotion Association Lexicon (EmoLex; Mohammad & Turney, 2013), available in 100+ languages.
Word-Colour Associations: Crowdsourcing a Colour Lexicon
Annotate the colour that a word evokes. For each word, annotators first answer a word-choice question (pick the phrase closest in meaning) that disambiguates the intended word sense and serves as a quality check, then select the basic colour most associated with the word and how strong that association is. Even abstract concepts and emotions (danger, envy, purity) carry strong, consistent colour associations. This is the annotation design behind Mohammad's Word-Colour Association Lexicon (ACL 2011 CMCL workshop), a design that also underlies his colour-emotion analyses.