# Polarity, Hedging, and Risk Phrases — Three Signals in Any Brand Response

Paid brand-sentiment tools train NLP models on proprietary corpora and sell the result at $99/month. A good lexicon does 80% of the work and runs in your browser. The scanner scores polarity, flags hedge words, and surfaces risk phrases — tuned for brand-mention contexts in AI responses.

Author: J.A. Watte
Published: April 26, 2026
Source: https://jwatte.com/blog/blog-tool-ai-answer-sentiment/

---

_Part of the [AEO / GEO / AI-search audit tool stack](/blog/blog-new-aeo-audit-tools-2026/).  See the pillar post for the full catalog of sibling audits and where this one fits in the lineup._

Sentiment analysis has been a solved problem for a decade. The trick is picking a lexicon that matches your domain.

For AI-answer monitoring of brand mentions, the right lexicon is narrower than a general-purpose one. You care about three signals: is the response positive / neutral / negative about your brand? Is it hedging ("reportedly", "some users say", "mixed reviews")? Is it surfacing risk phrases ("lawsuit", "scam", "discontinued", "shut down")? A 50-word lexicon per bucket gets you most of the way there.

The [AI Answer Sentiment Scanner](/tools/ai-answer-sentiment/) runs a VADER-style client-side lexicon tuned for product / brand contexts, scores polarity, flags hedges, surfaces risk phrases. No API, no subscription.

## The three signals explained

**Polarity score (-1 to +1).** Compound sentiment from matched positive and negative lexicon words, weighted by intensity. 'Excellent' is +3, 'good' is +1.5, 'weak' is -1.5, 'terrible' is -3. The compound value normalizes across response length so a 500-word response and a 50-word response with the same feel score similarly.

**Hedge count.** Words and phrases like "reportedly", "allegedly", "apparently", "seemingly", "some say", "mixed reviews", "a few users". These don't directly move sentiment but they signal the LLM is distancing itself from the claim. A neutral response with three hedges reads less confident than a neutral response with zero.

**Risk-phrase count.** Words that drag brand perception independent of local context: "lawsuit", "sued", "scam", "fraud", "discontinued", "shut down", "bankruptcy", "data breach", "hacked", "controversy", "banned", "investigation", "fined", "layoffs", "acquired", "acquisition". Any occurrence of these is worth investigating — even if the AI is talking about a different entity, the association surfaces in retrieval-weighted answers.

## Why not machine-learning sentiment

A fine-tuned BERT model is more accurate than a lexicon on any single sentence. It's also overkill for this use case. AI answer responses are structured prose, not movie reviews or tweets. Lexicon sentiment catches 85-90% of clear-signal cases correctly. The 10-15% where it fails are edge cases (sarcasm, complex negation) that a brand monitoring pass shouldn't hang on anyway.

The bigger reason: lexicon runs in the browser. No API cost. No server. No privacy concern with pasting brand-sensitive text into a third-party NLP endpoint.

## How the scoring combines

Polarity alone is misleading. A response that's 80% positive but contains the word "lawsuit" needs to surface the risk — overall polarity shouldn't mask an underlying concern. The scanner reports all three numbers separately and highlights risk-phrase hits with a distinct color (dark red) in the annotated response view.

A response's overall "label" uses a combined rule:
- Compound > 0.3 → Positive
- Compound < -0.3 → Negative
- Hedges ≥ 3 with neutral compound → Hedged-Neutral
- Otherwise → Neutral

## What to do with the output

Run it on the 10-25 responses you collect via the [AI Visibility Prompt Pack](/tools/ai-visibility-prompt-pack/). Track the compound score over time. A trend toward zero or positive is progress. A trend toward negative is a reputation problem that needs more than content — usually it's upstream entity-level signals (Wikipedia, Wikidata, review sites).

Flag any response with risk-phrase hits. Investigate whether the phrase references your brand directly (in which case it's an active reputation issue) or another entity (in which case you have an association problem — LLMs are grouping you with someone they shouldn't). The fix differs.

## Tuning the lexicon

The tool's lexicon is in the `POS`, `NEG`, `HEDGE`, `RISK` arrays of the inline script. For domain-specific work (fintech, healthcare, legal), add a few domain-relevant positive/negative/risk terms. A dozen additions per bucket tune the scanner to your vertical without retraining anything.

## Related reading

- [AI Visibility Prompt Pack](/tools/ai-visibility-prompt-pack/) — generate the prompts; run them; score the responses with the scanner.
- [Share-of-Voice Worksheet](/tools/share-of-voice-worksheet/) — count mentions in the same responses.
- [Citation URL Extractor](/tools/citation-url-extractor/) — pull source URLs from the same responses.
- [Entity Citation Radar](/tools/entity-citation-radar/) — upstream check for authority sources that shape sentiment over time.

## Fact-check notes and sources

- VADER sentiment lexicon paper (Hutto & Gilbert, 2014): [ojs.aaai.org/index.php/ICWSM/article/view/14550](https://ojs.aaai.org/index.php/ICWSM/article/view/14550)
- AFINN lexicon (related approach): [github.com/fnielsen/afinn](https://github.com/fnielsen/afinn)
- OpinionFinder lexicon: [mpqa.cs.pitt.edu/lexicons](https://mpqa.cs.pitt.edu/lexicons/)

---

*The $20 Dollar Agency covers brand monitoring as a recurring deliverable. The scanner is one of four measurement tools (prompt pack, SOV worksheet, citation extractor, sentiment scanner) that together build the monthly report without any per-query API cost.*


---

Canonical HTML: https://jwatte.com/blog/blog-tool-ai-answer-sentiment/
RSS: https://jwatte.com/feed.xml
JSON Feed: https://jwatte.com/feed.json
Hero image: https://jwatte.com/images/blog-tool-ai-answer-sentiment.webp
