Стоп-слова


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


Фильтр стоп-слов предназначен для:

  • Блокировки или обработки сообщений с определёнными словами или фразами.

  • Гибкой настройки через разные методы поиска и дополнительные параметры.

  • Управления списками стоп-слов (основной и дополнительные).

Модераторы могут включать/выключать фильтр, выбирать методы поиска, задавать действия (например, удаление сообщений или наказание пользователей) и создавать дополнительные списки стоп-слов.


Методы поиска стоп-слов

Система предлагает три метода поиска, которые определяют, как стоп-слова будут обнаружены в сообщениях:

1. Точное совпадение (Точное)Этот метод ищет только полные, точные совпадения слов, без учёта их частей в других словах или изменений с пробелами/символами.

  • Как работает: Сравнивает отдельные слова в сообщении с заданным стоп-словом.

  • Особенности:

    • Игнорирует слова с пробелами, символами или в составе других слов.

    • Чувствителен к точному написанию.

  • Примеры:

    • Стоп-слово: хрен

      • Сообщение: "хрен" → сработает

      • Сообщение: "х р е н → не сработает (пробелы) (используйте поиск по частичному совпадению)

      • Сообщение: "хренасебе" → не сработает (часть другого слова)

    • Стоп-слово: спам

      • Сообщение: "спам" → сработает

      • Сообщение: "спамер" → не сработает

  • Когда использовать: Для строгих правил, чтобы избежать ложных срабатываний на похожие слова.

2. Поиск по подстроке (Частичное)Метод ищет стоп-слово как часть текста, игнорируя пробелы и специальные символы.

  • Как работает: Проверяет, содержится ли стоп-слово в сообщении целиком или внутри других слов.

  • Особенности:

    • Обнаруживает слова, даже если они скрыты или разбиты.

    • Может привести к ложным срабатываниям.

  • Примеры:

    • Стоп-слово: баран

      • Сообщение: "баранина" → сработает (подстрока)

      • Сообщение: "б а р а н" → сработает (пробелы игнорируются)

      • Сообщение: "баран" → сработает

    • Стоп-слово: спам

      • Сообщение: "спамер" → сработает

      • Сообщение: "с п а м" → сработает

  • Когда использовать: Для обнаружения замаскированных или изменённых стоп-слов.

3. Настраиваемый поиск (CUSTOM)Позволяет задавать сложные правила с помощью специальных символов и операторов.

  • Как работает: Использует шаблоны для поиска слов или фраз с учётом вариаций.

  • Поддерживаемые операторы:

    1. Звёздочка (*) — заменяет любое количество символов (включая ноль).

      • Пример: *сите

        • "пригласите" → сработает

        • "попросите" → сработает

        • "ситечко" → не сработает

      • Пример: сек*

        • "сексуально" → сработает

        • "секрет" → сработает

        • "засекли" → не сработает

      • Пример: *раб*

        • "заработок" → сработает

        • "работа" → сработает

        • "арабский" → сработает (возможен ложный результат)

    2. Плюс (+) — заменяет одну или несколько букв внутри слова (без пробелов).

      • Пример: d(+)fendy

        • "defendy" → сработает (замена "e")

        • "de fendy" → не сработает (пробел)

    3. Кавычки ("") — точный поиск фразы.

      • Пример: "Доброе утро"

        • "Доброе утро" → сработает

        • "Доброе утро, друзья" → не сработает (лишние слова)

    4. Двойной амперсанд (&&) — ищет все слова в любом порядке.

      • Пример: картошка && пицца

        • "Мне нравится пицца и картошка" → сработает

        • "Мне нравится пицца" → не сработает (нет "картошка")

    5. Вопросительный знак (?) — заменяет одну букву или её отсутствие.

      • Пример: тест?

        • "тест" → сработает

        • "теста" → сработает

        • "тестирование" → не сработает (слишком много букв)

  • Когда использовать: Для сложных задач, где нужны вариации слов, комбинации или точные фразы.


Настройки фильтра

Основные параметры

  • Включение/выключение фильтра: Опция enable_stop_words активирует или деактивирует фильтрацию.

  • Метод поиска: Выбор между STRICT, SUBSTRING или CUSTOM через меню настроек.

  • Удаление сообщений: Опция delete_message определяет, будет ли сообщение удаляться при срабатывании фильтра.

  • Наказание пользователя: Выбор действия для пользователя:

    • Ничего (NOTHING)

    • Уведомление (NOTIFY)

    • Предупреждение (WARN)

    • Мут (MUTE)

    • Бан (BAN)

    • Кик (KICK)

Управление списками стоп-слов

  • Основной список: Создаётся автоматически для каждой группы

  • Дополнительные списки: Можно создавать вручную с уникальными названиями (до 50 символов, буквы, цифры, пробелы).

  • Добавление стоп-слов:

    • Файлом (.txt или .csv).

    • Вручную (по одному слову/фразе на строку).

  • Удаление: Полное удаление всех слов в списке через кнопку "Удалить все".

  • Экспорт: Выгрузка списка в .txt-файл.



Поддержка эмодзи и специальных символов

  • Эмодзи: Система может заменять эмодзи на соответствующие буквы (например, 🅷 → "н") в зависимости от реализации.

  • Символы:

    • В методе STRICT учитываются только точные слова.

    • В SUBSTRING и CUSTOM пробелы и символы могут игнорироваться или обрабатываться в зависимости от шаблона.

  • Латиница. Иногда спамеры меняют кирилицу на латиницу для маскировки. Такие сообщения также распознаются.


Рекомендации по настройке

  • Точное совпадение (STRICT): Используйте для простых и строгих фильтров, чтобы минимизировать ложные срабатывания.

  • Поиск по подстроке (SUBSTRING): Подходит для обнаружения скрытых или модифицированных слов, но требует осторожности из-за возможных пересечений.

  • Настраиваемый поиск (CUSTOM): Идеален для сложных сценариев, таких как вариации слов, точные фразы или комбинации.

Last updated