Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выбрать из текста 10 найболее повторяющихся слов
 
 автор: 1prom   (12.10.2010 в 21:45)   письмо автору
 
 

Здравствуйте!

Как из текста $txt выбрать 10 найболее повторяющихся слов при том, что бы эти слова были больше 3 симв.

Примечание: переменная $txt может весить до 3 Мб

Заранее спасибо!

  Ответить  
 
 автор: mihdan   (13.10.2010 в 01:54)   письмо автору
 
   для: 1prom   (12.10.2010 в 21:45)
 

Разбить строку на слова, отсеять дубликаты, отсеять короткие слова, отсортировать массив слов, выбрать наиболее подходящее.

В этом вам помогут функции работы с массивами.

  Ответить  
 
 автор: Valick   (13.10.2010 в 02:34)   письмо автору
 
   для: mihdan   (13.10.2010 в 01:54)
 

отсеять дубликаты
может все-таки посчитать дубликаты?

  Ответить  
 
 автор: sim5   (13.10.2010 в 04:14)   письмо автору
 
   для: mihdan   (13.10.2010 в 01:54)
 

Сразу узнать сколько каждого слова в массиве. Правда исходник нехилый.

  Ответить  
 
 автор: mihdan   (13.10.2010 в 14:54)   письмо автору
 
   для: sim5   (13.10.2010 в 04:14)
 

А если файл будет метров под сто или гигабайт?

  Ответить  
 
 автор: sim5   (13.10.2010 в 14:58)   письмо автору
 
   для: mihdan   (13.10.2010 в 14:54)
 

Это только с дури такие текстовые файлы создать можно.

  Ответить  
 
 автор: Trianon   (13.10.2010 в 15:21)   письмо автору
 
   для: sim5   (13.10.2010 в 14:58)
 

комментарий хорошо подходит к самому первому сообщению в теме.

  Ответить  
 
 автор: sim5   (13.10.2010 в 15:25)   письмо автору
 
   для: Trianon   (13.10.2010 в 15:21)
 

:))

  Ответить  
 
 автор: Valick   (13.10.2010 в 19:02)   письмо автору
 
   для: mihdan   (13.10.2010 в 14:54)
 

тем более Ваш совет смертоубийство...
создавать массив (а это ни что иное как оперативная память) для того чтобы использовать функции работы с массивами...
п.с. теперь становиться яснее по какой причине Ваш личный сайт выстегивает комп напрочь, заставляет искать зубочистку и тыкать в ребут.

  Ответить  
 
 автор: mihdan   (15.10.2010 в 10:50)   письмо автору
 
   для: Valick   (13.10.2010 в 19:02)
 

Вы о чем? Сайт на Wordpress крутиться. ОС у вас какая и браузер? Вы - первый, кто говорит, что сайт "выстегивает комп напрочь".

Ваш вариант решения поставленной задачи?

  Ответить  
 
 автор: Valick   (13.10.2010 в 19:07)   письмо автору
 
   для: 1prom   (12.10.2010 в 21:45)
 

Как из текста $txt выбрать 10 найболее повторяющихся слов при том, что бы эти слова были больше 3 симв
использовать базу данных всегда когда в условии поставленной задачи есть слово выбрать

  Ответить  
 
 автор: 1prom   (13.10.2010 в 19:36)   письмо автору
 
   для: Valick   (13.10.2010 в 19:07)
 

Я скажу для чего мне все это нужно:
На сайте есть страницы, что постоянно пополняются текстом в базе данных - нужно делать из этого текста периодически перечень ключевых слов. Размер текста около 10-100 кб, но есть случаи, где размер доходит до нескольких метров...

Конечно текст можно обрезать. Но хотелось бы периодически автоматом ключевые слова для страницы формировать и потом писать их в базу данных.

Как эту задачу можно решить другим путем?

  Ответить  
 
 автор: sim5   (13.10.2010 в 20:10)   письмо автору
 
   для: 1prom   (13.10.2010 в 19:36)
 

Самый простой путь для текста 1251, это использование всего одной функции - str_word_count(). Но гонять файлы размером в десятки МБ.....

  Ответить  
 
 автор: 1prom   (13.10.2010 в 21:00)   письмо автору
 
   для: sim5   (13.10.2010 в 20:10)
 

sim5, Эта функция подсчитывает количество слов, входящих в строку string. Мне же нужно найболее часто повторяющиеся слова...

  Ответить  
 
 автор: Valick   (14.10.2010 в 02:53)   письмо автору
 
   для: 1prom   (13.10.2010 в 21:00)
 

вообще идея бредовая, не обязательно большее количество слов отражает суть
но раз вы поставили перед собой такую задачу, то..
берете свою строку ищите первое попавшееся слово больше 3-х був и записываете его ключом массива со значением 1, ищите второе слово больше з-х букв (хотя иногда самые значимые слова в тексте состоят как раз из трех букв ;) ) если второе слово есть вашем массиве то изменяем значение этого элемента на +1, если нет то дописываем в массив.... и т.д. ро тексту.
потом сортируете массив по значению, берете первые 10-ть и радуетесь мысленно высылая деньги мне на вебмани ;)

  Ответить  
 
 автор: sim5   (14.10.2010 в 05:57)   письмо автору
 
   для: 1prom   (13.10.2010 в 21:00)
 

А наиболее часто повторяющиеся это разве не количество? Да и частоту повторения определяет не длина слова, а его семантика.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования