Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отобрать мусор:)
 
 автор: Poison   (06.09.2007 в 13:04)   письмо автору
 
 

Давно не оздавал темы:)

Проблема такая - нужно проверить несет ли строка какой-то смысл:) тоесть, ( даже незнаю как обьяснить )

Нужно отфильтровать сообщения типа "ЫыыЫыыЫыы" или "ffff ggjgjg kkkk":)

Решил делать так: подсчитать все символы ( сколько раз каждый повторяеться ) а вот потом даже незнаю как лучше зделать?

   
 
 автор: sim5   (06.09.2007 в 13:13)   письмо автору
 
   для: Poison   (06.09.2007 в 13:04)
 

>подсчитать ... сколько раз каждый повторяеться

А если будет так - "аылкрапелу адв ырвобимтпада ыурыо ва ао"? Это будет считаться смыслом?

   
 
 автор: Poison   (06.09.2007 в 13:19)   письмо автору
 
   для: sim5   (06.09.2007 в 13:13)
 

Я знал что вы это спросите:)

Нет конечно... но все-же избавиться хоть от половины мусора.

   
 
 автор: mogul   (06.09.2007 в 13:18)   письмо автору
 
   для: Poison   (06.09.2007 в 13:04)
 

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

Короче одной прверкой не обойдёшься, нужен комплексный подход.

   
 
 автор: mogul   (06.09.2007 в 13:20)   письмо автору
 
   для: Poison   (06.09.2007 в 13:04)
 

Вот еще, можно сделать так, что сообщения не попадают в базу сразу, а идут к модератору и он решает, но это уже нужно возиться.

   
 
 автор: Poison   (06.09.2007 в 13:33)   письмо автору
 
   для: mogul   (06.09.2007 в 13:20)
 

Ну вот что набросал:)

<?
function repeatSymbols($str "") {
    
$str preg_replace"~[\s]+~i"""strtolower$str ) );
    
$str_len strlen($str);
    
$s 0;
    
$result = array();
    while ( isset( 
$str{$s} ) ) {
        if ( isset( 
$result$str{$s} ] ) ) {
            
$result$str{$s} ]++;
        } else {
            
$result$str{$s} ] = 1;
        }
        
$s++;
    }
    
arsort($result);
    
print_r($result);
    foreach ( 
$result as $symbol => $count ) {
        
$percent round( ( $count $str_len ) * 100 );
        if ( 
$percent >= 15 ) {
            echo 
"опля:) ";
        }
        echo 
$percent;
        echo 
"\n";
    }
}


Упопрно не тестировал но строку sim5 ловит:) предпоследнее сообщение нет.

Пойду поем... и заобно подумаю.

   
 
 автор: elenaki   (06.09.2007 в 13:38)   письмо автору
 
   для: Poison   (06.09.2007 в 13:33)
 

в русском могут встречаться и 3 и 4 согласные подряд

   
 
 автор: Poison   (06.09.2007 в 13:42)   письмо автору
 
   для: elenaki   (06.09.2007 в 13:38)
 

Это к чему?)

   
 
 автор: elenaki   (06.09.2007 в 13:43)   письмо автору
 
   для: Poison   (06.09.2007 в 13:42)
 

автор: mogul (06.09.2007 в 13:18)
==============================

если есть 3и подряд идущие буквы, то 100%, что это слово не подходит под правила русского языка,

   
 
 автор: bronenos   (06.09.2007 в 13:44)   письмо автору
 
   для: elenaki   (06.09.2007 в 13:38)
 

и даже три одинаковые гласные!
длинношеее

   
 
 автор: sim5   (06.09.2007 в 13:45)   письмо автору
 
   для: mogul   (06.09.2007 в 13:20)
 

>А так же можно создать словарь

"Словарь русского языка", Составитель С.И. Ожегов, Издание третье 1953 г., 52000 слов.

   
 
 автор: elenaki   (06.09.2007 в 13:47)   письмо автору
 
   для: sim5   (06.09.2007 в 13:45)
 

да чего там - сразу искусственный интеллект. :)

   
 
 автор: Poison   (06.09.2007 в 13:53)   письмо автору
 
   для: elenaki   (06.09.2007 в 13:47)
 

кстати для ИИ мне это и нужно:)) ну почти ИИ:-D
есть бот "болтун" он обучаеться сам , тоесть тупо запоминает все что ему говорят:) вот я и делаю для него фильтр.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования