Антискам-бот на грязных данных: опыт без размеченного датасета
Мошенники не ждут идеального датасета — и вам не стоит. Разработка классификатора для реальных Telegram-чатов с опечатками и сленгом показала: работающий антискам можно сделать даже без разметки.
Автор столкнулся с необходимостью фильтровать скам в Telegram-канале своего проекта и решил построить классификатор без размеченного датасета. Исходные данные — сырые сообщения: опечатки, сленг, смесь латиницы и кириллицы. Традиционный подход (сбор тысячи лейблов) был неприемлем. Вместо этого найдено техническое решение: детектор (бинарный: скам/не скам) и типизатор (классификация типов скама: фишинг, фейк-поддержка, бонус-скам и т.д.).
Первый этап — построение детектора. Автор использовал эвристики: ключевые слова, частотность ссылок, наличие битых ссылок, соотношение длины сообщения и количества ссылок. На основе эвристик сгенерирована «разметка» — неидеальная, но достаточно точная для обучения. Модель (логрегрессия и градиентный бустинг) обучилась на этой разметке и показала 94% точности на тестовом наборе.
Второй этап — типизатор. После определения скама нужно понять его тип. Автор столкнулся с проблемой: 120 типов в данных, многие с перекрытием. Решение — кластеризация эвристических признаков в 10 обобщённых категорий (фишинг, фейк-поддержка, вымогательство, реклама, бонусы и т.д.). Для каждой категории написаны десятки паттернов (регулярные выражения, проверки связок слов). Такой подход позволил избежать полной разметки, но потребовал ручной инженерии.
- Не бойтесь грязных данных. Эвристики и авторазметка дают базу для обучения классификатора без лейблов.
- Начните с простых признаков. Количество ссылок, длина текста, наличие битых ссылок — часто достаточно для отсева 80% скама.
- Типизация скама — отдельная сложность. Лучше сгруппировать 100+ типов в 5–10 обобщённых категорий.
- Грабли: битые ссылки в скаме — нетривиальный признак. Мошенники часто используют сокращалки, ведущие в никуда. Это можно детектить через предзагрузку URL.
«Разметка данных вручную — это часы работы, которые можно потратить на что-то более важное.»
Для бизнеса этот кейс показывает: защиту клиентов от мошенников можно организовать силами одной команды разработки — без миллионов на разметку и долгих циклов. Подход «эвристики → авторазметка → модель» применим не только для текстов, но и для других каналов (email, чаты в CRM). Главное — начать с простых признаков, которые уже есть в системе.
Обсудить внедрение ИИ-агентов в вашем бизнесе
Расскажите о задаче — посчитаем, сколько часов и денег сэкономит агент.
Обсудить внедрение →