Выбор самых частых слов

Разработка своих веб-приложений и страничек

Выбор самых частых слов

Сообщение Zver » 08 дек 2009, 19:59

Нужна функция на пхп, которая будет выбирать из заданого текста самые часто встретающиеся слова, и выводить имено их. У меня даже нет предположений как это сделать :(
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Выбор самых частых слов

Сообщение Conteo » 08 дек 2009, 20:30

Слово "сортировка" о чем-нибудь говорит? Можно взять алгоритм быстрой сортировки из языка Си, только там рекурсия... В принципе алгоритмов сортировки много. Погугли.
Изображение
Пользователи федоры - как тараканы. Слабые духом и нервами давно вымерли, а оставшихся в живых уже ничем не взять.
Аватара пользователя
Conteo
Активный участник
 
Сообщения: 1813
Зарегистрирован: 14 мар 2008, 13:21
Откуда: Саратов, Заводской район
Домен: http://conteo.vfose.ru

Re: Выбор самых частых слов

Сообщение Alexsandrit » 08 дек 2009, 20:34

берём текст, разбиваем его по пробелам между слов, предваврительно вырезав знаки припенания. Всё это дело в массив, потом лучшее отсортировать, не сохраняя ключи а потом, создать ещё массивчик в который будем записывать слово и количесвто встреч и в этот массив перебором ключей будем плюсовать количество повторяющихся слов
Изображение
:roll:
Alexsandrit
Активный участник
 
Сообщения: 256
Зарегистрирован: 29 сен 2007, 16:47
Домен: http://proekts.vfose.ru/

Re: Выбор самых частых слов

Сообщение Zver » 08 дек 2009, 22:06

Так, ладно, с массивом разобрался.
Что мне теперь с ним делать, чтобы отсортировать значения по частоте использования?...
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Выбор самых частых слов

Сообщение Костик » 08 дек 2009, 23:17

забавную идейку задумал ))

только памяти пхп жрать будет прилично с массивами :pardon:
FreeBSD 9.2 and Fedora 18 user
Аватара пользователя
Костик
Активный участник
 
Сообщения: 1944
Зарегистрирован: 03 сен 2007, 02:15

Re: Выбор самых частых слов

Сообщение Alexsandrit » 08 дек 2009, 23:21

Код: Выделить всёРазвернуть
<?php
function TagsGen($text, $max_results){
   $words = explode(' ', $text);      
   $trs = array(
             'А' => 'а',
             'Б' => 'б',
             'В' => 'в',
             'Г' => 'г',
             'Д' => 'д',
             'Е' => 'ё',
             'Ж' => 'ж',
             'З' => 'з',
             'И' => 'и',
             'Й' => 'й',
             'К' => 'к',
             'Л' => 'л',
             'М' => 'м',
             'Н' => 'н',
             'О' => 'о',
             'П' => 'п',
             'Р' => 'р',
             'С' => 'с',
             'Т' => 'т',
             'У' => 'у',
             'Ф' => 'ф',
             'Х' => 'х',
             'Ц' => 'ц',
             'Ч' => 'ч',
             'Ш' => 'ш',
             'Щ' => 'щ',
             'Ъ' => 'ъ',
             'Ы' => 'ы',
             'Ь' => 'ь',
             'Э' => 'э',
             'Ю' => 'ю',
             'Я' => 'я',
   );
   
   sort($words);

   

   $words = str_replace(',', '', $words);
   $words = str_replace('.', '', $words);
   $words = str_replace(array_keys($trs), array_values($trs), $words);
   $max=count($words);



$l=0;$i=0;
while($i<$max){@$ARRAY2[$words[$i]]=$ARRAY2[$words[$i]]+1;$i++;}


arsort($ARRAY2);
$ARRAY2=array_keys($ARRAY2);
for($i=0; $i<$max_results;$i++){
@$te.=$ARRAY2[$i].' ';
}
return $te;
}
$text = "Это тест тест тест тестовый тест тест тест, это функция должна подбирать часто встречающиеся слова и выводить их... Да, да, я сам в шоке...";   

echo TagsGen($text, 5);
?>
Изображение
:roll:
Alexsandrit
Активный участник
 
Сообщения: 256
Зарегистрирован: 29 сен 2007, 16:47
Домен: http://proekts.vfose.ru/

Re: Выбор самых частых слов

Сообщение Zver » 09 дек 2009, 15:10

Alexsandrit, огромное спасибо :)
Вот только как мне теперь добавить к каждому слову ссылку?
Я не дружу с preg_replace(), как не старался, не выходит :(
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Выбор самых частых слов

Сообщение Alexsandrit » 09 дек 2009, 17:44

@$te.='<a href="#">'.$ARRAY2[$i].'</a> ';
Изображение
:roll:
Alexsandrit
Активный участник
 
Сообщения: 256
Зарегистрирован: 29 сен 2007, 16:47
Домен: http://proekts.vfose.ru/


Вернуться в PHP, HTML, CSS...

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron