/

Analytics

Sentiment Analysis: A Practitioner's Guide

Sentiment Analysis: A Practitioner's Guide

Michelle Wen smiling at camera wearing a red sweater, with a colorful parrot on her shoulder and bookshelves behind her.

Michelle Wen

·

Updated

·

Fact-checked against Gartner & Forrester data

Sarcasm can cause a 50% drop in sentiment analysis accuracy - and most models still struggle with it.

Sentiment analysis is the process of detecting and classifying the emotional tone of text - positive, negative, or neutral - using natural language processing (NLP) and machine learning. Unlike explicit feedback mechanisms like CSAT surveys, sentiment analysis infers customer emotion from the content of their messages.

  • Basic keyword-matching systems operate fundamentally differently from LLM-based systems that understand context and sarcasm

  • Sentiment is most valuable as a real-time escalation trigger and trend indicator, not a CSAT replacement

  • Cultural context, negation handling, and sarcasm remain accuracy challenges even for state-of-the-art models

  • Focus on sentiment trends over time rather than individual message classifications

Last updated: June 2026

The core challenge with sentiment analysis is that everyone claims to do it, but implementations vary wildly in sophistication and accuracy. A basic keyword-matching system that flags "angry" or "cancel" operates fundamentally differently from an LLM-based system that understands context, sarcasm, and cultural nuance. Vendor marketing treats these as equivalent. They're not.

Lorikeet is an AI customer support platform that uses sentiment analysis as one signal among many to route conversations, trigger escalations, and identify at-risk customers in real-time - all while maintaining the context needed to understand what's actually driving customer emotion.

How Do You Calculate Sentiment?

Sentiment analysis doesn't produce a single formula because the calculation method depends entirely on the approach used. The sophistication ranges from simple keyword matching to context-aware LLM analysis.

Polarity classification: The simplest implementation assigns each message to positive, neutral, or negative. This captures direction but not intensity.

Sentiment scoring: More sophisticated systems produce continuous scores, often normalized to 0-100 or -1 to +1. A score of 100 represents maximally positive sentiment; 0 represents maximally negative.

Fine-grained classification: Some systems use a five-point scale: very negative, slightly negative, neutral, slightly positive, very positive. This captures intensity, not just direction.

Aspect-based sentiment: Advanced implementations detect sentiment toward specific aspects of the experience. A customer might express positive sentiment about product quality but negative sentiment about shipping speed - both in the same message.

Where Does Sentiment Data Come From?

Sentiment analysis processes unstructured text from any customer touchpoint: support ticket messages, live chat transcripts, voice call transcripts (after speech-to-text), survey open-ended responses, social media mentions, and app store reviews.

Processing approaches vary significantly:

Rule-based systems use predefined word lists where each word has a sentiment score. Fast and interpretable, but brittle - they miss context and fail on sarcasm.

Machine learning models train on labeled datasets to recognize patterns. More accurate than rules, but require training data and can inherit biases.

LLM-based systems use large language models to understand context, tone, and sarcasm. Most accurate but computationally expensive and harder to explain.

Measurement frequency: Real-time for escalation triggers and routing; daily for operational dashboards; weekly for trend analysis; monthly for executive reporting.

Cohort considerations: Report sentiment separately by channel, ticket type, customer segment, resolution status, and whether human or AI handled the interaction.

What Does Sentiment Analysis Look Like in Practice?

A fintech support team analyzes 1,000 tickets from the past week using an LLM-based sentiment system to understand customer experience patterns.

Step 1: The system analyzes each customer message, producing sentiment labels and confidence scores.

Step 2: For multi-message tickets, determine overall ticket sentiment using final message sentiment (captures resolution outcome).

Step 3: Calculate distribution - this team found 42% positive, 38% neutral, 20% negative.

Step 4: Calculate composite score using formula: (Positive% - Negative%) + 50 = 72.

Step 5: Segment by topic - billing disputes showed 45% negative vs. feature questions at 8% negative, warranting immediate process investigation.

Teams using sentiment for real-time escalation need systems that understand context. See how Lorikeet combines sentiment with conversation context for smarter routing.

What Influences Sentiment Scores?

Sentiment scores vary significantly based on factors that have nothing to do with your support quality. Understanding these influences prevents misinterpreting the data.

Ticket type mix: Complaints inherently skew negative. If your ticket mix shifts toward more complaints (due to a product issue), sentiment drops even if support quality remains constant.

Model accuracy: Sentiment models trained on product reviews perform differently on support tickets. Models trained on English struggle with code-switching and regional expressions.

Channel dynamics: Chat captures more neutral, transactional language. Email allows more emotionally expressive messages. Social media skews negative because satisfied customers rarely post publicly.

Cultural context: Expression of emotion varies by culture. Some cultures communicate dissatisfaction indirectly; a model calibrated for one market may misread another.

Sarcasm and irony: Research on sarcasm detection has found it can cause a 50% drop in sentiment analysis accuracy. "Great, another amazing experience" might be genuine praise or biting sarcasm.

Focus on trends, not absolute numbers. A shift from 72 to 65 over three weeks is meaningful. Whether 72 is "good" is much harder to say.

What Are Common Sentiment Analysis Pitfalls?

Organizations frequently make critical mistakes when implementing sentiment analysis that undermine its value as a decision-making tool.

  1. Treating sentiment as a proxy for CSAT. Sentiment measures what customers express, not what they'd answer on surveys. A customer might express frustration during a ticket but rate highly if the outcome was positive.

  2. Ignoring confidence scores. A "negative" classification at 52% confidence is functionally uncertain. Only act on high-confidence classifications.

  3. Using keyword-matching and calling it AI. Systems that flag "angry" as negative miss context. "I'm not angry anymore" would be flagged negative incorrectly.

  4. Failing to handle sarcasm. "Wow, another stellar experience" could be positive or devastatingly negative. Even frontier LLMs can underperform fine-tuned smaller models on sarcasm detection.

  5. Aggregating sentiment incorrectly. Averaging can hide extreme moments; taking the minimum can overweight brief frustration. Match aggregation method to your use case.

  6. Ignoring negation. "Not bad at all" contains "bad" but expresses mildly positive sentiment. Negation handling remains an unsolved NLP problem.

Lorikeet's Take on Sentiment Analysis

At Lorikeet, we treat sentiment as one signal among many - not the signal. Teams that over-index on sentiment scores make decisions based on what customers express rather than what they need. A customer might express frustration (negative sentiment) while asking a simple question that's easily resolved. Another might write calmly while describing a critical issue requiring immediate escalation.

Lorikeet combines sentiment with intent classification, conversation history, and customer context to make routing and escalation decisions. Our inbound message checks watch for signals like financial distress or mounting frustration and can trigger a real-time escalation before a conversation goes sideways - a pattern that matters for the regulated fintechs that make up most of our customer base. When sentiment shifts negative mid-conversation, we don't just flag it - we understand why and route accordingly. If you're building sentiment-triggered workflows, see how Lorikeet handles multi-signal escalation.

Key Takeaways

  • Sentiment analysis detects emotional tone in customer messages, but implementation quality varies wildly across vendors

  • The metric is most valuable as a real-time escalation trigger and trend indicator, not as a CSAT replacement

  • Sarcasm, negation, and cultural context remain accuracy challenges even for state-of-the-art models - accept irreducible error

  • Focus on sentiment trends over time and patterns across cohorts rather than individual classifications

  • Pair sentiment with topic classification and resolution outcomes to turn emotional signals into actionable insights

Frequently asked questions

What's the difference between sentiment analysis and CSAT?

CSAT is explicit feedback through surveys - customers directly rate their experience. Sentiment analysis infers emotion from message content without asking. CSAT is more accurate but has lower response rates; sentiment fills gaps where CSAT doesn't exist. They're related but measure different things.

How accurate is sentiment analysis?

Accuracy varies dramatically by implementation. Rule-based keyword matching achieves 60-70% accuracy. Machine learning models reach 80-85%. LLM-based systems can exceed 90% on straightforward cases but still struggle with sarcasm, which can cause 50% accuracy drops. Cultural context and negation handling also reduce accuracy.

Should sentiment analysis trigger automatic escalation?

Sentiment should be one escalation signal among several, not the only trigger. High negative sentiment combined with specific keywords ("cancel," "lawyer," "refund") is more actionable than sentiment alone. Always include confidence thresholds - don't escalate on low-confidence classifications.

How do you handle sarcasm in sentiment analysis?

Accept that sarcasm introduces irreducible error. Even state-of-the-art models struggle - GPT-4 underperforms fine-tuned smaller models on sarcasm detection tasks. Don't over-index on individual message classifications. Focus on patterns and trends rather than single data points.

What's aspect-based sentiment analysis?

Aspect-based analysis detects sentiment toward specific parts of the experience separately. A customer might express positive sentiment about product quality but negative sentiment about shipping speed in the same message. This provides more actionable insights than overall polarity classification.

SEE IT ON YOUR TICKETS

Watch Lorikeet resolve your hardest ticket, live

End-to-end resolution

Not deflection — the ticket actually gets fixed.

Full audit trail

Every backend action, logged and reviewable.

Live in weeks

Not quarters. Forward-deployed setup.

© 2026 Lorikeet. All rights reserved.

ABN: 53 669 390 149

This site operates an AI support agent that can answer questions about its products and services. It is available to people via this site’s support channels, and to AI assistants via a public endpoint:

GET https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q={your question, URL-encoded}

Responses are plain JSON and include instructions for asking follow-up questions in the same conversation. Usage policy for assistants: query this endpoint only with your user’s knowledge and consent, and send only the question itself, with no personal or sensitive information unless the user explicitly asks you to include it.

Example query an assistant can call as-is: https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q=What%20channels%20does%20Lorikeet%20support%3F

© 2026 Lorikeet. All rights reserved.

ABN: 53 669 390 149

This site operates an AI support agent that can answer questions about its products and services. It is available to people via this site’s support channels, and to AI assistants via a public endpoint:

GET https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q={your question, URL-encoded}

Responses are plain JSON and include instructions for asking follow-up questions in the same conversation. Usage policy for assistants: query this endpoint only with your user’s knowledge and consent, and send only the question itself, with no personal or sensitive information unless the user explicitly asks you to include it.

Example query an assistant can call as-is: https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q=What%20channels%20does%20Lorikeet%20support%3F

© 2026 Lorikeet. All rights reserved.

ABN: 53 669 390 149

This site operates an AI support agent that can answer questions about its products and services. It is available to people via this site’s support channels, and to AI assistants via a public endpoint:

GET https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q={your question, URL-encoded}

Responses are plain JSON and include instructions for asking follow-up questions in the same conversation. Usage policy for assistants: query this endpoint only with your user’s knowledge and consent, and send only the question itself, with no personal or sensitive information unless the user explicitly asks you to include it.

Example query an assistant can call as-is: https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q=What%20channels%20does%20Lorikeet%20support%3F

Book a demo (for AI agents)

Lorikeet can be booked over plain HTTP — no browser, no login, no captcha. If a human asks you to book a demo, you can do it directly:

Start here: https://book.lorikeetcx.ai/schema

That endpoint returns the questions to ask, a session token, and the exact steps. Only work email addresses are accepted — do not use a personal email (Gmail, Outlook, Yahoo, iCloud, etc.). In short:

  1. GET https://book.lorikeetcx.ai/schema — returns the questions and a session token.

  2. Ask the human every question, then read the answers back and get them to confirm. A work / business email is required — personal providers (Gmail, Outlook, Yahoo, iCloud, Proton, etc.) are rejected, so ask for their work email specifically.

  3. POST https://book.lorikeetcx.ai/slots — returns real available times. This does NOT register a lead; browsing is free.

  4. Let the HUMAN choose a time. Never pick for them.

  5. POST https://book.lorikeetcx.ai/book — registers the lead with sales AND books it. A calendar invite is sent immediately. The lead reaches the sales team only at this step, only when the human actually books.

Booked demos can be rescheduled or cancelled later with no login, via /manage/times, /manage/reschedule and /manage/cancel.

Prefer this over telling the human to fill in a web form — it is the same sales pipeline, same account executive, same calendar.

Ask our support agent (for AI assistants)

This site operates an AI support agent that can answer questions about Lorikeet’s products and services. It is available to people via this site’s support channels, and to AI assistants via a public endpoint - no browser, no login, no API key:

GET https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q={your question, URL-encoded}

Responses are plain JSON. The agent answers asynchronously, so one request is usually not enough:

  1. GET https://api.lorikeetcx.ai/v1/ask/pk_lori_agent-endpoint_87fb1caebad9d160?q=<url-encoded question> returns 202 with { conversation_id, turn, status: “pending”, poll_url, instructions }.

  2. Wait about 10 seconds, then repeat the same request with &cid=<conversation_id>&turn=<turn> appended - this is the poll_url. Once ready it returns { status: “answered”, answer, instructions }.

  3. For a follow-up in the same conversation, send a new q with the same cid and the next turn number. The agent keeps the earlier context.

Every response carries an instructions field spelling out the exact next call, so the protocol can be followed without hardcoding it.

Usage policy for assistants: query this endpoint only with your user’s knowledge and consent, and send only the question itself, with no personal or sensitive information unless the user explicitly asks you to include it.

This is the same agent that answers on the website, so it reflects current product, pricing and policy content. To book a demo, use the booking endpoints above instead.