How to Extract Actionable Insights from Reviews Using Aspect-Based Sentiment Analysis
You run a hotel chain and receive thousands of reviews monthly. Overall sentiment is 4.2 stars, but you don't know what to improve. Guests write: "Room is clean, but Wi-Fi is awful and breakfast is mediocre." Three aspects, three opinions — yet you only have an average score. ABSA (Aspect-Based Sentiment Analysis as defined on Wikipedia) extracts these details and turns them into actionable insights.
Our team has deployed ABSA for 15 clients in e-commerce, HoReCa, and logistics — over 2 million reviews processed, average project time is 3 weeks. The approach is straightforward: LLM + structured output + aggregation. In this article, we break down how this works in production and why generic solutions fall short.
Why ABSA Beats General Sentiment
Without ABSA, you lose context. For example, the phrase "staff is friendly but queues are horrible": overall positive, but the aspect 'service speed' is negative. Only aspect-based analysis sends a signal to the manager: "increase cashiers during peak hours." According to our data, 68% of negative reviews contain at least one positive aspect — without ABSA these signals are lost.
How LLM Solves the ABSA Task
Classic approaches (CRF, BiLSTM, BERT fine-tuning) require labeled corpora. For a new domain, that means weeks of annotation. LLM with structured output solves it faster: one prompt yields JSON with aspects and sentiments. Our approach is 3x faster to deploy than custom ML models.
Here's the Pydantic model we use in production:
class AspectSentiment(BaseModel): aspect: str sentiment: Literal["positive", "negative", "neutral", "mixed"] opinion_phrase: str score: float # -1.0 to 1.0 class ReviewAnalysis(BaseModel): aspects: list[AspectSentiment] overall_sentiment: Literal["positive", "negative", "neutral", "mixed"] key_issues: list[str] key_positives: list[str] The GPT-4o model outputs this JSON with ~92% accuracy on Russian-language reviews (based on our tests on 5,000 examples). For sensitive data we use LLaMA 3 70B, hosted via vLLM — latency p99 under 800 ms.
Step-by-step process:
- Define aspects relevant to your domain (e.g., cleanliness, staff, price).
- Craft few-shot prompts with 10–15 examples per aspect.
- Use chain-of-thought reasoning to improve accuracy.
- Parse LLM output into a validated JSON schema.
- Aggregate results across reviews and visualize trends.
Why Aggregation Matters More Than Single Analysis
One review is noise. Thousands are signal. We build a pipeline that collects results across all reviews for a period and aggregates them:
| Aspect | Average Sentiment | Monthly Trend | Mention Share |
|---|---|---|---|
| Cleanliness | 0.65 | ▬ stable | 45% |
| Wi-Fi | -0.32 | ▼ dropping | 22% |
| Breakfast | 0.10 | ▲ rising | 18% |
| Staff | 0.80 | ▲ rising | 35% |
Trends reveal that Wi-Fi is deteriorating — a signal to replace routers. The rising breakfast sentiment shows the new chef is doing well.
We also build time-based aspect heatmaps: you can see how the 'cleanliness' aspect dropped after a cleaner change. Automatic alerts: if the sentiment for 'delivery speed' falls below a threshold, a Slack notification goes to the logistics manager.
How We Ensure Analysis Accuracy
For high accuracy we use few-shot prompts with 10–15 examples per domain and chain-of-thought reasoning. Each result undergoes schema validation. For critical industries, we calibrate confidence — the model returns a score from -1 to 1, and we discard predictions with low confidence (<0.3). This yields precision up to 96% on key aspects.
Comparison: Open Source vs GPT-4o
| Criterion | Open Source (LLaMA 3 70B) | GPT-4o |
|---|---|---|
| ABSA accuracy | 87% | 92% |
| Latency p99 | 800 ms | 1.2 s |
| Cost per 1k reviews | free (self-host) | $0.50 |
| Confidentiality | full | depends on agreement |
The choice depends on your privacy and budget requirements. We help select the optimal option. GPT-4o is 2x more accurate than open-source models for rare aspects.
What Our Work Includes (Deliverables)
Our deliverable package includes:
- Consultation and audit of your current review flow: channels (Google Maps, Yandex, Otzovik, CRM), format (CSV, API, JSON)
- Stack selection: OpenAI / open-source model, vector DB (Qdrant or pgvector) for embedding storage
- Prompt development with few-shot and chain-of-thought for high accuracy
- Integration with your dashboard (Metabase, PowerBI, Tableau) or our default draft on Plotly
- Documentation and team training: how to interpret the aspect radar and trends
- 3-month support guarantee: bug fixes, aspect adjustments for new seasons
- Access to dashboards and alerting system
How to Start?
Describe your task — we'll propose an architecture suited to your budget and timeline. A full implementation costs between $8,000 and $12,000, with a typical ROI of 3 months. We evaluate the project in 2 business days. Result: JSON schema, prototype on 50 reviews, and roadmap to production. Contact us — we'll show how ABSA solves your specific pain points. Get a consultation on ABSA architecture for your business.







