Реализация анализа отзывов (Review Analysis) — аспектный Sentiment Analysis
Анализ отзывов на уровне «позитивный/негативный» недостаточен для продуктовых решений. Аспектный sentiment (ABSA) отвечает на вопрос: что именно нравится или не нравится клиенту? «Номер чистый, но Wi-Fi отвратительный, и завтрак так себе» — три аспекта, три оценки.
Задачи ABSA
ATE (Aspect Term Extraction): извлечение аспектов из текста («номер», «Wi-Fi», «завтрак»)
ASC (Aspect Sentiment Classification): тональность для каждого аспекта (позитив/негатив/нейтраль)
ATSC (Aspect Term Sentiment Classification): совместная задача — и извлечение, и классификация одновременно
Opinion Target Expression: извлечение мнений с их субъектами («Wi-Fi» → «отвратительный»)
Реализация с LLM
Для нестандартных доменов LLM-подход с structured output быстрее fine-tuning:
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]
Агрегация по корпусу отзывов
Аспектный анализ одного отзыва малоценен. Ценность — в агрегации по тысячам отзывов:
- Тепловая карта аспектов по времени: динамика ухудшения «чистоты» после смены уборщицы
- Сравнение с конкурентами по аспектам: ваш «сервис» лучше среднего рынка, «расположение» хуже
- Автоматический alert: резкое ухудшение аспекта «скорость доставки» → проблема в логистике
Визуализация и дашборд
Стек для аналитики отзывов: Pandas + Plotly для визуализации, Superset или Metabase для бизнес-дашбордов. Ключевые виджеты: аспектный радар, тренды sentiment по времени, топ-N негативных тем за период.







