← All posts

Sentiment analysis for small businesses: what it can and can't do

6 min read

A realistic look at sentiment analysis for customer feedback, reviews, and support tickets. What it's good at, where it fails, and whether it's worth building.

Sentiment analysis processing customer feedback for instant, actionable insight into emotional states.

Sentiment analysis sounds perfect on paper. Feed customer reviews, support tickets, or survey responses into a model and it tells you whether people are happy, angry, or neutral. Instant insight into how customers feel. No more reading through thousands of reviews manually.

In practice, it's more complicated. Sentiment analysis is genuinely useful for certain tasks, but it's worse than most people expect at others. Here's an honest breakdown.

What sentiment analysis actually does

At its core, sentiment analysis classifies text into categories: positive, negative, neutral. Some models go further with fine-grained scores (very positive, somewhat negative) or detect specific emotions (frustration, excitement, confusion).

The technology behind it varies:

Rule-based: Counting positive and negative words. "Great" = positive, "terrible" = negative. Simple, fast, and surprisingly effective for straightforward text. Falls apart with sarcasm, context, or negation ("not great" has "great" in it but isn't positive).

ML classifiers: Trained on labelled data to recognise patterns beyond individual words. Better at context, handles negation decently, but needs training data specific to your domain.

LLM-based: Send text to GPT, Gemini, or Claude and ask "what's the sentiment?" Most flexible, best at nuance, but slowest and most expensive per item.

Where it works well

Product reviews at scale

If you have hundreds or thousands of product reviews and want a high-level view of sentiment trends, this is the sweet spot. You don't need perfect accuracy on every review. You need to know that sentiment for Product X dropped 15% this month compared to last month. Aggregate trends are reliable even when individual classifications are sometimes wrong.

Support ticket prioritisation

Detecting frustrated or angry customers in a ticket queue so you can prioritise their tickets higher. This works because the consequences of a false positive (prioritising a non-urgent ticket) are low, and the benefit of catching a genuinely angry customer early is high. This ties directly into support triage systems.

Survey analysis

Open-ended survey responses ("How was your experience?") are tedious to read at volume. Sentiment analysis can group them into broad categories and surface the most negative responses for manual review. Saves hours for teams that run regular customer surveys.

Where it struggles

Sarcasm and irony

"Oh great, another delayed delivery. Absolutely thrilled." Every word in that sentence is positive. The sentiment is clearly negative. Sarcasm detection has improved but it's still the hardest problem in NLP. If your customers use sarcasm frequently (looking at you, UK market), expect more errors.

Domain-specific language

"The bass was heavy" is positive in a music review and negative in a fishing report. "Resolution was low" is negative for a camera but "resolution was fast" is positive for a support ticket. Off-the-shelf sentiment models trained on generic data will misclassify domain-specific text. You need either fine-tuning on your data or an LLM with enough context to understand the domain.

Mixed sentiment

"The product is brilliant but the delivery was a nightmare." Is this positive or negative? It's both. Standard sentiment models output a single score, which means mixed reviews get classified as neutral when they're actually strong on both ends. More sophisticated approaches extract aspect-level sentiment (product: positive, delivery: negative), but they're harder to build.

Short text

"OK." "Fine." "It was alright." Short text doesn't give the model much to work with. Sentiment scores on short text are unreliable. If your data is mostly brief survey responses or one-line reviews, don't expect high accuracy.

Note

Sentiment analysis is best used for trends and prioritisation, not for classifying individual items with high confidence. Treat it as a filter that surfaces what matters, not as a judge that makes final decisions.

A practical approach

If you're thinking about adding sentiment analysis to your business, here's what I'd recommend:

Start with an off-the-shelf API. Google Cloud NLP, AWS Comprehend, or even a simple call to GPT will give you a baseline. Try it on 100 of your real customer messages and manually check the accuracy. If it's above 85%, it might be good enough without any customisation.

Set a confidence threshold. Only act on sentiment classifications where the model is highly confident. Low-confidence results go to a "maybe" bucket for human review. This dramatically reduces false positives.

Use it for routing, not responses. Sentiment should inform priority and routing, not generate automatic responses. A customer classified as "angry" should be seen sooner by a human, not sent an automated "sorry to hear that" message.

Track accuracy over time. Customer language changes. New products, new issues, and seasonal patterns all affect how people write. Monitor the model's accuracy quarterly and retrain or adjust if it drifts.

Is it worth building?

That depends on your volume. If you deal with fewer than 50 customer messages a day, a human can read them all. Sentiment analysis adds complexity without saving meaningful time.

If you handle hundreds or thousands of messages daily, sentiment analysis as part of a broader support automation system can save real hours and catch frustrated customers before they escalate.

Key Takeaways

  • Sentiment analysis works best for aggregate trends and prioritisation, not individual classification.
  • Sarcasm, domain-specific language, and mixed sentiment are still hard problems.
  • Start with an off-the-shelf API and test on your real data before building anything custom.
  • Use sentiment for routing and prioritisation, not for automated responses.
  • Only worth the investment at scale: hundreds of messages per day, not dozens.

Need help figuring out if it fits?

If you're considering sentiment analysis as part of a support or feedback system, get in touch. I'll give you an honest assessment of whether it'll actually save time or just add complexity.


Related reading: