Найти тему
Каждодневье

Сколько раз встречается слово в тексте? Давайте посчитаем и выгрузим в xlsx

Оглавление

Для многих профессий требуется рассматривать текст "под лупой", находя излишние слова и повторы. Актуально для сеошников, копирайтеров и рерайтеров. Ведь текст - деньги.

Python для этих целей может быть инструментом №1. Попробуем взять текстовую строку и найти в ней повторы. Вместо строчки может быть абзац или полностью статься.

Из модулей мы будем использовать встроенный
collections из которого импортируем класс Counter

класс collections.Counter() пробегается по итерируемой последовательности и возвращает словарик ключ-значение, где:

  • ключ - элемент в последовательности
  • значение - число повторений элемента

Проверим на деле:

Пример "в лоб". Неудачный, так как мы хотели слова считать, а не символы
Пример "в лоб". Неудачный, так как мы хотели слова считать, а не символы

Да, незадача. С этим я столкнулся когда только начинал изучать Python.

Как правильно?

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

split() просмотрит всю строку и в случае обнаружения разделителя (задается в скобках) дробит строку на список элементов.
Пробел — разделитель по умолчанию, поэтому его можно не указывать.

-2

Другое дело! но не всегда есть желание копаться в терминальной выдаче. Давайте превратим выдачу в файл... в эксельку жахнем :-)

Я не буду углубляться в тему, которая отходит от этого поста. В комментариях напишите если это будет нужно и я напишу отдельный пост.

Мы из словаря (выдача выше) сделаем:

  • Список: Нужно для лучшего форматирования табличной части
  • Конвертация в объект Pandas: в три строки сделаем то, что ранее было в 30-40 строках кода. При конвертации зададим имена столбикам.
  • Сохраним сформированный объект в файлик.

Поехали

1. Словарь в список

Обратите внимание - порядок изменился, так как он изначально в словаре не хранится.
Обратите внимание - порядок изменился, так как он изначально в словаре не хранится.

2. Pandas. Его надо доставить как модуль и импортировать

Установили, импортировали модуль упрощения своей работы :-)
Установили, импортировали модуль упрощения своей работы :-)

2a. Поправим сортировочку - не дело потом средствами экселя это делать. Зададим сортировку по убыванию числа повторений. Заодно краткий эксурс по параметрам сортировки пройдете :-) :

Две строки кода и много строк комментария для приблизительного понимания процесса.
Две строки кода и много строк комментария для приблизительного понимания процесса.

Объект готов для сохранения, но чтобы Python умел обращаться с детищем майкрософта - нужен модуль. Для экспорта в формат xlsx нужен openpyxl. Импортировать его в теле скрипта не требуется, так как он подтянется средствами Pandas:

Готовый файлик сможете наблюдать в рабочей директории
Готовый файлик сможете наблюдать в рабочей директории

Должно получиться как-то так:

Итоговый файл в рабочей директории
Итоговый файл в рабочей директории

Весь код я разбивал для удобства визуализации, без нее и комментариев экспорт в 4 строки :-). Можно было еще почистить от знаков препинания, но это точно уже другая тема. :-)

Надеюсь в определенный момент изучения этот прием вам пригодится.

Подписывайтесь, ставьте лайки. Я очень надеюсь на долгосрочное развитие этого канала. Мне важен любой комментарий, совет или наставление. Мира вам :-)