Python: Подсчет слов в строке или файле
В этом учебнике вы узнаете, как использовать Python для подсчета количества слов и частот слов как в строке, так и в текстовом файле. Умение считать слова и частоты слов — это полезный навык. Например, знание того, как это делать, может быть важно в алгоритмах машинного обучения для классификации текста.
К концу этого учебника вы узнаете:
Как подсчитать количество слов в строке
Как подсчитать количество слов в текстовом файле
Как вычислять частоты слов с использованием Python
Содержание
Подсчет количества слов в Python с использованием
split()
Подсчет количества слов в Python с использованием Regex
Вычисление частот слов в Python
Заключение
Дополнительные ресурсы
Чтение текстового файла в Python
Процессы подсчета слов и вычисления частот слов, показанные ниже, одинаковы для строки и для всего текстового файла. Поэтому в этом разделе кратко описывается, как читать текстовый файл в Python.
Если вы хотите получить более подробное руководство по чтению текстового файла в Python, ознакомьтесь с этим учебником. Вот быстрый пример кода, который можно использовать для загрузки содержимого текстового файла в строку Python:
Я рекомендую ознакомиться с учебником, чтобы узнать, почему и как работает этот подход. Однако, если вы спешите, просто знайте, что этот процесс открывает файл, читает его содержимое и затем закрывает файл.
Подсчет количества слов в Python с использованием split()
split()
Один из самых простых способов подсчитать количество слов в строке Python — использовать функцию split()
. Функция split()
выглядит следующим образом:
По умолчанию Python будет рассматривать последовательности пробелов как единый разделитель. Это означает, что если в нашей строке было несколько пробелов, они будут рассматриваться как единый разделитель. Давайте посмотрим, что возвращает этот метод:
Мы видим, что метод теперь возвращает список элементов. Поскольку мы можем использовать функцию len()
для подсчета количества элементов в списке, мы можем создать подсчет слов. Давайте посмотрим, как это выглядит:
Подсчет количества слов в Python с использованием Regex
Еще один простой способ подсчитать количество слов в строке Python — использовать библиотеку регулярных выражений re. Библиотека включает функцию findall()
, которая позволяет искать различные шаблоны строк.
Поскольку мы можем использовать регулярные выражения для поиска шаблонов, сначала нужно определить наш шаблон. В этом случае мы хотим шаблоны алфавитно-цифровых символов, разделенных пробелами.
Для этого мы можем использовать шаблон \w+
, где \w
представляет любой алфавитно-цифровой символ, а +
обозначает одно или несколько вхождений. Как только шаблон встречает пробел, например, пробел, он останавливает шаблон там.
Давайте посмотрим, как мы можем использовать этот метод для создания подсчета слов с использованием библиотеки регулярных выражений re:
Вычисление частот слов в Python
Для вычисления частот слов мы можем использовать либо класс defaultdict
, либо класс Counter
. Частоты слов представляют, как часто определенное слово встречается в тексте.
Использование defaultdict для вычисления частот слов в Python
Давайте посмотрим, как мы можем использовать defaultdict
для вычисления частот слов в Python. Класс defaultdict
расширяет обычный словарь Python, предоставляя полезные функции для инициализации отсутствующих ключей.
Благодаря этому мы можем пройтись по тексту и подсчитать количество вхождений каждого слова. Давайте посмотрим, как мы можем использовать его для создания частот слов для данной строки:
Давайте разберем, что мы сделали:
Мы импортировали как функцию
defaultdict
, так и библиотеку reМы загрузили текст и создали экземпляр
defaultdict
с использованием функцииint
Затем мы прошли по каждому слову в списке слов и добавили одно для каждого вхождения
Использование Counter для создания частот слов в Python
Другой способ сделать это — использовать класс Counter
. Преимущество этого подхода заключается в том, что мы можем легко определить самое частотное слово. Давайте посмотрим, как мы можем использовать этот подход:
Давайте разберем, что мы сделали:
Мы импортировали необходимые библиотеки и классы
Мы передали результирующий список из функции
findall()
в классCounter
Мы напечатали результат этого класса
Одним из преимуществ этого подхода является то, что мы можем легко найти самое частотное слово, используя функцию .most_common()
. Эта функция возвращает отсортированный список кортежей, упорядочивая элементы от самого частого к наименее частому. Благодаря этому мы можем просто получить доступ к 0-му индексу, чтобы найти самое частое слово:
Заключение
В этом учебнике вы узнали, как создавать подсчеты слов и частоты слов с использованием Python. Вы узнали несколько различных способов подсчета слов, включая использование метода .split()
и библиотеки re. Затем вы узнали различные способы создания частот слов с использованием defaultdict
и Counter
. Используя метод Counter,
вы смогли найти самое частое слово в строке.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с учебниками ниже:
Python Defaultdict: Обзор и примеры
Python: Подсчет количества вхождений в списке (6 способов)
Python: Подсчет количества вхождений в строке (4 способа!)
Python re: Официальная документация
Last updated