Qualitative data—customer reviews, survey open-ends, social posts, interview excerpts—carries meaning that goes
far beyond a simple positive/negative label. This lab gives you three complementary methods for quantifying that
meaning: sentiment (the overall positive–negative charge of a text), emotion profiling
(which of eight discrete emotions are present), and dimensional affect (how pleasant, activated,
or dominant the language feels). Run one method at a time to go deep, or run all three at once and compare what
each lens reveals—and what it hides.
👨🏫 Professor Mode: Guided Learning Experience
New to text analysis? Enable Professor Mode for step-by-step guidance through sentiment scoring, emotion profiling, and dimensional affect analysis!
OVERVIEW & WHAT THIS TOOL SOLVES
Reducing thousands of customer reviews or social posts to a single "positive vs. negative" average hides critical marketing nuance: a 2-star review fueled by high-arousal anger and disgust demands an immediate PR response, whereas one driven by low-arousal sadness or disappointment calls for product or service recovery. The Sentiment & Affect Lab analyzes unstructured text through three complementaryValidated lexicons—VADER (rule-aware overall valence), NRC EmoLex (eight discrete Plutchik emotions), and NRC-VAD (Valence, Arousal, and Dominance dimensions).
🎯 Questions It Answers
Overall Polarity (VADER): How positive, negative, neutral, or ambivalent is each customer comment after accounting for negation, caps, and intensifiers?
Discrete Emotions (NRC): Which specific emotions—anger, fear, disgust, sadness, joy, trust, anticipation, or surprise—dominate our brand mentions?
Energy & Control (VAD): Does customer language feel calm vs. activated (Arousal) and empowered vs. powerless (Dominance)?
📂 What Data You Need
Text CSV or Preset Case Study: Customer reviews, social posts, survey verbatims, or ad copy.
Optional Grouping Column: Brand, competitor, product tier, or campaign wave to compare profiles across segments.
Analysis Mode Selection: Run VADER, NRC Emotions, VAD Circumplex individually, or all three side by side.
💡 What You'll Discover
Token-Level Rule Highlighting: Exact inspection of how boosters, negations, and "but" flips alter each review's score.
8-Emotion Radar & Bar Profiles: Normalized Plutchik emotion shares across documents and segments.
Russell's Circumplex Map: 2D Valence × Arousal scatter and Dominance comparisons across brands.
Scores each token against 7,500+ lexical entries (−4 to +4), then applies six rule layers—boosters ("very"), negation ("not", ×−0.74), contrastive "but" (×0.5 before, ×1.5 after), ALL CAPS, punctuation ("!"), and bigram dampeners ("kind of")—to produce a normalized compound score.
VADER · Hutto & Gilbert, 2014
🎭
Emotion Profiling (NRC EmoLex)
Which discrete emotions does this text carry?
Maps 14,000+ English words onto Plutchik's eight primary emotions (anger, anticipation, disgust, fear, joy, sadness, surprise, trust) normalized by matched-token count so short and long reviews compare fairly.
NRC EmoLex · Mohammad & Turney, 2013
🧭
Dimensional Affect (NRC-VAD)
How pleasant, energized, and in-control does the language feel?
Rates 20,000 words from 0 to 1 on Valence (pleasure), Arousal (activation), and Dominance (control), placing every document in Russell's circumplex (e.g., high-V high-A = excitement; low-V high-A = rage/anxiety).
NRC-VAD · Mohammad, 2018
📐 Under the Hood: Model Equations & Variable Definitions
1. VADER Compound Normalization, Ambivalence Index & Lexicon Averages
💬 Read it in plain English:VADER sums rule-adjusted word valences into S and normalizes it onto [−1, +1]; the Ambivalence score separates genuinely neutral text from mixed reviews where strong praise and strong complaints cancel out; and NRC/VAD normalize matched token scores across the M recognized words in the document.
S, α
Rule-Adjusted Valence Sum & Normalization ConstantOUTPUT ⓘ
Total summed sentiment valence (S) after applying boosters, negations, caps, and punctuation rules, scaled by constant α = 15.
compound, pos, neg
Normalized Compound Score & Tone ProportionsINFERENCE ⓘ
Overall polarity score in [−1, +1] and proportions of positive, negative, and neutral token weight.
ambivalence
Mixed-Sentiment Ambivalence IndexOUTPUT ⓘ
Distinguishes a flat, emotionless review (0) from a conflicted review containing equal parts praise and criticism (1).
Em, M, Lm
Normalized Emotion Share & Matched TokensOUTPUT ⓘ
Proportion of the M matched lexicon tokens in a document that evoke emotion or affect dimension m.
DATA SOURCE
📚
Use a Case Study
📊 Pre-loaded Text Datasets
Use these case studies to practice reading text analysis outputs before uploading your own data.
Each scenario comes with a suggested analysis method—but you're always free to run any or all three
engines on any dataset.
📚Use a Case Studyclick to switch
📤
Upload Your Data
Drag & Drop CSV file (.csv, .tsv, .txt, .xls, .xlsx)
The first row should be column headers. One column should contain your text data.
📤Upload Your Dataclick to switch
CONFIGURE YOUR DATA
Choose which column contains the text you want to analyze.
Optional: compare results across groups (e.g., brand, source, product rating).
Selects a column to use as row labels in output tables and inspectors.
SELECT ANALYSIS METHOD
Choose how you want to analyze your text. You can switch methods at any time without re-uploading data.
📊
Sentiment Analysis
VADER · Overall positive / negative tone
Score each record on a compound scale from −1 (strongly negative) to +1 (strongly positive). Reveals overall valence, label distribution, ambivalence, and group differences.
Best for: customer satisfaction, brand perception, comparing positive/negative signal across groups.
🎭
Emotion Profiling
NRC EmoLex · Eight discrete emotions
Map each record onto Plutchik's eight emotions (anger, fear, joy, sadness, disgust, surprise, anticipation, trust). Reveals which emotional registers dominate your text data.
Best for: understanding which emotions drive engagement, distinguishing fear from anger, identifying trust-building language.
🧭
Dimensional Affect
NRC-VAD · Valence, Arousal, Dominance
Place records in continuous emotional space. Valence = pleasant vs. unpleasant. Arousal = activated vs. calm. Dominance = in-control vs. controlled. Visualized on Russell's circumplex.
Best for: segmenting arousal level (rage vs. disappointment), analyzing power framing in text, circumplex mapping.
🔬
Full Comparison
All Three Methods · Side-by-side
Run VADER, NRC, and VAD on the same data and compare what each method reveals. Convergence across methods strengthens conclusions; divergence points to complexity worth investigating.
Best for: publishable analyses, presentations where you need to defend your methodology, and rich qualitative-to-quantitative interpretation.
SENTIMENT RESULTS
Reading VADER output
VADER returns a compound score (−1 to +1) for each record: values ≥ 0.05 are labeled
positive, values ≤ −0.05 are labeled negative,
and everything in between is labeled neutral. The compound score is the primary
output; the separate pos, neu, and neg proportions show how much of the text's
vocabulary contributes each tone.
A compound score near zero deserves scrutiny. The ambivalence score below tells you whether
neutral-looking records are genuinely low in sentiment ("the product arrived") or highly mixed
("outstanding service, but terrible product quality"). Mixed records may warrant qualitative follow-up
even if their average looks benign.
Sentiment summary
Average compound score:–
Records labeled positive:–
Records labeled neutral:–
Records labeled negative:–
Run the analysis to see overall sentiment across your text records.
Labels distribution
Bar chart shows how records are classified by VADER's compound score thresholds. Mixed-neutral records
(high ambivalence near zero) are distinguished from genuinely neutral ones.
DETAIL & WORKED EXAMPLE
Export Per-Record Results
Download all VADER scores (compound, pos, neu, neg, ambivalence, label) as a CSV—one row per record.
🤖
AI-Aided Semantic Coding & Benchmark
Claude Haiku 5.5 vs. VADER
Compare VADER's rule/lexicon heuristics with Claude Haiku 5.5's deep contextual understanding. Discover where algorithms agree, where they diverge on sarcasm or idioms, and how Aspect-Based Sentiment Analysis (ABSA) reveals nuanced marketing dimensions.
ℹ️ How this AI Comparative Benchmark Works (Methodology)
1. Full Dataset Screening: 100% of your uploaded dataset is analyzed locally in your browser using classical rule/lexicon heuristics (VADER).
2. Stratified Benchmarking: To provide rigorous validation without browser latency or token waste, an educational stratified sample (highest positive, lowest negative, and borderline ambivalent cases) is benchmarked with Claude Haiku 5.5.
3. Diagnostic Reliability: We compute Pearson correlation (r) and agreement rate across the sampled spectrum, isolate severe divergence (|Δ| ≥ 0.40) to diagnose sarcasm and pragmatic nuance, and extract Aspect-Based Sentiment (ABSA).
Note: Datasets between 5 and 5,000 records are supported for AI comparative benchmarking.
Analyzing records with Claude Haiku...
Evaluating pragmatic intent, sarcasm, and aspect dimensions.
VADER Avg Compound
--
Claude Avg Valence
--
Label Agreement
--
Pos/Neu/Neg match %
Correlation (r)
--
Pearson correlation
Sarcasm Flagged
0
Implicit / Ironic
🤖 Claude Haiku Executive Takeaway:
⚖️ Head-to-Head Model Audit: Lexicon Heuristic (VADER) vs. Contextual LLM (Claude Haiku)
Both methods score the same sampled records. Claude receives up to 400 characters per record; VADER scores the full text. Select a matrix cell to inspect its comments. Counts and percentages describe this paired sample.
📊 Macro Sentiment DistributionsPolarity Breakdown
VADER (Lexicon Rules)--
Claude Haiku (LLM)--
● Positive● Neutral● Negative
🔲 Cross-Classification MatrixClick cell to filter table
⚠️ Disagreement Diagnostic: Where VADER & Claude Diverge (|Δ| ≥ 0.40)
These records represent critical teaching moments. They highlight where dictionary word-matching fails on sarcasm, double negatives, or polite complaints, whereas contextual AI captures true pragmatic intent.
Record
Text Excerpt
VADER
Claude AI
Δ Diff
AI Rationale & Nuance Diagnostic
🎯 Aspect-Based Sentiment Analysis (ABSA)
Instead of an uninformative single blanket score, customer feedback divides into distinct marketing touchpoints. Here is how Claude decomposed sentiment across key operational aspects:
View All Records Side-by-Side (VADER vs. Claude AI)
#
Text
VADER
Claude
Aspect
Sarcasm
Rationale
How VADER scored two examples
The worked example below shows the token-by-token valence coding for one relatively positive record and one
relatively negative record. Color-coded chips show each token's base lexicon value; hover a chip to see the
full modifier chain (negation, booster, capitalization) that produced the final contribution.
Run the analysis to see how each token in a relatively positive record contributes to its final sentiment score.
Run the analysis to see how each token in a relatively negative record contributes to its final sentiment score.
How this example is computed
Each token is looked up in the VADER lexicon. Tokens with a known valence receive a colored chip; words
not in the lexicon appear as plain gray chips. The six rule layers (see Concepts above) then adjust those
base scores before they are summed and normalized to the compound score shown.
Tip: Hover over any colored chip in the Record Inspector to see the full
modifier chain—what the base lexicon value was, which rule modified it, and what the final
contribution was.
🔗 From examples to patterns: These two examples show individual token logic.
To see how sentiment is distributed across all your records, scroll to the
Histogram and Box Plot below.
Record Inspector — Token-Level Valence Coding
Select any record to see how each token's valence contribution builds the final compound score. Colored chips
indicate tokens with non-zero lexicon values; hover for the full modifier chain. Gray chips are lexicon misses.
Token-level breakdown will appear here after running the analysis.
Sentiment Character Analysis
A compound score near zero can mean two very different things: a record with
high mixed sentiment (positive and negative pulling in opposite directions) vs. a record
that is genuinely neutral (very little charged language at all). This card separates the two
using the ambivalence score \(\text{amb} = \frac{2 \cdot \min(pos,\, neg)}{pos + neg}\).
ANALYSIS REPORT
APA-Style Statistical Reporting
Run the analysis to generate an APA-style report of your sentiment results.
Managerial Interpretation
Run the analysis to generate a managerial interpretation of your sentiment results.
Grouped Sentiment Comparison
Sentiment metrics broken down by group.
Summary of Estimates
Measure
Estimate
Std. Dev.
Min
Max
Sentiment Distribution: Histogram
How to read bar colors:Green = positive territory (≥ 0.05),
red = negative (≤ −0.05),
gray = neutral. Bar height = record count in that range.
Run the analysis to see how compound sentiment scores are distributed across your text records.
Sentiment Distribution: Box Plot (By Group)
Box Plot Guide: The box = middle 50% of scores.
The line inside = median. Whiskers extend to typical extremes.
Dots beyond whiskers are outliers.
Run the analysis to see the spread, central tendency, and outliers in your sentiment data.
EMOTION PROFILING RESULTS
Reading NRC output
Each emotion score represents the proportion of lexicon-matched tokens in a record that
carry that emotion. A record scoring 0.40 on "joy" has 40% of its emotionally-loaded words tagged as
joy-associated in the NRC lexicon. Scores do not sum to 1 because a single word can carry multiple
emotions.
Lexicon coverage matters: a record with only two matched tokens may have an extreme
emotion profile just by chance. The inspector below shows which tokens actually matched, so you can
judge whether the scores are driven by meaningful signal or incidental vocabulary.
The radar chart makes cross-group comparison intuitive: a brand whose texts form a
large "joy + trust" profile occupies a very different space from one whose texts form a "fear + anger"
shape—even if their overall VADER sentiment scores are similar.
Run the NRC Emotion Lexicon analysis on your current text data.
Dominant Emotion
–
Avg positive (binary):–
Avg negative (binary):–
Avg lexicon coverage:–
Emotion Profile (Radar)
Each axis = proportion of matched tokens carrying that emotion. Overlapping traces = group comparison.
Emotion Scores (Bar Chart)
Bars sorted by average normalized score. When grouping is active, shows grouped bars per emotion.
Emotion Profile by Group
Per-group breakdown of dominant emotion, top emotions, and lexicon coverage. Radar and bar chart above also show full group traces.
Group
n
Dominant Emotion
Top 3 Emotions
Avg Coverage
Emotion Deviation from Overall Average
+Green = group scores above overall average; −Red = below. Values in percentage points (pp).
Emotion Summary Table
Emotion
Avg (% of matched tokens)
Std. Dev.
NRC Interpretation
Run the analysis to generate an interpretation.
Record Inspector — Token-Level Emotion Coding
Pick any record to see which tokens matched the NRC lexicon and which emotions each one carries.
Choose a record above to inspect token-level coding.
DIMENSIONAL AFFECT RESULTS
Reading VAD output
Each record receives three scores in [0, 1]: Valence (how
pleasant the language is), Arousal (how activated or calm),
and Dominance (how in-control vs. controlled the tone is).
Scores near 0.5 are emotionally neutral on that dimension; scores far from 0.5 indicate strong
displacement in one direction.
The Valence × Arousal scatter plot places each record in Russell's circumplex. The
four quadrants reveal qualitatively different emotional states invisible to sentiment scoring—
excited (high-V, high-A), anxious (low-V, high-A), relaxed (high-V, low-A),
and sad / bored (low-V, low-A).
Dominance in marketing context: Customer complaints often show low valence and
low dominance ("I felt helpless"). Recommendation texts often combine high valence with high dominance
("I confidently recommend this to everyone"). These V–D combinations tell a story that valence alone cannot.
Run the NRC-VAD analysis to score your text on Valence, Arousal, and Dominance.
Dimensional Scores
Valence × Arousal Scatter (Russell's Circumplex)
Each dot = one record. X = valence, Y = arousal, marker size = dominance. Hover for details.
VAD Profile by Group
VAD Interpretation
Run the analysis to generate an interpretation.
Record Inspector — Token-Level VAD Coding
Pick any record to see which tokens matched the NRC-VAD lexicon and their individual V, A, and D scores.
Choose a record above to inspect token-level coding.
FULL COMPARISON — ALL THREE METHODS
How Mode 4 works
All three engines run on the same dataset. Use the comparison table to see where methods converge
(strong evidence) and where they diverge (interesting complexity worth investigating). The
combined CSV download exports all scores for every record in a single flat file.
📊VADERPending
🎭NRCPending
🧭VADPending
CROSS-METHOD COMPARISON
Methods Compared
Method
Key Result 1
Key Result 2
What it captures
What it misses
Worked Example: One Record, Three Methods
The record with the most extreme VADER compound score is used as the demonstration case.
Compare how the three methods characterize the same text differently.
Cross-Method Insights
Where methods agree, conclusions are more robust. Where they diverge, the gap is itself informative.
The analysis below flags the most notable convergences and divergences in your data.
Group Comparison Across Methods
Where all three methods agree on a group’s emotional character, the conclusion is robust. Divergence reveals nuance worth investigating.
Combined Export
A single CSV with VADER compound + pos/neg/neu + ambivalence, all 8 NRC emotion scores, and V/A/D
values for every record—all methods side-by-side.