masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:

Русский мат

После обсуждения в ru_perl фильтра нецензурных выражений реинкарнировал старую резалку мата.

Прошлый алгоритм сначала готовил текст (убирал пробелы, дубликаты букв, приводил к одному регистру), удалял из него слова, похожие на маты (пример - чЕБУрашка и тЕБЕНёк) а потом искал в нём, прогоняя его через пачку регулярных выражений. При нахождении в тексте subj., определить, где он был в оригинальном тексте не представлялость возможным; с другой стороны, некоторую информацию давал номер сработавшего регулярного выражения.

Новый алгоритм также готовит текст, но не меняет в нём количество букв (за исключением приклеивания спереди и сзади по пробелу - чтобы не делать различия между пробелом и границами строки), строит два общих регулярных выражения - одно для исключений, другое для матов; заменяет НЕматы на соответствующее длине вхождения количество подчёркиваний, а потом ищет в этой же строке маты, заменяя буквы с теми же позициями в ОРИГИНАЛЬНОЙ строке звёздочками. Без необходимости замены - проще (увеличивает значение счётчика).

Плюсы - быстрее работает, возможна автокорректировка текста (те самые звёздочки), конфиг управляемый (содержит простое для неподготовленного пользователя подмножество регулярных выражений - буква, множество букв, необязательность (вопросик), пробел, непробел, и возможно_пробел (\s*) а так же отображения букв - ж -> жЖjJ zH }|{ и допускает комментарии), модуль совершенно не зависит от языка.

Минусы - был сложен в разработке (один только оптимизирующий компилятор регулярных выражений вспоминаю с теплотой и некоторым содроганием), не распознаёт особо сложные случаи типа 3.14ЗДЕЦ, }}}{{{уй (но распознаёт }{уй).

Сейчас причёсываю код, оформляю комментариями.

Tags: РусскийМат, ТекстовыеАлгоритмы, Язык
Subscribe

  • Будда в матрице

    Тут как раз первое Апреля, первый день сибирской весны(*), день математика, день дурака, а значит хороший повод поговорить о несерьёзном и ненаучном.…

  • (no subject)

    Дети играют: "Рельсы-рельсы, шпалы-шпалы ехал поезд" (мой мозг продолжает) из Валгаллы!

  • Инсинуирую помаленьку

    Когда-то, почти уже в прошлой жизни, пишу поисковый полнотекстовый алгоритм, никого не трогаю. Морфология, индексы, всё как надо. Натыкаюсь на…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments