Разве вы не хотите знать, сколько раз Ф. Скотт Фицджеральд использовал букву «е»?
Хотя это руководство предназначено для начинающих, мы не будем устанавливать здесь Python или редактор кода, а также не будем рассматривать вводные концепции программирования, такие как переменные и циклы. Вы можете скачать питон здесь!
Цель этой статьи — помочь вам начать работу с графическими данными в Python. Мы создадим гистограмму, чтобы отобразить частоту появления символов в заданном текстовом файле. В этом случае текстовый файл содержит содержимое «Великого Гэтсби».
Шаг 1: Создайте свою виртуальную среду
Среда для этого проекта будет относительно небольшой. Виртуальная среда позволяет вам добавлять дополнительные функции в ваше рабочее пространство, не затрагивая остальную часть вашего компьютера!
Создайте каталог и откройте его в редакторе кода и терминале (там, где вы запускаете команды).
Давайте работать:
$ python3 -m venv venv $ source venv/bin/activate
И мы можем установить наши необходимые зависимости с помощью
$ pip3 install matplotlib
Давайте также создадим два файла, read.txt и wordcount.py.
Мы будем использовать wordcount.py для анализа текста в read.txt.
Шаг 2: Прочитайте текст
Мы можем начать относительно просто,
- Во-первых, он импортирует наши библиотеки построения графиков и сортировки.
- Во-вторых, мы используем встроенную функцию открытия, которая позволяет нам открывать файл для чтения и записи.
- Затем мы читаем текст внутри файла и сохраняем его в текстовую переменную
- Наконец, мы закрываем файл, так как мы его больше не используем.
Это все, что нам нужно, чтобы «прочитать» файл и сохранить содержимое в переменной.
Шаг 3: Анализ персонажей
Лучший способ отслеживать символы — использовать словарь Python (известный в других языках программирования как хэш-карта).
Словарь — очень удобный способ хранения данных. Как и в настоящем словаре, в нем будет список «слов», и вы сможете посмотреть на слово, чтобы увидеть определение.
В программировании эта концепция обобщается на пары «ключ/значение». Это означает, что мы можем настроить словарь таким образом, чтобы, когда я запрашиваю у словаря «а», он возвращал общее количество раз, когда «а» появлялась.
Итак, давайте закодируем это!
Давайте посмотрим, что здесь происходит
- Сначала мы определяем пустой словарь
- Затем мы определяем функцию, используя ключевое слово def. Эта функция принимает переменную «символ» и проверяет, является ли она пробелом (пробелом, табуляцией, новой строкой). Вы можете добавить дополнительные критерии по своему выбору, например isalpha(), чтобы определить, является ли символ буквой
- Затем проверяет, есть ли он уже в словаре. Если он есть в словаре, он изменит значение на то, что было раньше, плюс 1 (поскольку мы считаем этот символ), в противном случае он добавит новую запись в словарь с начальным счетчиком 1.
- Затем мы перебираем каждый символ в текстовой переменной, где «i» представляет собой отдельный символ, мы сохранили и запускаем нашу функцию для их подсчета.
- Наконец, мы сортируем словарь в алфавитном порядке, используя импорт OrderdedDict.
Шаг 4: Спланируйте это!
Теперь, когда наш набор данных создан, давайте организуем его по осям и построим график!
Мы создадим список для представления каждой оси
num_list = [] char_list = []
Эти списки будут соответствовать друг другу, поэтому, если элемент 1 был «a» в char_list, элемент 1 в num_list будет соответствующей частотой. Давайте закодируем это тоже
Мы используем две переменные для циклического перебора пар ключ/значение в созданном нами словаре, а затем добавляем их в наши списки данных.
Наконец, давайте используем matplotlib для создания и сохранения этой гистограммы.
- Сначала мы создаем новую фигуру. Фигура представляет собой общее окно
- Добавьте график к рисунку
- Добавьте гистограмму с выбранными нами данными
- Скачать изображение
- Показать изображение
Время проверить это!
Запустите файл с приведенным ниже кодом и приготовьтесь к нашим результатам!
$ python3 wordcount.py
Итак, чтобы ответить на вопрос, который я задал в начале статьи, буква е используется в «Великом Гэтсби» более 25 000 раз! Ух ты!
Заключение
К концу этой статьи, я надеюсь, вы узнали кое-что о matplotlib и науке о данных. Вы можете использовать код, который мы написали сегодня, для простого анализа данных, например, знаете ли вы, что буква «е» является наиболее часто используемой буквой в английском языке? В нашем примере Ф. Скотт Фитцджеральд наверняка много раз его использовал!
Вы можете проверить весь проект на моем GitHub:
И если вам интересно больше подобных статей, обязательно подпишитесь на меня и оставьте комментарий!