Выявить слова регуляркой, наиболее часто встречающиеся в тексте

Sergey905901

Новичок
Регистрация
26.01.2015
Сообщения
8
Реакции
0
Баллы
1
Здравствуйте, нужно создать такую регулярку, определяющую, какие слова встречаются в тексте наиболее часто.

Возможно это силами Зенно?

Сразу скажу для чего - хочу попробовать создать проверку на тошноту текста в генераторе контента. Буду очень признателен тому кто сможет подсказать.
 
берёте первое слово - парсите текст ним, получаете количество совпадений, потом следующее и т.д.
 
То есть :
1. Сначала все слова в тексте прочекать на общее их количество.
2. Потом загнать слова в список, и по очереди получить количество точных совпадений? Кстати вопрос - как сделать так, чтобы ТОЛЬКО точные совпадения получать, а не И однокоренные слова? То есть пример ищем слово "дом" - он нам занесет в список и слова "дома", "домов", "домах" и т.д. Как парсить только точные слова?
3. Далее путем деления общего количества слов на получившиеся переменные по каждому слову получить ТОП-5 слов, преобладающих по встречаемости в тексте? Или иной путь - просто получив более 10 совпадений - сразу загнать это слово в ТОП-5. Но это наверное немного неправильный подход, т.к. тошнота текста зависит от объема текста, для одного 10 совпадений - норм - для другого явный переспам.
4. И сразу вопрос - как удалить из текста ИМЕННО точные вхождения слов ТОП-5? А не все попавшиеся с ними однокренные слова?
5. И еще 1 вопрос - как удалить слова из ТОП-5 до предела в 5% от общего количества текста?
 
\b\w+\b регулярка выборки всех слов. Могут быть и цифры, так что \w можно заменить на [a-z] и т.д.
регуляркой этой собираем все слова в список. Сортируем. Повторяющиеся слова будут выстроены друг за другом типа
Арбуз
Арбуз
Баран
Баран
Баран
и т.д.
И тут можно просто пробежатся по списку и посчитать повторяющие слова. Этот метод удобнее, если нужно найти одно наиболее часто повторяющееся слово.
Если нужно прочекать все, то список лучше не сортировать а удалить дубли. А потом по списку искать их в тексте регуляркой \b{наше_слово}\b и получать количество
 
То есть :
1. Сначала все слова в тексте прочекать на общее их количество.
2. Потом загнать слова в список, и по очереди получить количество точных совпадений? Кстати вопрос - как сделать так, чтобы ТОЛЬКО точные совпадения получать, а не И однокоренные слова? То есть пример ищем слово "дом" - он нам занесет в список и слова "дома", "домов", "домах" и т.д. Как парсить только точные слова?
3. Далее путем деления общего количества слов на получившиеся переменные по каждому слову получить ТОП-5 слов, преобладающих по встречаемости в тексте? Или иной путь - просто получив более 10 совпадений - сразу загнать это слово в ТОП-5. Но это наверное немного неправильный подход, т.к. тошнота текста зависит от объема текста, для одного 10 совпадений - норм - для другого явный переспам.
4. И сразу вопрос - как удалить из текста ИМЕННО точные вхождения слов ТОП-5? А не все попавшиеся с ними однокренные слова?
5. И еще 1 вопрос - как удалить слова из ТОП-5 до предела в 5% от общего количества текста?

Тут уже сильно много вопросов. Вы просите выстроить Вам всю логику работы шаблона, а не подсказать, как это делается.
 
есть снипет на форуме который милионы повторяющих строк сравнитвает. если я правильно понял что надо
 
Спасибо большое всем ответившим. А что за сниппет, ssXXXss ? Не можешь дать ссылку?
 
для начала есть такое
2016-04-27_223103.png


а ещё поиск
 
  • Оценить
Реакции: Sunrider

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)