Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Censure: определение наличия мата (нецензурных слов) в тексте, матотест (Rin)
Goto page 1, 2  Next
Author Message
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Wed Jun 13, 2007 3:44 pm (написано за 6 минут 50 секунд)
   Post subject: Censure: определение наличия мата (нецензурных слов) в тексте, матотест
Reply with quote

Класс пытается определить наличие мата (нецензурных, матерных слов) в html-тексте
Возвращает FALSE, если мат не обнаружен, иначе обнаруженное матерное слово или фрагмент текста с "подсвеченным" матерным словом (настраивается).

Алгоритм достаточно надежен и быстр, в т.ч. на больших объемах данных.
Метод обнаружения мата основывается на корнях и предлогах русского языка, а не на словаре.
Слова "лох", "хер", "залупа", "сука" матерными словами не считаются (см. словарь Даля)

Project has been moved to code.google.com/p/php-censure/

Last edited by Rin on Fri Jul 22, 2011 11:53 pm; edited 10 times in total
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Wed Jun 13, 2007 4:59 pm (спустя 1 час 15 минут; написано за 1 секунду)
   Post subject:
Reply with quote

Rin, не могли бы Вы убрать комментарии в версии, которая на этом форуме? Потому что лично меня напрягает читать Ваш исходный код из-за обилия мата. Я предлагаю поместить версию с комментариями во вложение, а тут выложить версию без мата в комментах.
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Jun 13, 2007 5:52 pm (спустя 52 минуты; написано за 2 минуты 10 секунд)
   Post subject:
Reply with quote

Rin wrote:
Слова "лох", "хер", "залупа", "сука" матерными словами не считаются (см. словарь Даля)
— они, конечно, матерными словами не считаются.
Только Даль тут причём?
В оригинальном словаре Даля весь мат был «на равных правах» с остальными словами.
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Sun Jun 17, 2007 5:01 am (спустя 3 дня 11 часов 9 минут; написано за 41 секунду)
   Post subject:
Reply with quote

как он ведёт себя со словами типа "заштрихуй"?
Back to top
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Mon Jun 18, 2007 9:58 pm (спустя 1 день 16 часов 56 минут; написано за 5 минут 2 секунды)
   Post subject:
Reply with quote

Заштрихуй, дебет, оскорблять, перебалтывай -- все эти слова и подобные НЕ считаются матом.
За 2 года его использования могу сказать, что фильтр достаточно надежен.
Back to top
View user's profile Send private message Send e-mail
amikhailov
Участник форума



Joined: 11 Nov 2004
Posts: 180
Карма: 4
   поощрить/наказать

Location: Екатеринбург

PostPosted: Thu Jun 21, 2007 2:14 pm (спустя 2 дня 16 часов 15 минут; написано за 40 секунд)
   Post subject:
Reply with quote

Code (php): скопировать код в буфер обмена
    #
    #
    #
    #
    if (! function_exists (www.php.net/function_exists)('strip_tags_smart'))  #
    {
        include_once 'strip_tags_smart.php';
    }
    $s = strip_tags_smart($s, true, true, array (www.php.net/array)('comment', 'style', 'map', 'frameset', 'object', 'applet'));

    if (! function_exists (www.php.net/function_exists)('utf8_html_entity_decode'))  #
    {
        include_once 'utf8_html_entity_decode.php';
    }
Для порядку бы тогда уж и strip_tags_smart.php + utf8_html_entity_decode.php в архив вложили бы
Back to top
View user's profile Send private message
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Thu Jun 21, 2007 9:56 pm (спустя 7 часов 41 минуту; написано за 48 секунд)
   Post subject:
Reply with quote

Недостающие файлы есть на этом форуме, но для порядку добавил в архив.
Back to top
View user's profile Send private message Send e-mail
Базылев Дмитрий
Заглянувший



Joined: 07 Sep 2007
Posts: 16
Карма: 0
   поощрить/наказать

Location: Уфа

PostPosted: Fri Sep 07, 2007 3:55 pm (спустя 2 месяца 15 дней 17 часов 59 минут; написано за 1 минуту 42 секунды)
   Post subject:
Reply with quote

Кстати, вот вам отличная идея - есть словарь русского мата на mat.fobo.ru.
Можно договориться с их авторами, и сделать XML-экспорт списка слов в вашу базу мата.

Я сам в своем универсальном парсере такое планирую сделать.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Nov 27, 2007 3:05 am (спустя 2 месяца 19 дней 11 часов 9 минут)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «стоит ли цензурировать мат в интернете?»,
расположенную в форуме Прочее (27 Ноября 2007, 03:05).
Back to top
View user's profile Send private message
ABTOP
Заглянувший



Joined: 01 Dec 2007
Posts: 14
Карма: -1
   поощрить/наказать


PostPosted: Sat Dec 01, 2007 7:53 am (спустя 4 дня 4 часа 48 минут; написано за 4 минуты 14 секунд)
   Post subject:
Reply with quote

Базылев Дмитрий wrote:
Кстати, вот вам отличная идея - есть словарь русского мата на mat.fobo.ru.
Можно договориться с их авторами, и сделать XML-экспорт списка слов в вашу базу мата.

Я сам в своем универсальном парсере такое планирую сделать.
mat.fobo.ru wrote:
Статистика
На данный момент в базе словаря находится 4208 слов и выражений (включая не подтвержденные).
Йето реально работать с более 4-х тыс. слов?

Rin,
почему у вас такой странный набор корней - некоторые нематерные присутствуют, а некоторые матерные не включены?
Back to top
View user's profile Send private message
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Sun Dec 02, 2007 8:39 pm (спустя 1 день 12 часов 45 минут; написано за 52 секунды)
   Post subject:
Reply with quote

Напишите мне личное сообщение, чтобы не "светить" матом здесь.
Back to top
View user's profile Send private message Send e-mail
simbel
Заглянувший



Joined: 04 Jul 2007
Posts: 7
Карма: 0
   поощрить/наказать


PostPosted: Thu Dec 06, 2007 5:58 pm (спустя 3 дня 21 час 18 минут; написано за 10 минут 38 секунд)
   Post subject:
Reply with quote

Уважаемый Rin.

Скачал архив censure.rar. Поставил скрипт(все функции). Ничего не менял, кроме путей к файлам с функциями - прописал полные пути (до изменения include_once выдавал ошибку об отсутствии файла).

Вот строка, которое обрабатывается вашим скриптом:
Code (php): скопировать код в буфер обмена
$s = '   ,  <> 11 , #"_@#,\xc2\xa7. dgdddedbd gdebdgdebvd ### dgefhf     , ..  -   .';
В результате скрипт выдаёт ошибку:
Code (php): скопировать код в буфер обмена
Warning: preg_match (www.php.net/preg_match)() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 6 in z:\home\prostor\www\admcode\cats\all_function.php on line 260
В чём может быть сдесь ошибка? Помогите, пожалуйста.

Проверил как меняется строка после обработки каждой из функций: strip_tags_smart(), utf8_html_entity_decode() и utf8_convert_case(). Результат - никаких изменений, ничего не вырезается и не заменяется - строка остаётся такой же как и на входе. Так и должно быть?

Дальше, после обработки регулярным выражением:
Code (php): скопировать код в буфер обмена
    #получаем в массив только буквы и цифры
    #"с_л@о#во,с\xc2\xa7лово.Слово" -> "слово слово слово"
    preg_match_all (www.php.net/preg_match_all)('/(?> \xd0[\xb0-\xbf]|\xd1[\x80-\x8f\x91]  #[а-я]
                      |  [a-z\d]+
                      )+
                    /isx'
, $s, $m);
строка $s превращается в
Code (php): скопировать код в буфер обмена
11 xc2 xa7 dgdddedbd gdebdgdebvd dgefhf
После обработки регулярным выражением
Code (php): скопировать код в буфер обмена
    #убираем все повторяющиеся символы
    #"сллоооовоо   слово" -> "слово слово"
    echo (www.php.net/echo) $s = preg_replace (www.php.net/preg_replace)('/(  [\xd0\xd1][\x80-\xbf]  #оптимизированное [а-я]
                         | [a-z\d]
                         ) \\1+
                       /sx'
, '$1', $s);
строка превращается в
Code (php): скопировать код в буфер обмена
1 xc2 xa7 dgdedbd gdebdgdebvd dgefhf
Ну а на последнем регулярном выражении, которое вырезает плохие слова возникает ошибка:
Code (php): скопировать код в буфер обмена
Warning: preg_match (www.php.net/preg_match)() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 6 in z:\home\prostor\www\admcode\cats\all_function.php on line 260
Что может быть не так? Помогите, пожалуйста, разобраться.
Back to top
View user's profile Send private message Send e-mail
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Fri Dec 07, 2007 11:52 pm (спустя 1 день 5 часов 54 минуты; написано за 19 секунд)
   Post subject:
Reply with quote

Проверьте строку функцией is_utf8() (forum.dklab.ru/viewtopic.php?t=17146)
Back to top
View user's profile Send private message Send e-mail
simbel
Заглянувший



Joined: 04 Jul 2007
Posts: 7
Карма: 0
   поощрить/наказать


PostPosted: Sat Dec 08, 2007 9:49 pm (спустя 21 час 56 минут; написано за 2 минуты 41 секунду)
   Post subject:
Reply with quote

Я, для разработки сайта использую кодировку win-1251. Может поэтому проблемы? В моём случае вообще целесообразно использовать функции utf8_html_entity_decode() и utf8_convert_case()? Я сделал без них и вроде всё работает. Мат распознаётся. Для чего вообще нужны эти функции?
Back to top
View user's profile Send private message Send e-mail
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Sun Dec 09, 2007 3:01 pm (спустя 17 часов 11 минут; написано за 3 минуты 2 секунды)
   Post subject:
Reply with quote

Захотелось пофлудить на тему utf8 - а настолько ли он нужен для определения русского мата?...
simbel Но слабый смертный не ведает будущего и счастлив неведением своим!... (с)Ф. Н. Глинка ;-)
Rin ...во многой мудрости много печали... (с)Еккл (1:17,18) ;-(
Back to top
View user's profile Send private message Send e-mail
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Mon Dec 10, 2007 2:39 pm (спустя 23 часа 37 минут; написано за 7 секунд)
   Post subject:
Reply with quote

UTF‑8: современно, грамотно, удобно (webtest.philigon.ru/articles/utf8/)
Back to top
View user's profile Send private message Send e-mail
Валенок
Участник форума



Joined: 06 Apr 2006
Posts: 520
Карма: -3
   поощрить/наказать


PostPosted: Mon Dec 10, 2007 4:37 pm (спустя 1 час 57 минут; написано за 15 секунд)
   Post subject:
Reply with quote

а пхп обещало его хорошую поддержку тока в 6ой версии%))
Back to top
View user's profile Send private message
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Tue Dec 11, 2007 8:00 am (спустя 15 часов 23 минуты; написано за 2 минуты 51 секунду)
   Post subject:
Reply with quote

Rin Ну, одна из моих мыслЕй была - utf - это интернационально, так что только словарем одного русского мата, как-бы, обойтись будет, в перспективе, непросто... А cp1251 - гарантирует мат на русском :) Хотя мысль, конечно, гниловата... Флуд, что с него взять...
Back to top
View user's profile Send private message Send e-mail
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Wed Dec 19, 2007 5:59 pm (спустя 8 дней 9 часов 59 минут; написано за 4 минуты 15 секунд)
   Post subject:
Reply with quote

3.1.0-beta
  1. Добавлены новые матные слова
  2. Функция распознает гораздо больше матных слов, чем прежняя версия
  3. При обнаружении мата возвращается фрагмент текста с матерным словом
Функция нуждается в более тщательном тестировании.
В случае обнаружения ошибок (ложных срабатываний) -- пишите.
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue Jan 22, 2008 3:58 pm (спустя 1 месяц 2 дня 21 час 58 минут; написано за 28 секунд)
   Post subject:
Reply with quote

Отличная работа! Респект автору.
А есть ли что-нибудь подобное для обысного ср1251 ?
Back to top
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Tue Jan 22, 2008 9:56 pm (спустя 5 часов 58 минут; написано за 28 секунд)
   Post subject:
Reply with quote

Перекодировка работает достаточно быстро. :)
Back to top
View user's profile Send private message Send e-mail
Апокалипсис
Заглянувший



Joined: 12 Mar 2008
Posts: 1
Карма: 1
   поощрить/наказать


PostPosted: Wed Mar 12, 2008 4:49 pm (спустя 1 месяц 20 дней 18 часов 52 минуты; написано за 49 секунд)
   Post subject:
Reply with quote

Автору спасибо за этот фильтр. Установил его у себя в чате - и отловил много ложных срабатываний фильтра. Если интересует могу выложить их.
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Mar 12, 2008 5:58 pm (спустя 1 час 8 минут; написано за 24 секунды)
   Post subject:
Reply with quote

Апокалипсис, рекламу из подписи уберите.
Back to top
View user's profile Send private message
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Wed Mar 12, 2008 9:10 pm (спустя 3 часа 11 минут; написано за 59 секунд)
   Post subject:
Reply with quote

Апокалипсис

Напишите сюда или в личное сообщение список ложных срабатываний.
Back to top
View user's profile Send private message Send e-mail
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Thu May 01, 2008 8:20 pm (спустя 1 месяц 18 дней 23 часа 10 минут; написано за 11 секунд)
   Post subject:
Reply with quote

Последние обновления этой функции смотрите здесь (forum.dklab.ru/viewtopic.php?t=17146)
Back to top
View user's profile Send private message Send e-mail
Кро
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Feb 04, 2009 11:53 am (спустя 9 месяцев 2 дня 15 часов 32 минуты; написано за 27 секунд)
   Post subject:
Reply with quote

Как пользоваться этой функцией если я хочу вырезать из текста всё матные слова?
Back to top
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Wed Feb 04, 2009 9:10 pm (спустя 9 часов 17 минут; написано за 1 минуту 2 секунды)
   Post subject:
Reply with quote

Попробуйте модернизировать исходный код.
В каком случае такое могло понадобиться?
Back to top
View user's profile Send private message Send e-mail
Военный1
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Feb 09, 2009 6:38 pm (спустя 4 дня 21 час 28 минут; написано за 3 минуты 51 секунду)
   Post subject:
Reply with quote

Rin wrote:
В каком случае такое могло понадобиться?
Дело в том, что если в строчке имеется больше 1го матерного слова, то функция возвращает только первое вхождение.
В случае необходимости найти и заменить все слова - надо вызывать функцию до тех пор, пока она не вернет false.
Я думаю, что речь шла об этом.
Back to top
Savy
Заглянувший



Joined: 13 Feb 2009
Posts: 5
Карма: -1
   поощрить/наказать

Location: Уфа

PostPosted: Wed Feb 18, 2009 3:50 am (спустя 8 дней 9 часов 11 минут; написано за 1 минуту 31 секунду)
   Post subject:
Reply with quote

Всем Привет!
А если в слове заменить русскую "а" на английскую, слово отловится?
Это простой случай, можно ещё привести более изощрённые замены "ж" -> "*" (в сотовом телефоне один к одному :) )
Back to top
View user's profile Send private message
Qyax
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Apr 15, 2009 1:36 pm (спустя 1 месяц 25 дней 9 часов 45 минут; написано за 1 минуту 6 секунд)
   Post subject:
Reply with quote

А как же пробелы !?
пример: С У К А, Х У Й
или пример: идите все на х у й
типа такого функция "пропустит" !?

P.S. Сорри за нецензурщину :)
Back to top
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Wed Apr 15, 2009 4:05 pm (спустя 2 часа 29 минут; написано за )
   Post subject:
Reply with quote

Вроде не пропускает...
Back to top
View user's profile Send private message Send e-mail
иван2323
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Apr 20, 2009 6:04 pm (спустя 5 дней 1 час 59 минут; написано за 17 секунд)
   Post subject: словарь
Reply with quote

не знает слова минет
Back to top
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Mon Apr 20, 2009 7:37 pm (спустя 1 час 32 минуты; написано за 11 секунд)
   Post subject:
Reply with quote

иван2323
А это не мат
Back to top
View user's profile Send private message Send e-mail
ClawFinger
Участник форума



Joined: 21 Jun 2004
Posts: 27
Карма: 2
   поощрить/наказать

Location: Одесса

PostPosted: Mon Dec 28, 2009 2:16 pm (спустя 8 месяцев 7 дней 18 часов 39 минут; написано за 10 секунд)
   Post subject:
Reply with quote

мандарин цензурит...
Back to top
View user's profile Send private message
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Tue Dec 29, 2009 12:44 pm (спустя 22 часа 28 минут; написано за 26 секунд)
   Post subject:
Reply with quote

[cutted]

Last edited by Rin on Fri Jul 30, 2010 10:31 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
andy_v
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Mar 24, 2010 4:15 pm (спустя 2 месяца 26 дней 3 часа 30 минут; написано за 28 секунд)
   Post subject:
Reply with quote

на слово "чебуречная" , "чебурек" срабатывает :)
Back to top
andy_v
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Mar 24, 2010 4:58 pm (спустя 42 минуты; написано за 31 секунду)
   Post subject:
Reply with quote

извините, именно так: "Чебурек", т.е. с заглавной буквы
Back to top
andy_v
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Mar 24, 2010 5:06 pm (спустя 8 минут; написано за 12 секунд)
   Post subject:
Reply with quote

из той же оперы: "Не будет"
Back to top
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 515
Карма: 185
   поощрить/наказать

Location: Москва

PostPosted: Fri Jul 30, 2010 10:32 am (спустя 4 месяца 5 дней 17 часов 25 минут; написано за 19 секунд)
   Post subject:
Reply with quote

Вышла новая версия 3.2.6
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Mon Aug 16, 2010 11:24 am (спустя 17 дней 52 минуты)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «Примеры использования библиотеки Censure»,
расположенную в форуме Разное :: PHP (16 Августа 2010, 14:24).
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Goto page 1, 2  Next
Page 1 of 2    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML