За последние 24 часа нас посетили 59778 программистов и 1772 робота. Сейчас ищут 864 программиста ...

Определение ключевых слов

Тема в разделе "Прочие вопросы по PHP", создана пользователем user999, 13 дек 2006.

  1. user999

    user999 Активный пользователь

    С нами с:
    17 ноя 2006
    Сообщения:
    57
    Симпатии:
    0
    Решаю задачку: определить ключевые слова во множестве доковских файлов.

    Расбил задачу на пункты:
    преобразовал файлы в хтмл
    удалил знаки препинания и слова менее 3-х букв (остались только нужные слова)

    Не получается из этого массива (или строки)
    1. посчитать повторения каждого слова
    2. отсортировать эти слова по количеству повторений
    3. выбрать первые 10 слов с наибольшими повторениями.

    Смотрел некоторые поисковые скрипты, там реализовано так
    есть массив или файл или строка (впрочем как у меня)
    есть переменная с поисковым словом или словами
    эту переменную сравнивают на совпадения с файлом в п.1

    В моем же случае этой переменной нет.
    Как можно реализовать вышеуказанные 3 пункта?
     
  2. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Разбиваешь с помощью preg_split
    Потом используешь array_unique
    Проходишь по каждому элементу полученного массива и находишь число входжений каждого элемента оригинального массива (тут наверно надо array_walk использовать)
    Затем используешь sort и усе.
     
  3. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
  4. draak

    draak Guest

    когда много массивов легче работать с БД, создай временную таблицу занеси в неё все слова и запросами делай что хочешь.
     
  5. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Вариант avm самый оптимальный
     
  6. user999

    user999 Активный пользователь

    С нами с:
    17 ноя 2006
    Сообщения:
    57
    Симпатии:
    0
    Спасибо за совет.
    Но как мне сделать сроку с этими словами.
    Я дописал $keywords=implode (", ", $result);
    Выводятся чсла через запятую, а мне нужно слова.
     
  7. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    $keywords=implode (", ", array_keys($result) );
     
  8. user999

    user999 Активный пользователь

    С нами с:
    17 ноя 2006
    Сообщения:
    57
    Симпатии:
    0
    Спасибо, все получилось.