Создание ключевых слов из контента
-
В общем понадобилось сделать небольшую функцию создания ключевых слов из содержимого записи/страницы.
Получилось следующее:function keywords($print=true,$length=20) { global $post;$text=wp_get_single_post($post->ID)->post_content;$text=strip_tags($text);//Получаем контент поста/страницы и очищаем его от html/php тэгов. //Список слов исключений: $exception=<<<EOF Pdf DOC oDt для ООО ИлИ это EOF; preg_match_all('/([a-zA-Zа-яА-Я-]{3,})/u',$text,$text);//Разбираем и показываем иcходную строку как массив из слов, содержащих не менее 3-х символов. for ($i=0; $i<count($text[0]); $i++) {$str[]=mb_strtolower($text[0][$i],"UTF-8");}//Переводим найденные слова в нижний регистр. preg_match_all('/([a-zA-Zа-яА-Я-]+)/u',$exception,$exception);//Разбираем и показываем строку исключений как массив из слов. for ($i=0; $i<count($exception[0]); $i++) {$except[]=mb_strtolower($exception[0][$i],"UTF-8");}//Переводим слова исключения в нижний регистр. $str=array_diff($str,$except);//Удаляем исключения. $str=array_count_values($str); arsort($str);//Сортируем по убыванию наиболее повторяющиеся слова. $str=array_slice($str,0,$length);//Оставляем первые $length слов. $str=array_keys($str);//Подготавливаем массив для преобразования в строку. if ($print) {echo implode(" ",$str)."\n";} else {return implode(" ",$str);} }
По этому линку разжёванный алгоритм.
Собственно сам вопрос: может уже кто-то что-то подобное мудрил и есть идеи по улучшению/модернизации функции?
- Тема «Создание ключевых слов из контента» закрыта для новых ответов.