<?php
//Топ 3 самых часто встречающихся слов и словосочетаний в тексте(из 2-3-х слов)
$stopWords = array ( 'и' , 'у' , 'к' , 'с' , 'о' , 'от' , 'в' , 'же' , 'из' , 'на' , 'что' ) ; $input = 'Эта функция сортирует массив в обратном порядке таким образом, что
сохраняются отношения между ключами и значениями. Сохраняются отношения и
сохраняются отношения и еще сохраняются отношения и опять сохраняются отношения.' ;
//Удаляем лишнее и разбиваем текст на слова
$words = preg_split ( '/ /' , $input , 0 , PREG_SPLIT_NO_EMPTY
) ;
foreach ( $words as $key => $word ) {
//Прерываем цикл на последнем слове.
if ( $key == ( count ( $words ) - 1 ) ) { break ;
}
//Если текущее слово из списка стоп слов или точка - переходим к следуещему
if ( ( array_search ( $word , $stopWords ) !== false ) || $word == '.' ) { continue ;
}
$nextKey = $key + 1 ;
//Если следующее слово из стоп слов или точка переходим к следуещему слову
if ( ( array_search ( $words [ $nextKey ] , $stopWords ) !== false ) || $words [ $nextKey ] == '.' ) { continue ;
}
//Если же текущее и следующее слово в порядке составляем словосочетание из 2-х слов
$twoWords [ ] = $word . ' ' . $words [ $nextKey ] ;
}
//Считаем, удаляем все что было найдено 1 раз и стоп слова, сортируем
//$countWords1 = array_diff($words, $stopWords);
//$countWords1 = array_diff(array_count_values($words), array(1));
//$countWords2 = array_diff(array_count_values($twoWords), array(1));
//$countWords3 = array_diff(array_count_values($threeWords), array(1));
//arsort($countWords1, SORT_NUMERIC);
//arsort($countWords2, SORT_NUMERIC);
//arsort($countWords3, SORT_NUMERIC);
//print_r($countWords1);
//print_r($countWords2);
//print_r($countWords3);
PD9waHAKLy/QotC+0L8gMyDRgdCw0LzRi9GFINGH0LDRgdGC0L4g0LLRgdGC0YDQtdGH0LDRjtGJ0LjRhdGB0Y8g0YHQu9C+0LIg0Lgg0YHQu9C+0LLQvtGB0L7Rh9C10YLQsNC90LjQuSDQsiDRgtC10LrRgdGC0LUo0LjQtyAyLTMt0YUg0YHQu9C+0LIpCm1iX2ludGVybmFsX2VuY29kaW5nKCdVdGYtOCcpOwoKJHN0b3BXb3JkcyA9IGFycmF5KCfQuCcsICfRgycsICfQuicsICfRgScsICfQvicsICfQvtGCJywgJ9CyJywgJ9C20LUnLCAn0LjQtycsICfQvdCwJywgJ9GH0YLQvicpOwokaW5wdXQgPSAn0K3RgtCwINGE0YPQvdC60YbQuNGPINGB0L7RgNGC0LjRgNGD0LXRgiDQvNCw0YHRgdC40LIg0LIg0L7QsdGA0LDRgtC90L7QvCDQv9C+0YDRj9C00LrQtSDRgtCw0LrQuNC8INC+0LHRgNCw0LfQvtC8LCDRh9GC0L4K0YHQvtGF0YDQsNC90Y/RjtGC0YHRjyDQvtGC0L3QvtGI0LXQvdC40Y8g0LzQtdC20LTRgyDQutC70Y7Rh9Cw0LzQuCDQuCDQt9C90LDRh9C10L3QuNGP0LzQuC4g0KHQvtGF0YDQsNC90Y/RjtGC0YHRjyDQvtGC0L3QvtGI0LXQvdC40Y8g0LgK0YHQvtGF0YDQsNC90Y/RjtGC0YHRjyDQvtGC0L3QvtGI0LXQvdC40Y8g0Lgg0LXRidC1INGB0L7RhdGA0LDQvdGP0Y7RgtGB0Y8g0L7RgtC90L7RiNC10L3QuNGPINC4INC+0L/Rj9GC0Ywg0YHQvtGF0YDQsNC90Y/RjtGC0YHRjyDQvtGC0L3QvtGI0LXQvdC40Y8uJzsKCi8v0KPQtNCw0LvRj9C10Lwg0LvQuNGI0L3QtdC1INC4INGA0LDQt9Cx0LjQstCw0LXQvCDRgtC10LrRgdGCINC90LAg0YHQu9C+0LLQsAokaW5wdXQgPSBtYl9zdHJ0b2xvd2VyKCRpbnB1dCk7CiRpbnB1dCA9IHByZWdfcmVwbGFjZSgnL1tcXHJcXG5dLycsICcgJywgJGlucHV0KTsKJGlucHV0ID0gcHJlZ19yZXBsYWNlKCcvWyxdLycsICcnLCAkaW5wdXQpOwokaW5wdXQgPSBwcmVnX3JlcGxhY2UoJy9bLl0vJywgJyAuJywgJGlucHV0KTsKJHdvcmRzID0gcHJlZ19zcGxpdCgnLyAvJywgJGlucHV0LCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKTsKCmZvcmVhY2ggKCR3b3JkcyBhcyAka2V5ID0+ICR3b3JkKSB7CiAgICAvL9Cf0YDQtdGA0YvQstCw0LXQvCDRhtC40LrQuyDQvdCwINC/0L7RgdC70LXQtNC90LXQvCDRgdC70L7QstC1LgogICAgaWYgKCRrZXkgPT0gKGNvdW50KCR3b3JkcykgLSAxKSkgewogICAgICAgIGJyZWFrOwogICAgfQogICAgLy/QldGB0LvQuCDRgtC10LrRg9GJ0LXQtSDRgdC70L7QstC+INC40Lcg0YHQv9C40YHQutCwINGB0YLQvtC/INGB0LvQvtCyINC40LvQuCDRgtC+0YfQutCwIC0g0L/QtdGA0LXRhdC+0LTQuNC8INC6INGB0LvQtdC00YPQtdGJ0LXQvNGDCiAgICBpZiAoKGFycmF5X3NlYXJjaCgkd29yZCwgJHN0b3BXb3JkcykgIT09IGZhbHNlKSB8fCAkd29yZCA9PSAnLicpIHsKICAgICAgICBjb250aW51ZTsKICAgIH0KICAgICRuZXh0S2V5ID0gJGtleSArIDE7CiAgICAvL9CV0YHQu9C4INGB0LvQtdC00YPRjtGJ0LXQtSDRgdC70L7QstC+INC40Lcg0YHRgtC+0L8g0YHQu9C+0LIg0LjQu9C4INGC0L7Rh9C60LAg0L/QtdGA0LXRhdC+0LTQuNC8INC6INGB0LvQtdC00YPQtdGJ0LXQvNGDINGB0LvQvtCy0YMKICAgIGlmICgoYXJyYXlfc2VhcmNoKCR3b3Jkc1skbmV4dEtleV0sICRzdG9wV29yZHMpICE9PSBmYWxzZSkgfHwgJHdvcmRzWyRuZXh0S2V5XSA9PSAnLicpIHsKICAgICAgICBjb250aW51ZTsKICAgIH0KICAgIC8v0JXRgdC70Lgg0LbQtSDRgtC10LrRg9GJ0LXQtSDQuCDRgdC70LXQtNGD0Y7RidC10LUg0YHQu9C+0LLQviDQsiDQv9C+0YDRj9C00LrQtSDRgdC+0YHRgtCw0LLQu9GP0LXQvCDRgdC70L7QstC+0YHQvtGH0LXRgtCw0L3QuNC1INC40LcgMi3RhSDRgdC70L7QsgogICAgJHR3b1dvcmRzW10gPSAkd29yZCAuICcgJyAuICR3b3Jkc1skbmV4dEtleV07Cn0KcHJpbnRfcigkd29yZHMpOwpwcmludF9yKCR0d29Xb3Jkcyk7CgovL9Ch0YfQuNGC0LDQtdC8LCDRg9C00LDQu9GP0LXQvCDQstGB0LUg0YfRgtC+INCx0YvQu9C+INC90LDQudC00LXQvdC+IDEg0YDQsNC3INC4INGB0YLQvtC/INGB0LvQvtCy0LAsINGB0L7RgNGC0LjRgNGD0LXQvAovLyRjb3VudFdvcmRzMSA9IGFycmF5X2RpZmYoJHdvcmRzLCAkc3RvcFdvcmRzKTsKLy8kY291bnRXb3JkczEgPSBhcnJheV9kaWZmKGFycmF5X2NvdW50X3ZhbHVlcygkd29yZHMpLCBhcnJheSgxKSk7Ci8vJGNvdW50V29yZHMyID0gYXJyYXlfZGlmZihhcnJheV9jb3VudF92YWx1ZXMoJHR3b1dvcmRzKSwgYXJyYXkoMSkpOwovLyRjb3VudFdvcmRzMyA9IGFycmF5X2RpZmYoYXJyYXlfY291bnRfdmFsdWVzKCR0aHJlZVdvcmRzKSwgYXJyYXkoMSkpOwoKLy9hcnNvcnQoJGNvdW50V29yZHMxLCBTT1JUX05VTUVSSUMpOwovL2Fyc29ydCgkY291bnRXb3JkczIsIFNPUlRfTlVNRVJJQyk7Ci8vYXJzb3J0KCRjb3VudFdvcmRzMywgU09SVF9OVU1FUklDKTsKCi8vcHJpbnRfcigkY291bnRXb3JkczEpOwovL3ByaW50X3IoJGNvdW50V29yZHMyKTsKLy9wcmludF9yKCRjb3VudFdvcmRzMyk7