Как разбить на ключевые слова текст?

seosniks
На сайте с 13.08.2007
Offline
389
1806

Добрый день. Возникла необходимость в том что нужно разбить текст на слова,при этом удалить весь мусор из текста .

Оставить только русские слова длиной больше 3 букв.

Пример такой

 

$textmax='Кроме того, индустриальное общество уровняло в правах и обязанностях мужчин и женщин.<br /> Мужчины и женщины могут до хрипоты обсуждать, кто из них должен воспитывать детей,&nbsp;&nbsp;заниматься стиркой и выносить мусорное ведро, но&nbsp;так и не&nbsp;смогут определиться.<br /> Потому что, одинаково вымотанным на работе&nbsp;мужчине и женщине одинаково противно заниматься какими-то дополнительными обязанностями по дому.<br />&nbsp; Мужчины и женщины могут&nbsp;бесконечно спорить, кто из них - главный в семье, но так и не придут к единому мнению, потому что нет и не может быть главных среди людей, которые видят друг друга&nbsp;всего лишь 3 часа в сутки.<br />&nbsp;';

$words = preg_split("/([0-9]|[^[:alnum:]|['-])+/s", $textmax);
$words = array_map("strtolower", $words);
for($i=0;$i<18;$i++){
if(strlen($words[$i])>4){ echo $words[$i]." "; }}

локально работает в сети не то отдает совсем.

Как сделать чтоб из текста бралось 10 слов

и ложились в переменную?

Swhile
На сайте с 02.05.2007
Offline
58
#1

Приветствую!

seosniks:

Как сделать чтоб из текста бралось 10 слов
и ложились в переменную?

 

$textmax='Кроме того, индустриальное общество уровняло в правах и обязанностях мужчин и женщин.<br /> Мужчины и женщины могут до хрипоты обсуждать, кто из них должен воспитывать детей,&nbsp;&nbsp;заниматься стиркой и выносить мусорное ведро, но&nbsp;так и не&nbsp;смогут определиться.<br /> Потому что, одинаково вымотанным на работе&nbsp;мужчине и женщине одинаково противно заниматься какими-то дополнительными обязанностями по дому.<br />&nbsp; Мужчины и женщины могут&nbsp;бесконечно спорить, кто из них - главный в семье, но так и не придут к единому мнению, потому что нет и не может быть главных среди людей, которые видят друг друга&nbsp;всего лишь 3 часа в сутки.<br />';

//Разбиваем на слова
$keywords = preg_split("/[\s,\.]+/", strip_tags($textmax));

//Вырезаем первые десять
$keywords = array_splice($keywords, 0, 10);

На выходе массив $keywords из десяти элементов. Будут вопросы - отвечу в icq.

T
На сайте с 13.01.2009
Offline
50
#2

Swhile, ну так и сразу бы в строку их $string = implode(' ', $keywords);

seosniks
На сайте с 13.08.2007
Offline
389
#3
Swhile:
Приветствую!



 

$textmax='Кроме того, индустриальное общество уровняло в правах и обязанностях мужчин и женщин.<br /> Мужчины и женщины могут до хрипоты обсуждать, кто из них должен воспитывать детей,&nbsp;&nbsp;заниматься стиркой и выносить мусорное ведро, но&nbsp;так и не&nbsp;смогут определиться.<br /> Потому что, одинаково вымотанным на работе&nbsp;мужчине и женщине одинаково противно заниматься какими-то дополнительными обязанностями по дому.<br />&nbsp; Мужчины и женщины могут&nbsp;бесконечно спорить, кто из них - главный в семье, но так и не придут к единому мнению, потому что нет и не может быть главных среди людей, которые видят друг друга&nbsp;всего лишь 3 часа в сутки.<br />';

//Разбиваем на слова
$keywords = preg_split("/[\s,\.]+/", strip_tags($textmax));

//Вырезаем первые десять
$keywords = array_splice($keywords, 0, 10);


На выходе массив $keywords из десяти элементов. Будут вопросы - отвечу в icq.

Вы упустили условие Оставить только русские слова длиной больше 3 букв.

business-net
На сайте с 02.08.2007
Offline
64
#4

ну и еще наверное на стоп слова нужно фильтрануть, если вам нужны именно ключевые слова

Генератор проектов (http://gallsub.com). Мои скрипты (http://business-net.ru/script.html). Мой блог (http://business-net.ru). Мои услуги (http://business-net.ru/service.html)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий