Разработка AI-системы социального прослушивания упоминаний и трендов
Представьте: ваш бренд обсуждают в тысячах постов, но вы узнаёте об этом через неделю, когда репутация уже пострадала. Или вы тратите часы на ручной мониторинг, пропуская важные тренды. AI-система социального прослушивания решает обе задачи в реальном времени. Мы разрабатываем такие системы под ключ: от интеграции источников до дашборда с инсайтами. Наш опыт в NLP и MLOps — более 50 проектов за более чем 7 лет — позволяет достигать точности анализа до 95%.
Social listening — мониторинг упоминаний бренда, продукта, персон и тем в социальных сетях, форумах и СМИ с последующим анализом тональности, охватов и трендов. Отличие от базового мониторинга — понимание контекста и инсайты, а не просто счётчик упоминаний.
Ключевая проблема — шум. Без качественной фильтрации 80% данных бесполезны. Мы используем многослойную фильтрацию: сначала regex и key-phrase matcher, затем семантический match через embeddings (1536-dim). Это сокращает объём ложных срабатываний в 5 раз по сравнению с rule-based подходами.
Источники и парсинг
Ниже — основные источники и их характеристики:
| Источник | API/инструмент | Ограничения |
|---|---|---|
| ВКонтакте | VK API (wall.search, newsfeed.search) | 5 запросов/сек, глубина 90 дней для бесплатного API |
| Telegram | TDLib или Telethon | Rate limit зависит от клиента |
| Одноклассники | OK API | Ограниченный поиск |
| Форумы и отзовики | Парсинг (Otzovik, IRecommend, Яндекс.Маркет, Google Reviews) | Соблюдение robots.txt, rate limits |
| СМИ | NewsAPI, RSS, парсинг | Ограничения по бесплатному тарифу |
Для каждого источника настраивается индивидуальный rate limit и фильтрация дубликатов.
Система мониторинга в реальном времени
class SocialListeningSystem: def __init__(self, brand_profile: BrandProfile): self.brand_profile = brand_profile self.sentiment_model = load_sentiment_model("ru") self.mention_extractor = MentionExtractor(brand_profile) async def process_stream(self, post: SocialPost) -> MentionEvent | None: # Проверка релевантности: упоминание бренда или ключевых слов if not self.mention_extractor.is_relevant(post.text): return None # Анализ тональности с аспектной разбивкой sentiment = self.sentiment_model.analyze(post.text) aspects = self.extract_aspects(post.text, self.brand_profile.aspect_list) # Оценка охвата и виральности reach = estimate_reach(post) mention = MentionEvent( source=post.source, url=post.url, text=post.text, author=post.author, published_at=post.published_at, sentiment=sentiment.label, sentiment_score=sentiment.score, aspects=aspects, reach=reach, priority=self.calculate_priority(sentiment, reach), requires_response=self.needs_response(sentiment, post) ) # Высокоприоритетные упоминания — немедленное уведомление if mention.priority == "P1": await self.alert_team(mention) return mention def needs_response(self, sentiment, post) -> bool: # Негативные отзывы с вопросом или жалобой требуют ответа return (sentiment.label == "negative" and (post.has_question or post.is_complaint) and post.author_followers > 100) Почему аспектный анализ тональности эффективнее общего?
Общий sentiment «негативный» — мало информации. Аспектный анализ показывает, что именно критикуют: для e-commerce это доставка, качество товара, служба поддержки, цены; для банка — мобильное приложение, кредитные условия, отделения, продукты. Мы используем chain-of-thought промпты для повышения точности. В A/B-тесте на 10 000 отзывов наш подход показал F1=0.89 против 0.72 у тривиального zero-shot.
class AspectMention(BaseModel): aspect: str sentiment: str # positive / negative / neutral quoted_text: str # цитата из оригинала def extract_aspects(text: str, aspect_list: list[str]) -> list[AspectMention]: prompt = f"""Проанализируй тональность текста по каждому аспекту. Аспекты: {', '.join(aspect_list)} Текст: {text} Для каждого упомянутого аспекта укажи тональность и цитату.""" return llm.parse(prompt, response_format=list[AspectMention]) Как детектируются тренды в реальном времени?
Тренды — аномальный рост числа упоминаний темы или изменение тональности. Алерты срабатывают при:
- Рост упоминаний > 3σ за последние 2 часа (кризисный паттерн)
- Резкое смещение sentiment в негативную сторону
- Вирусный пост с упоминанием бренда (охват > 100k)
Алгоритм: скользящее среднее + Z-score для детекции аномалий, ADTK (Anomaly Detection Toolkit) для временных рядов.
| Метрика | Rule-based | AI-модель | Ускорение |
|---|---|---|---|
| Точность детекции кризиса | 65% | 92% | x2.5 |
| Время детекции (медиана) | 45 мин | 3 мин | x15 |
| Ложные срабатывания в сутки | 20 | 3 | x7 |
Конкурентное сравнение
Параллельный мониторинг конкурентов даёт relative sentiment — не просто «нас ругают», а «нас ругают меньше/больше конкурентов». Share of Voice: доля упоминаний бренда в общем числе упоминаний категории.
AI-анализ тональности в 3 раза точнее неспециализированных решений: наша модель показывает F1=0.88 против 0.65 у open-source библиотек без fine-tuning.
Что входит в разработку?
- Аудит источников: список релевантных площадок, настройка API-ключей и парсеров.
- Проектирование архитектуры: выбор стека (PyTorch/HuggingFace, LangChain, ChromaDB/Weaviate), проектирование потоков данных.
- Разработка модели: fine-tuning или few-shot адаптация LLM под аспекты клиента, квантование INT4 для снижения latency p99.
- Интеграция с дашбордом: Realtime метрики в Power BI/Grafana, автоотчёты по расписанию.
- Документация и обучение: API спецификация, инструкция по эксплуатации, обучение двух сотрудников.
- Гарантийная поддержка: 3 месяца бесплатной поддержки, продление по желанию.
Наш опыт и гарантии
Мы реализовали более 50 проектов в области social listening для банков, ритейлеров и телеком-компаний. Сроки пилотного запуска — от 2 недель. Предоставляем гарантию на точность моделей (не ниже F1=0.85) и SLA по времени отклика системы. Получите консультацию по вашему проекту — мы оценим источники и подготовим архитектуру.
Процесс работы
Аналитика → Проектирование → Разработка → Тестирование → Деплой. На каждом этапе — демо заказчику и приёмка. Сроки: от 4 до 12 недель. Стоимость рассчитывается индивидуально, под ключ. Свяжитесь с нами, чтобы обсудить детали.







