Автор Тема: Алгоритм, подсчота количества повторений слов в тексте  (Прочитано 4852 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн biblos

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://biblos.com.ua/
Подскажыте пожалуйста, алгоритм анализа текста, который  генирирует ключевые слова релевантные тексту.

Наиболее простое решение - подсчитать сколько раз повторяется каждое слово и принять за ключевые N наиболее популярных.

А есть другие идеи или готовие решение?
............................................................
 Facilitating your online ambitions....  http://biblos.com.ua/

Оффлайн Daiz13

  • наблюдатель
  • Постоялец
  • ***
  • Сообщений: 150
  • +0/-0
  • 2
    • Просмотр профиля
    • http://rg.com.ua/
Такой примерчик:
в формочку вставляем текст, и получаем отсортированый масив


<?php

function is_relevant($var) {
if ( (!empty(
$var) && (strlen($var)>4) )  )  return 1;
 else return 
0;
 }

function 
lowercase_cyr($source_text)
{
 return 
strtr($source_text,\'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯЇІЄ\',\'абвгдеёжзийклмнопрстуфхцчшщьыъэюяїіє\');
}

if (!empty($target)) {
$dest="http://127.0.0.1/".$target;
$fp = @fopen ($dest, \'r\');
if ($fp) {
   while (! feof ($fp))  {$content .= fgets ($fp, 4096);}
   fclose($fp);
}

$words=preg_split("\'\\s+\'i"," {$content} ");
sort($words);
$relevant=array();
$rel=array();
for ($i=1;$i<count($words); $i++) {
      if (is_relevant($words[$i])) {
      $word=$words[$i];
      $word=strtr($words[$i],"“”«».!«,?","        ");
      $word = eregi_replace ("[[:digit:][:punct:][:space:][:alpha:]]","",$word);
      $word=substr($word, 0,-1);
      $word=lowercase_cyr($word);
      if (is_relevant($word))   $rel[] =$word;
      }
}

$relevant = array_count_values($rel);
arsort($relevant);
}
echo "<form action=\\"$PHP_SELF\\"><input type=text name=target value=\\"$target\\"><input type=submit value=\\">>>\\"></form>
";
echo "
<hr><pre>\\n";
print_r($relevant);
echo "\\n</pre><hr>
\\n";

?>

Оффлайн Daiz13

  • наблюдатель
  • Постоялец
  • ***
  • Сообщений: 150
  • +0/-0
  • 2
    • Просмотр профиля
    • http://rg.com.ua/
ой забыл, там не текст а урл писать надо...

Оффлайн biblos

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://biblos.com.ua/
A вот например tak:


$text = \'Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by order.
After the first match is found, the subsequent searches are continued on from end of the last match.
order can be one of two things:\';

$search_words = array (\'match\', \'search\', \'order\', \'the\');
$result = array();

foreach ($search_words as $word)
{
   preg_match_all (\'/(?im)\'.$word.\'/\', $text, $matches);
   $result[$word] = sizeof ($matches[0]);
}

echo \'
\'; 
print_r ($result);
echo \'
\';
............................................................
 Facilitating your online ambitions....  http://biblos.com.ua/

  • Гость
Закон Зипфа.

За ключевые надо принимать не самые часто встречающиеся слова, а те, которые в середине списка. Иначе там одни предлоги и союзы окажутся.

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
это надо на Янедекс (его разработчиков) нападать с такими вопросами. ;)
кстати, в Mnogosearch уже, имхо, созданы все алгоритмы.
Зачем переизобретать велосипед?
с уважением,
магистр белой магии.

Оффлайн biblos

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://biblos.com.ua/
Быть может Вы немного не поняли меня, я имел ввиду генерацию ключевых слов, релевантных контексту данной страницы .
............................................................
 Facilitating your online ambitions....  http://biblos.com.ua/

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А готовая поисковая система mnogosearch не подходит?
с уважением,
магистр белой магии.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28