[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кейворды из текста
Wincert
Куча сервисов развелось которые определяют плотность слов и генерируют keywords из текста. А вот скрипта нормального не могу найти, который это делает.
Поделитесь если у кого есть rolleyes.gif



Спустя 1 час, 22 минуты, 21 секунда (3.04.2010 - 22:23) netruxa написал(а):
ну вообще мона самому за 10 минут такое написать
из текста А А Б Б А Б А
подсчитать сколько раз встречается А и сколько раз Б
ченить типо
$text='А А Б Б А Б А';
$a=explode(' ',$text);
for ($i=0;$i<count($a);$i++) $b[$a[$i]]++;
print_r($b);

должен вывести A =>4 Б=>3
начало есть. Далее надо будет смотреть начало слов и если разница только в окончании, то это один ключевик
както так

Спустя 1 час, 34 секунды (3.04.2010 - 23:24) Wincert написал(а):
Ну в принципе согласен, но толи лень, толи боюсь долго буду догонять все тонкости. Поэтому подумал может есть у кого такой скрипт, лень самому писать.

Спустя 12 минут, 14 секунд (3.04.2010 - 23:36) FatCat написал(а):
Цитата (Wincert @ 3.04.2010 - 22:01)
скрипта нормального не могу найти

Его и нет нормального. Потому как кеи - это не любые сочетания слов, а те, которые известны поисковкам как поисковые запросы. Например http://wordstat.yandex.ru/
Чтобы скрипт нормально работал с текстом, он должен работать и с базой вордстата.

Сейчас как раз делаю такой сервис. Если поучаствуешь в тестировании и будешь давать списки тем, по которым скрипт не умеет определять - я быстро буду пополнять базу.

Сам сервис для тестирования поднят здесь: http://coda.su/index.php
В правой колонке размеченный текст. В левой колонке сначала список кеев проверяемого текста, они без разметки, затем список "неполных кеев" с подсветкой слов, которые следует добавить в текст.

Но главное в сервисе - это не дёргалка кеев, а определение индекса тематичности. Чем выше индекс тематичности - тем легче страница будет продвигаться в поисковках.

Спустя 11 часов, 47 минут, 2 секунды (4.04.2010 - 11:23) Wincert написал(а):
FatCat
Честно говоря не понял смысла в этом сервисе.
Частота слов в тексте для продвижения например для гугла и для яндекса будут разные, частоту которую один не приемлет, другой с легкостью помещает тебя на на первые позиции. И даже если взять один яндекс, то для разных кейвордов в зависимости от конкуренции она может быть разная, + надо учитывать конкурентов и объем текста. Да и все меняется быстро, яндекс усердно корректирует свои алгоритмы. Поэтому объективность такого сервиса лично для меня под большим сомнением.
Спасибо за предложение, но участвовать я не буду.

Мне нужна простая дергалка кеев из текста, вот эта - http://pr-cy.ru/analysis_content мне очень нравится, определяет вес слов.

Спустя 23 минуты, 4 секунды (4.04.2010 - 11:46) FatCat написал(а):
Цитата (Wincert @ 4.04.2010 - 12:23)
вот эта - http://pr-cy.ru/analysis_content мне очень нравится

Да, конечно, в качестве дёргалки ключевиков она безусловно лучше: работает без ограничения размера анализируемых страниц, выдергивает именно так, как они прописаны в вордстате. Для машинных рерайтов самое оно.
На коде несколько иной сервис: работает с учетом словоформ русского языка и в первую очередь определяет тематику текста.


Цитата (Wincert @ 4.04.2010 - 12:23)
Да и все меняется быстро

Я не занимаюсь эфемерами (бабочками-однодневками), средний возраст моих доменов больше 5 лет. В том числе, был домен, на котором после выкладывания контента восемь лет ничего не делалось: он стабильно держал естественный тИЦ 100-150 и посещаемость 500-1000 уников в сутки всего на 14 страницах.

Спустя 11 минут, 34 секунды (4.04.2010 - 11:58) Wincert написал(а):
Цитата
Да, конечно, в качестве дёргалки ключевиков она безусловно лучше

Вот именно это мне и нужно, и мне пофиг на вордстат. Мне для движка надо мета тег кейвордс генерировать.

Цитата
средний возраст моих доменов больше 5 лет

Это хорошо, желаю тебе успехов.

Спустя 12 минут, 37 секунд (4.04.2010 - 12:11) FatCat написал(а):
Цитата (Wincert @ 4.04.2010 - 12:58)
Мне для движка надо мета тег кейвордс генерировать

Семантическое ядро я привык вручную собирать.
А про автогенерацию идея хорошая, одобряю: http://forums.ibresource.ru/index.php?showtopic=54346 smile.gif

Спустя 8 часов, 39 минут, 29 секунд (4.04.2010 - 20:50) ИНСИ написал(а):
вот мой:

function createKeywords($text) {
global $metatags;

$keyword_count = 20;
$newarr = array ();

$quotes = array( "\x27", "\x22", "\x60", "\t","\n","\r","'",",",".","/","¬","#",";",":","@","~","[","]","{","}","=","-","+",")","(","*","&","^","%","$","<",">","?","!", '"' );
$fastquotes = array( "\x27", "\x22", "\x60", "\t","\n","\r",'"',"'", "\\", '\r', '\n', "/","{","}","[","]");

$text = str_replace($fastquotes, '', trim(strip_tags(str_replace('<br />', ' ', stripslashes($text)))));
$metatags['description'] = substr($text, 0, 190);

$text = str_replace($quotes, '', $text);
$arr = explode(' ', $text);

foreach($arr as $word) {
if (strlen($word) > 4) $newarr [] = $word;
}

$arr = array_count_values ($newarr);
arsort ($arr);

$arr = array_keys($arr);
$total = sizeof($arr);

$arr = array_slice($arr, $offset, $keyword_count);
$metatags['keywords'] = implode (', ', $arr);
}

Спустя 2 часа, 25 минут, 27 секунд (4.04.2010 - 23:16) FatCat написал(а):
Цитата (welbox2 @ 4.04.2010 - 21:50)
вот мой

Шлак
Ша ыефке шы тщт-тупфешмуб еру куегктув ыекштп цшдд ыефке фе еру ыефкеэер зщышешщт шт ыекштпб сщгтештп акщь яукщю Ащк штыефтсуб шт еру ыекштп эфисвуаэб еру срфкфсеук фе зщышешщт 0 шы эфэб еру срфкфсеук фе зщышешщт 2 шы эсэб фтв ыщ ащкерю

Ша ыефке шы тупфешмуб еру куегктув ыекштп цшдд ыефке фе еру ыефкеэер срфкфсеук акщь еру утв ща ыекштпю

Ша ыекштп шы дуыы ерфт щк уйгфд ещ ыефке срфкфсеукы дщтпб АФДЫУ цшдд иу куегктувю

И какие кейворды он вытянет из шлака? wink.gif

http://pr-cy.ru/analysis_content?url=http:...loads/shlak.txt - тоже тупо нарезал шлак, не поняв, что нет там слов, ни одного слова там нет...

http://coda.su/index.php?url=http://phpfor...loads/shlak.txt - нули. Ибо нет в этом шлаке ни одного слова, известного яндексу.


Спустя 12 часов, 55 минут, 52 секунды (5.04.2010 - 12:11) ИНСИ написал(а):
FatCat сделать интеллектуальный скрипт, мне кажется невозможно. Это мне кажется лучше, чем ничего. Можно встроить в сайт.

Кстати, я его выдрал с Dle-News smile.gif

Спустя 5 дней, 7 часов, 23 минуты, 13 секунд (10.04.2010 - 19:35) Wincert написал(а):
Спасибо всем кто остался неравнодушен. Нарыл я где-то вот такой вот скрипт, который в принципе меня устроил, я его немного переделал под себя:
function keywords($_text)
{
$word_length_min=4;// минимальное слово
$crc = substr(abs(crc32($_text)), 0, 1);
$words_counter=4;// количество ключевых слов
if ($crc < 4) {
$words_counter = 3;
} elseif ($crc > 6) {
$words_counter = 5;
}
$meta=true;// true - возвращает готовый мета тег, иначе будет массив
$search=array ("'ё'",
"'<script[^>]*?>.*?</script>'si", // Вырезается javascript
"'<[\/\!]*?[^<>]*?>'si", // Вырезаются html-тэги
"'([\r\n])[\s]+'", // Вырезается пустое пространство
// Замещаются html-элементы

"'"'i", "'&'i","'<'i","'>'i","' 'i","'&iexcl;'i","'&cent;'i","'&pound;'i","'©'i","'&#(\d+);'e");
$replace=array('е',' ',' ',"\\1 ",'" ',' ',' ',' ',' ',chr(161),chr(162),chr(163),chr(169),"chr(\\1)");
$text=preg_replace($search,$replace,$_text);// избавляемся в тексте от всякой html фигни
// по каким то причинам жопы в preg_match_all приходится извращаться с кодировкой
//print_r(search_file_kod($text));

preg_match_all("#([a-zA-Zа-яА-Я0-9_]+)#si",strtolower($text),$words_all);// отбираем из текст слова (из кодирвоки cp1251)
// массив стоп слов, которые включать по любасу не нужно

$words_stop=array('','будут','этого','иначе','теперь','были','свое','такие','реже','своего','смогут','этим','многие','вещь','заключается','между','прибегают','доставить','используют','следовательно','определяет','который','свои','таким','образом','такая','такой','место','слишком','больше','сегодня','несколько','тебе','этот','которого','будит','него','открыть','новой','новом','почему','потому','чтобы','раза','которая','являются','которые','будь','требует','одном','часто','стал','наши','должно','этом','сколько','каким','только','требуется','знает','является','однако','могут','течение','некоторые','должны','вашего','будете','сделать','просто','себя','примерно','говорю','никогда','раньше','выбрал','столь','передо','мной','начать','любых','наиболее','помочь','сейчас','каждый','одной','делать','около','среди','основном','каждых','считают','была','ходе','наших','выше','говорит','поскольку','число','стали','протяжении','знают','ваши','можете','сделал','лучшей','быть','взять','собой','года','образной','основе','никак','имеет','самым','может','написать','очень','можно','могла','свой','будет','было','более','могли','получилась','легко','нельзя','после','себе','много','как','для','что','или','это','этих','всех','вас','они','оно','еще','когда','где','эта','лишь','уже','вам','нет','если','надо','все','так','его','чем','при','даже','мне','есть','раз','два','аля','нас','тем','через','многие','многое','также','обладают','того','существуют','детей','таких','кроме');
$kk=array(); $cc=array(); $ii=0;// временные переменные
$words_count=sizeof($words_all[0]);// узнаем общее количество слов в тексте
for($it=0;$it<$words_count;$it++)// пройтись по всем словам
{ $val_win=strtolower($words_all[0][$it]);// преобразуем все к маленькому регистру, ибо поисковички все равно регистры не отличают
$len=strlen($val_win);// определяем длину слова
if ($len<$word_length_min) { continue; }// если слово меньше минимума, то не включаем в список подсчета
$val_utf=$val_win;// конвертируемся обратно в utf
if (array_search($val_utf,$words_stop)) { continue; }// если слово является стоп словом, то не включаем в нужный список
$id=array_search($val_utf,$kk);// проверка на наличие слова уже в списке
if ($id>0)// если в списке уже есть, то
{ $cc[$id]++;// увеличиваем количество
}
else// если нет в списке
{ $kk[$ii]=$val_utf;// записываем слово
$cc[$ii]=1;// кол-во в тексте
$ii++;
}
}

$c=sizeof($kk); for($it=0;$it<$c;$it++) { $ww[$kk[$it]]=$cc[$it]; }// преобразуем весь результат к единому массиву
arsort($ww);// сортируем массив по кол-ву слов
$keywords=array();
$it=0;
foreach ($ww as $val=>$key)
{ if ($it>=$words_counter) { break; }
$keywords[$it]=$val;
$it++;
}
if ($meta)
{ $c=sizeof($keywords);
$r='';
for($it=0;$it<$c;$it++)
{ if (($it+1)==$c) { $r.=$keywords[$it]; } else { $r.=$keywords[$it].','; }
}

$r.='';
}
else
{ $r=$keywords;
}
return $r;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.