AI-инструменты

Стоп-слова или ИИ-модерация — чем фильтровать пользовательский контент

Иллюстрация: грубое решето и точный сортировщик рядом на верстаке

В Англии есть город Сканторп. Много лет его жители не могли зарегистрироваться в разных сервисах: внутри названия города прячется английское ругательство, и фильтры честно резали слово целиком. Доставалось и соседнему Пенистону, и всем, кому не повезло с сочетанием букв.

Это и есть портрет списка стоп-слов: он не знает, где кончается слово, и уж точно не знает, что ты имел в виду. Зато он бесплатный и мгновенный.

Разберёмся, когда этого достаточно, а когда нужен классификатор.

Как работает каждый вариант

Список стоп-слов — это твой файл со строками. Приходит сообщение, ты ищешь в нём совпадения. Нашёл — отклонил. Никаких сетевых запросов, никакого обучения, полная предсказуемость.

ИИ-модерация — это запрос к модели-классификатору. Она читает сообщение целиком и возвращает оценки по категориям вреда: домогательства, ненависть, насилие, самоповреждение и так далее. Она не ищет слова — она оценивает смысл.

Сравнение по шести критериям

Цена. Стоп-лист бесплатный полностью. У ИИ-модерации бывает по-разному: эндпоинт модерации OpenAI бесплатный, но специализированные сервисы модерации берут за объём. Ничья, с перевесом стоп-листа только там, где ты вообще не хочешь внешних зависимостей.

Обход. Тут разгром. Стоп-лист обходят за секунду: пробелы между буквами, цифра вместо буквы, латинская «а» вместо русской, эмодзи в середине. Ты добавляешь вариант — пользователь придумывает следующий, и так бесконечно. Классификатор смотрит на смысл фразы и такие фокусы переживает.

Понимание контекста. Стоп-лист не отличает угрозу от цитаты, оскорбление от медицинского термина и мат в свой адрес от мата в чужой. Классификатор различает — не идеально, но принципиально умеет. Это главное отличие: одно ищет строки, второе оценивает высказывание.

Языки. Стоп-лист ты ведёшь руками — для каждого языка отдельно, включая транслит и сленг. Классификаторы работают на десятках языков из коробки, причём мультимодальные версии заметно подтянули именно неанглийские.

Скорость и офлайн. Здесь стоп-лист выигрывает вчистую. Это проверка в памяти: доли миллисекунды, работает без сети, ничего не стоит и не падает, когда у провайдера сбой.

Ложные срабатывания. Ошибаются оба, но по-разному. Стоп-лист ошибается тупо и предсказуемо (Сканторп), классификатор — умно и неожиданно (сарказм принял за угрозу). Зато у классификатора есть числовая оценка, и ты можешь двигать порог; у стоп-листа исход всегда бинарный. Как выбирать этот порог — в статье про ложные срабатывания.

Где стоп-лист действительно выигрывает

Он не устарел — просто у него другая работа. Стоп-лист незаменим там, где нужен точный список конкретных строк:

  • домены и реф-ссылки, которые ты не пускаешь в комментарии;
  • телефоны и мессенджеры, если у тебя площадка и сделки должны идти внутри;
  • имена конкурентов, промокоды, названия своих внутренних сервисов;
  • уже пойманные спам-шаблоны — те, что приходят сотнями одинаковых сообщений.

Для этого классификатор бесполезен: он не знает, что именно ты считаешь нежелательным в своём продукте. Универсальные категории вреда про домены и промокоды ничего не говорят.

Кому что подойдёт

Без виляния:

  • Делаешь первое приложение с комментариями, отзывами, чатом. Бери ИИ-модерацию. Бесплатный эндпоинт закрывает основные категории вреда за час работы — как это подключить, разобрано в гайде по модерации. Свой список стоп-слов ты будешь чинить месяцами и всё равно проиграешь.
  • Нужны свои правила площадки (не даём контакты в обход, не пускаем ссылки). Бери стоп-лист — но именно на конкретные строки, а не на брань.
  • Нужно и то и другое — а это большинство реальных продуктов. Порядок такой: сначала стоп-лист (мгновенно и бесплатно отсекает известное), потом классификатор (оценивает всё остальное). Стоп-лист держи коротким, строк на десять: длинный список — это ферма ложных срабатываний.
  • Нельзя ходить в сеть (офлайн-приложение, закрытый контур, требования по данным). Тогда стоп-лист плюс локальная модель-классификатор — облачный вариант тебе просто недоступен.

И главное, что не решает ни один из вариантов: фильтр не заменяет кнопку «пожаловаться» и живого человека, который смотрит очередь. Автоматика ловит очевидное, люди сообщают о том, что она пропустила. Обе части — это ограждения вокруг твоего продукта, а не одна волшебная проверка.

Можно ли обойтись регулярками?

Регулярка — это тот же стоп-лист, только гибче: ей можно объяснить «буква, потом любой разделитель, потом буква» и поймать разрядку пробелами. Она снимает часть примитивных обходов и остаётся мгновенной. Но со смыслом она не работает по определению, а сложная регулярка на брань очень быстро начинает ловить невиновных — и отлаживать её тяжелее, чем список.

Что делать с русским матом и обходами?

Не пытайся закрыть это списком — проиграешь. Русский даёт слишком много форм: приставки, суффиксы, падежи, транслит, замены букв. Классификатор понимает такие слова в контексте лучше, чем любой перечень корней. А если тебе нужен именно строгий тон общения (например, детское приложение), проверяй не только вход пользователя, но и выход своей модели — и держи порог ниже, сознательно соглашаясь на лишние ложные срабатывания.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →