Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Выбор 10-ти наиболее часто встречающихся слов в тексте.
да, я видел ссылку, не вчитывался правда.
ну если надо подсчитать корни, то подсчитаем корни, а если надо слова отдельные - подсчитаем их, если надо слова нормализованые - то их, никаких проблем
в ходе вычленения слов уже можем формировать максимальное и минимальное значение повторений для top10[ 5,3 ] ... Ну мой пример из-за размерности может и не не показательный, но когда мы проходимся по массиву, то отсекается все - что меньше 3х... - соответственно в 10ку не попадает, и ни какой сортировки.
но
AnToXa для подсчета нормальзованных слов - нужно aspell
я так понимаю - подсчет максимально-повторяющихся первых 10 слов на странице нужен для оформления ее в поисковом индексе по сайту. по этому морфологию прикрутить интерестно.
хотя в задачи этого не просят.
Автор оригинала: AnToXa
1. preg_split, жесть, N копирований на каждое слово (это я молчу про сложность автомата, который пройдется по этому тексту) т.е. как минимум O(2*K) + O(N), где K - длина текста, N - кол-во слов.
В большинстве случаев preg_split по такому элементарному выражению работает быстрее посимвольного разбора. Сложность одна и та же, но константа меньше - нет накладных расходов на вызов php-функций. Второй шаг - практически такой же, как и предлагаемый. Для нормальной оптимизации тут есть только один вариант - писать модуль на С.
А изменение третьего шага - это да - сортировка там ни к чему, если текст больше некоторого объёма - выбор 10 "максимальных" слов много лучше (ибо сохраняет сложность O(N)).
Думал что уже все реализовал(чисто на работе с массивом после stemmer- ра(только уникальные слова) и исходным массивом(с учетом стоп слов пока нашол только около 2 тыс, но современем добавлю) ), а оказывается все можно еще неплохо оптимизировать. AnToXa +1 Alexandre +1
к стате если юзать stemmer, даже такой примитивный как этот http://forum.dklab.ru/php/advises/HeuristicWithoutTheDictionaryExtractionOfARootFromRussianWord.html
то результат получается где то раза в полтора точнее.
ну дык я о том, что к сортировке никакого отношения не имеет, мы сначала ведь _фильтруем_ слова меньше трех букв просто потому что они нам нафик не нужны
В большинстве случаев preg_split по такому элементарному выражению работает быстрее посимвольного разбора. Сложность одна и та же, но константа меньше - нет накладных расходов на вызов php-функций.
а как без regexp- па убить & nbsp ; & mdash ; и прочие & ... ; + знаки: , ; . ? (мне пока казалось достаточно логичным использование "regexp - автомата")