AI-система Social Listening (мониторинг упоминаний и трендов)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
AI-система Social Listening (мониторинг упоминаний и трендов)
Средний
~2-4 недели
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1197
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Разработка AI-системы социального прослушивания упоминаний и трендов

Social listening — мониторинг упоминаний бренда, продукта, персон и тем в социальных сетях, форумах и СМИ с последующим анализом тональности, охватов и трендов. Отличие от базового мониторинга — понимание контекста и инсайты, а не просто счётчик упоминаний.

Источники и парсинг

ВКонтакте: VK API (wall.search, newsfeed.search) — посты, комментарии, репосты. Ограничения: 5 запросов/сек, глубина архива — 90 дней для бесплатного API.

Telegram: публичные каналы и группы через TDLib (неофициально) или Telethon. Сторонние агрегаторы — TGStat API.

Одноклассники: OK API с ограниченным поиском.

Форумы и отзовики: Otzovik, IRecommend, Яндекс.Маркет, Google Reviews, 2GIS — парсинг с соблюдением robots.txt и rate limits.

СМИ: NewsAPI, RSS-агрегаторы, парсинг новостных сайтов.

Система мониторинга в реальном времени

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: доставка, качество товара, служба поддержки, цены. Для банка: мобильное приложение, кредитные условия, отделения, конкретные продукты.

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) для временных рядов.

Конкурентное сравнение

Параллельный мониторинг конкурентов даёт relative sentiment — не просто «нас ругают», а «нас ругают меньше/больше конкурентов». Share of Voice: доля упоминаний бренда в общем числе упоминаний категории.

Дашборд и отчётность

Метрики в реальном времени: число упоминаний (сегодня vs вчера), sentiment распределение, топ-10 источников по охвату, динамика по аспектам. Еженедельный автоматический отчёт с executive summary, ключевыми инсайтами и рекомендациями для команды коммуникаций.