Реалізація аналізу відзивів (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-підхід зі структурованим виводом швидше за 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 негативних тем за період.







