- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую! Программил, программил и столкнулся с такой задачей.. в некой переменной, назовем ее $text, содержится обычный текст. Как подсчитать количество слов в этом тексте, но не просто подсчитать, а вывести определенное число самых популярных слов в этом тексте. Что-то у меня какая-то ерунда получается, направьте плиз в нужную сторону ;)
как вариант разбить текст на слова, сделать фильтрацию стоп-слов(предлоги и и т.п.), провести подсчет одинаковых слов
asamakin,
Для начала разбить в массив. например по пробелу, например функцией explode.
Затем пройтись по элементам этого массива, удаляя все знаки препинания и стоп-слова.
Затем создать второй массив, в который выделить все уникальные ключи из первого (для этого есть спец. функция, забыл как называется :)). Вид массива сделать следующим [слово] => 0
Удалить первый массив.
Затем пройтись двумя вложенными циклами for по элементам первого и второго массива соответсвенно. И при обнаружении совпадений, значениям второго массива (там где нули) давать +1.
В итоге мы получим результат во втором массиве вида: [слово] => количество.
N_MONax, ваша "деятельность" сразу видна, вы и правда кодер :)
http://ru.php.net/manual/en/function.array-count-values.php
&& explode && array_filter
N_MONax, ваша "деятельность" сразу видна, вы и правда кодер :)
http://ru.php.net/manual/en/function.array-count-values.php
&& explode && array_filter
Извиняюсь, видимо после трудовой недели туго соображаю ;)
$pieces = explode(" ", $t);
$res=array();
foreach($pieces as $val)
$res[$val]++;
print_r($res);
выдало мне следующее:
Array ( [Добро] => 1 [пожаловать] => 1 [на] => 1 [один] => 1 [из] => 1 [старейших] => 1 [каталогов] => 1 [статей.] => 1 [Размещение] => 1 [статей] => 1 [в] => 1 [каталоге] => 1 [-] => 1 [бесплатное.] => 1 )
а как теперь из этого массива выбрать 5 самых популярных слов?
http://www.phpclasses.org/browse/package/5618.html
ewg777, ой какой ужас.
{
foreach ($this->temp_words as $key=>$value)
{
if (strlen ($value) <= $min_strlen)
{
unset ($this->temp_words[$key]);
}
else
{
$value = strtolower ($value);
if (isset ($this->words[$value]))
{
$this->words[$value] = $this->words[$value] + 1;
}
else
{
$this->words[$value] = 1;
}
}
}
$this->temp_words = null;
arsort ($this->words);
}
я щас наверное открою америку для всех собравшихся
http://ru2.php.net/manual/en/function.str-word-count.php
не забудьте только поставить локаль русскую
Всем спасибо! Вроде чегой-то получилось ;))) http://generator.binox.ru/index2.php