Анализ словосочетаний на странице.

Тема в разделе "PHP", создана пользователем Stripe, 21 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    Идем сюда:
    http://be1.ru/stat/?url=lenta.ru
    (Лента в качестве анализа была взята случайно).
    Видим внизу заголовок "Словосочетания", а под ним список словосочетаний.
    Есть ли готовое решение как можно проанализировать страницу на предмет словосочетаний? Если нет решения, то куда копать что бы написать свой скрипт для такого анализа?
     
  2. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Готовое навряд ли, а вот копать стоит в сторону phpMorphy и подобных.
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    737
    Симпатии:
    263
    Так а что тут сложного? Бьешь на слова, заводишь массивчик, и потом в цикле инкрементишь элементы массива с ключом "слово|следующее слово", потом сортируешь и вуаля.
    PHP:
    $text "мама мыла раму мама мыла окно мама мыла окно мыла раму";
    $words preg_split('/\s+/',$text);
    $arr = array();
    for(
    $i=0$i<count($words)-1$i++) {
      
    $arr$words[$i] . '|' $words[$i+1] ]++;
    }
    arsort($arr);
    foreach(
    $arr as $key => $count) if ($count 1) {
      list(
    $word1$word2) = explode('|',$key); 
      echo 
    "$word1 $word2 <i>$count</i><br>\n";
    }
    В приведенном примере с be1.ru даже к именительному падежу ничего не приводится, т.е. скрипт именно настолько втупую и работает. Разве что может на слова бьет не по пробелу, а по \b, допустим.
     
  4. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
  5. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    Вытащиить отдельные слова не проблема, проблема определить словосочетания, учитывая падежи, числа и тд.
     
  6. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Алгоритм http://diff.biz.ua/keywords.php вычисляет вес предложений. Кто мешает использовать его для вычисления веса словосочетаний?
    Разбить текст на двухсловные (трех? четырех?) участки и вычислить их вес по аналогии с весом предложений.
    Любой морфологический движок справится.
     
  7. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    Тогда нужны исходники.
     
  8. SergXP

    SergXP Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    66
    Симпатии:
    11
    :ah: буду очень благодарен)

    еще это называют семантическое зеркало :)
     
  9. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Все свои компы обыскал - исходников не нашел. Видимо, удалил по запарке. Извиняюсь.
     
  10. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
Статус темы:
Закрыта.