Поддержка Проблемы и решения Создание ключевых слов из контента

  • В общем понадобилось сделать небольшую функцию создания ключевых слов из содержимого записи/страницы.
    Получилось следующее:

    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);}
    }

    По этому линку разжёванный алгоритм.
    Собственно сам вопрос: может уже кто-то что-то подобное мудрил и есть идеи по улучшению/модернизации функции?

  • Тема «Создание ключевых слов из контента» закрыта для новых ответов.