Поиск информации по ключевым словам «приворот» и «порча» — задача нетривиальная. Эти термины глубоко укоренены в фольклоре, литературе, музыке и современной поп-культуре, что создает мощный шум при попытке отфильтровать коммерческие предложения, мошеннические схемы или действительно релевантные запросы пользователей. В этой статье мы подробно разберем стратегии точной фильтрации, чтобы отделить целевой трафик от информационного мусора.
Природа проблемы: почему возникают ложные срабатывания?
Прежде чем настраивать фильтры, нужно понять семантические зоны, в которых существуют эти слова:
- Эзотерика и коммерческие услуги: реальные запросы на поиск магов, ритуалов, цен («сделать приворот», «снять порчу», «маг гарантия»).
- Художественная литература и фольклор: сказки, бабы-яги, былины, романы жанра фэнтези/мистика («порою навела баба-яга», «приворотная трава в сказке»).
- Музыка и поп-культура: названия песен, альбомов, клипов (например, треки групп «Король и Шут», «Ленинград», поп-исполнителей).
- Психология и скептицизм: статьи о плацебо, когнитивных искажениях, разоблачениях мошенников («приворот, это автогипноз», «как не стать жертвой магов»).
- Исторический и лингвистический контекст: изучение быта, обрядов, этимологии слов.
- Метафорическое использование: «приворот к алкоголю», «порча настроения», «порча нервов».
Главное правило: простой поиск по вхождению подстроки приворот или порча даст до 70-80% нерелевантных данных. Необходим многоуровневый подход.
Лингвистические и морфологические фильтры
Учет словоформ и опечаток
Русский язык богат формами. Регулярные выражения (RegEx) должны покрывать:
- Приворот: приворот, приворота, привороту, приворотом, привороте, привороты, приворотов, приворотам.
- Порча: порча, порчи, порче, порчу, порчей, порчи, порч, порчам.
- Опечатки (клавиатурные/фонетические): приварот, привород, порчя, порчя, прриворот.
Используйте нечеткий поиск (fuzzy search) с расстоянием Левенштейна 1-2 для пользовательских запросов, но строгое совпадение для модерации контента.
Стоп-слова и негативные контексты (Negative Keywords)
Самый эффективный первый слой защиты — список стоп-слов, появление которых рядом с ключевым термином (в окне ±5-) почти гарантированно означает нерелевантность для коммерческой/услуговой ниши:
- Музыка/Культура: песня, трек, альбом, клип, текст, аккорды, табы, слушать, скачать, mp3, исполнитель, группа, концерт, фестиваль, «Король и Шут», «Секрет», «Ленинград».
- Литература/Кино: книга, роман, рассказ, глава, герой, персонаж, фильм, сериал, сценарий, фэнтези, мистика, автор, писатель, сюжет.
- Игры: квест, рпг, прокачка, скилл, спелл, бафф, дебафф, витчер, скirim, дандди, механика, предмет.
- Скептицизм/Наука: разоблачение, мошенник, обман, психология, плацебо, автогипноз, наука, скептик, доказательство, критическое мышление.
- История/Фольклор: былина, сказка, легенда, миф, древние, славяне, обряд, традиция, этнография, музей, архив.
- Метафоры/Быт: настроение, нервы, отношения, настроение, жизнь, день, погода, машина, телефон, ремонт.
Контекстный анализ (NLP и семантика)
Современные подходы требуют понимания намерения (intent) пользователя.
Анализ окна контекста (N-grams / Sliding Window)
Проверяйте биграммы и триграммы вокруг целевых слов.
| Целевое слово | Маркеры коммерческого/услугового намерения (Target) | Маркеры информационного/художественного шума (Noise) |
|---|---|---|
| Приворот | сделать, заказать, купить, цена, стоимость, мастер, маг, баба, ведьма, гарантия, результат, фото, отзыв, на любовь, на мужчину, на женщину, сильный, действенный, за деньги, оплата | песня, текст, аккорды, скачать, слушать, сказка, книга, фильм, герой, трава, ритуал (в контексте описания), история, легенда |
| Порча | снять, убрать, лечить, вылечить, диагностика, проверка, симптомы, признаки, как узнать, защита, амулет, заговор, мастер, цена, гарантия, черная магия, сглаз | порча нервов, порча настроения, порча крови (медицина), порча металла (техника), песня, альбом, игра, дебафф, квест, сказка, баба-яга |
Классификация намерений (Intent Classification)
Если вы строите систему на ML (BERT, RuBERT, fastText), обучайте классификатор на 3-4 классах:
- Commercial/Service: «Заказать приворот на любовь гарантия», «Снять порчу деньги назад».
- Informational/Symptoms: «Признаки порчи на здоровье», «Как работает приворот фото».
- Entertainment/Culture: «Текст песни приворот», «Приворот в игре Witcher».
- Educational/Skeptic: «Почему приворот не работает психология», «Разоблачение магов порча».
Только класс Commercial/Service и частично Informational/Symptoms являются целевыми для бизнеса в этой нише.
Специфические паттерны для ниши «Эзотерические услуги»
Эта ниша имеет уникальные маркеры, которые помогают отсечь шум с высокой точностью.
Маркеры «Мошеннических/Серых» схем (если нужно их блокировать)
Если ваша задача, защита пользователей или модерация маркетплейса, ищите комбинации:
- 100% гарантия / Гарантированный результат / Завтра вернется.
- Предоплата 100% / Полная предоплата / Перевод на карту Сбербанк / Киви / Крипта.
- Работаю по фото / По фото и дате рождения / Дистанционно без личного присутствия.
- Срочно / За 1 день / За 3 часа / Мгновенный эффект.
- Скрытые платежи / Доплаты / «Материалы дорогие» / «Нужно купить свечи/травы за 50к».
Маркеры «Легитимных» практиков (для таргетинга)
- Упоминание конкретных традиций: «чернокнижие», «белое дело», «рунная магия», «вуду», «свечная магия».
- Наличие «Анкеты для диагностики» / «Первичная диагностика бесплатно/за символическую плату».
- Описание этапов работы: «подготовка», «ритуал», «закрепление», «отчет по работе».
- Ссылки на этику: «не работаю на вред», «не ломаю семьи», «согласие клиента».
Техническая реализация: от RegEx до векторного поиска
Уровень 1: Быстрые регулярные выражения (Pre-filter)
Применяются на этапе индексации или стриминга логов для отсева очевидного шума.
# Пример псевдокода для префильтрации шума (Python-like)
NOISE_PATTERNS = [
r"(песня|трек|альбом|клип|текст|аккорды|слушать|скачать).{0,30}(приворот|порча)",
r"(приворот|порча).{0,30}(песня|трек|альбом|клип|текст|аккорды)",
r"(сказка|книга|роман|фильм|сериал|игра|квест|персонаж).{0,30}(приворот|порча)",
r"(психолог|психология|плацебо|автогипноз|разоблачение|мошенник|обман).{0,30}(приворот|порча)",
r"(порча).{0,10}(нервов|настроения|крови|металла|двигателя|телефона)",
]
def is_noise(text):
text_lower = text.lower
for pattern in NOISE_PATTERNS:
if re.search(pattern, text_lower):
return True
return False
Уровень 2: Эмбеддинги и семантическое сходство (Semantic Search)
Используйте предобученные модели (например, sbert-large-nlu-ru, LaBSE, RuBERT).
- Сформируйте эталонные векторы (centroids) для классов: «Заказ услуги», «Песня», «Статья-разоблачение», «Медицина/Техника».
- Векторизуйте входящий текст.
- Считайте косинусное сходство (Cosine Similarity).
- Если сходство с классом «Песня» > 0.85 и с классом «Услуга» < 0.4 -> Отклонить.
Уровень 3: LLM-классификация (для сложных кейсов)
Для коротких текстов (отзывы, чаты, короткие посты) где контекста мало, используйте few-shot промпты для LLM (GPT, YandexGPT, GigaChat, локальные Llama/Mistral):
Prompt: «Классифицируй намерение текста. Классы: [COMMERCIAL_SERVICE, INFO_SYMPTOMS, CULTURE_ENTERTAINMENT, SKEPTIC_SCIENCE, MEDICAL_TECH, OTHER]. Выведи только класс.
Текст: «Сделала приворот на мужчину, через неделю он позвонил, советую маму Надежду, контакты в профиле» -> COMMERCIAL_SERVICE
Текст: «Слушаю новую песню Приворот от группы Х, огненный трек» -> CULTURE_ENTERTAINMENT
Текст: «Как понять, что на мне порча? Головно болит, деньги текут» -> INFO_SYMPTOMS
Текст: «Порча на двигателе устранили за 5 тысяч в сервисе» -> MEDICAL_TECH
»
Обработка специфических ловушек (Edge Cases)
Омонимия «Порча» в технике и медицине
Слово «порча» активно используется в автосервисе («порча блока цилиндров», «порча КПП»), стоматологии («порча зубов», «порча прикуса»), металлургии («порча металла»).
Решение: Обязательная проверка на наличие технических/медицинских энтити в окне контекста: двигатель, машина, авто, сервис, мастер, зуб, врач, клиника, лечение, металл, сварка, коррозия, износ. Если найдены — перемаркировать в класс TECHNICAL/MEDICAL.
Смешанный контент (Блоги/Стримы)
Популярный формат: «Реакция на приворот», «Проверяю порчу онлайн», «Разбираю историю с приворотом».
Здесь ключевые слова есть, намерение, развлекательное/образовательное.
Маркеры: реакция, обзор, разбор, история, стори, кейс, проверяю, тестирую, мое мнение, комментарии, подписывайся, блогер, ютуб, рутюб, тикток, рилс, шортс.
Цитирование и репосты
Пользователь может репостнуть рекламу мага, добавив комментарий «не верьте, это развод».
Решение: Анализируйте автора и источник. Если текст взят из открытого источника (цитата, репост), смотрите на комментарий пользователя. Негативная сентимент-анализ комментария («развод», «обман», «не платьте») перевешивает коммерческий характер исходного текста.
Метрики качества и тестирование (QA)
Нельзя просто «написать фильтры и забыть». Необходим цикл обратной связи:
- Precision (Точность): Из всех найденных «услуг», сколько реально услуги? (Цель: > 95%).
- Recall (Полнота): Сколько реальных услуг мы нашли из всех существующих? (Цель: > 90%).
- F1-score: Гармоническое среднее.
Методология валидации:
- Соберите тестовую выборку: 1000-2000 текстов вручную размеченных асессорами (3 класса: Target, Noise, Borderline).
- Запустите пайплайн.
- Разберите False Positives (Ложные срабатывания): почему песня прошла как услуга? (Добавляем стоп-слова/паттерны).
- Разберите False Negatives (Пропуски): почему реальная услуга отсеялась? (Слишком агрессивные стоп-слова? Новый сленг? Обфускация текста?).
- Итеративно улучшайте словарь и пороги модели.
Чек-лист для внедрения (Summary)
- Морфология: Полный список словоформ + частые опечатки в RegEx/Tokenizer.
- Стоп-листы (Hard Filters): Музыка, игры, литература, скептицизм, техника/медицина, метафоры. Применяются первыми для экономии ресурсов.
- Позитивные паттерны (Soft Filters): Глаголы действия (сделать, заказать, снять), денежные сущности (цена, руб, оплата), ролевые сущности (маг, мастер, баба, ведьма), гарантии/сроки.
- Семантический слой (Embeddings/LLM): Классификация намерения для пограничных случаев и коротких текстов.
- Контекст автора/площадки: Профиль пользователя (маг/блогер/обычный), тип площадки (доска объявлений/ютуб/форум/медицина).
- Обратная связь: Логирование срабатываний, ручная проверка случайной выборки еженедельно.
Избегание ложных срабатываний по запросам «приворот» и «порча» — это задача не про «запрет слов», а про понимание контекста. Комбинация дешевых и быстрых регулярных выражений (для отсева 80% шума: песни, сказки, техника) с семантическими моделями (для разделения «заказа услуги», «поиска симптомов» и «разоблачений») дает наилучший результат.
Помните: ниша эзотерических услуг динамично меняет лексику (новые сленговые термины, обфускация слов в рекламе типа «пр1вор0т», «п0рч@»). Система должна иметь механизм быстрого добавления новых паттернов без полного переобучения модели. Только гибридный подход «Правила + ML + Human-in-the-loop» обеспечивает стабильный высокий Precision при приемлемом Recall.