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

Sergey905901

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

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

Сразу скажу для чего - хочу попробовать создать проверку на тошноту текста в генераторе контента. Буду очень признателен тому кто сможет подсказать.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
берёте первое слово - парсите текст ним, получаете количество совпадений, потом следующее и т.д.
 

Sergey905901

Новичок
Регистрация
26.01.2015
Сообщения
8
Благодарностей
0
Баллы
1
То есть :
1. Сначала все слова в тексте прочекать на общее их количество.
2. Потом загнать слова в список, и по очереди получить количество точных совпадений? Кстати вопрос - как сделать так, чтобы ТОЛЬКО точные совпадения получать, а не И однокоренные слова? То есть пример ищем слово "дом" - он нам занесет в список и слова "дома", "домов", "домах" и т.д. Как парсить только точные слова?
3. Далее путем деления общего количества слов на получившиеся переменные по каждому слову получить ТОП-5 слов, преобладающих по встречаемости в тексте? Или иной путь - просто получив более 10 совпадений - сразу загнать это слово в ТОП-5. Но это наверное немного неправильный подход, т.к. тошнота текста зависит от объема текста, для одного 10 совпадений - норм - для другого явный переспам.
4. И сразу вопрос - как удалить из текста ИМЕННО точные вхождения слов ТОП-5? А не все попавшиеся с ними однокренные слова?
5. И еще 1 вопрос - как удалить слова из ТОП-5 до предела в 5% от общего количества текста?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
\b\w+\b регулярка выборки всех слов. Могут быть и цифры, так что \w можно заменить на [a-z] и т.д.
регуляркой этой собираем все слова в список. Сортируем. Повторяющиеся слова будут выстроены друг за другом типа
Арбуз
Арбуз
Баран
Баран
Баран
и т.д.
И тут можно просто пробежатся по списку и посчитать повторяющие слова. Этот метод удобнее, если нужно найти одно наиболее часто повторяющееся слово.
Если нужно прочекать все, то список лучше не сортировать а удалить дубли. А потом по списку искать их в тексте регуляркой \b{наше_слово}\b и получать количество
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
То есть :
1. Сначала все слова в тексте прочекать на общее их количество.
2. Потом загнать слова в список, и по очереди получить количество точных совпадений? Кстати вопрос - как сделать так, чтобы ТОЛЬКО точные совпадения получать, а не И однокоренные слова? То есть пример ищем слово "дом" - он нам занесет в список и слова "дома", "домов", "домах" и т.д. Как парсить только точные слова?
3. Далее путем деления общего количества слов на получившиеся переменные по каждому слову получить ТОП-5 слов, преобладающих по встречаемости в тексте? Или иной путь - просто получив более 10 совпадений - сразу загнать это слово в ТОП-5. Но это наверное немного неправильный подход, т.к. тошнота текста зависит от объема текста, для одного 10 совпадений - норм - для другого явный переспам.
4. И сразу вопрос - как удалить из текста ИМЕННО точные вхождения слов ТОП-5? А не все попавшиеся с ними однокренные слова?
5. И еще 1 вопрос - как удалить слова из ТОП-5 до предела в 5% от общего количества текста?
Тут уже сильно много вопросов. Вы просите выстроить Вам всю логику работы шаблона, а не подсказать, как это делается.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 040
Баллы
113
есть снипет на форуме который милионы повторяющих строк сравнитвает. если я правильно понял что надо
 

Sergey905901

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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 040
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 040
Баллы
113
для начала есть такое
2016-04-27_223103.png


а ещё поиск
 
  • Спасибо
Реакции: Sunrider

Birds49

Новичок
Регистрация
12.07.2022
Сообщения
1
Благодарностей
3
Баллы
3
Отлично. Автору респект.
 

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