Подсчитываем частоту слов в тексте с Python и модулем re
Здравствуйте! Наверняка, многие сталкивались с проблемой определения содержания массивного текста, при невозможности прочесть его от начала и до конца. В таком случае, на помощь может прийти анализ частоты ключевых слов. И кстати, с помощью этого же подхода возможен массовый поиcк содержимого по файлам, о чем подробнее рассказывается в видеокурсе Написание лайфхаков на Python. В сегодняшней статье мы рассмотрим скрипт для подсчета частоты слов в тексте посредством Python и встроенных модулей re и collections.
import re
from collections import Counter
def word_frequency(text):
# Очистка текста от знаков препинания и приведение к нижнему регистру
cleaned_text = re.sub(r'[^\w\s]', '', text).lower()
# Разделение текста на слова
words = cleaned_text.split()
# Фильтрация слов длиной менее трех символов
words = [word for word in words if len(word) >= 3]
# Подсчет частоты слов и их сортировка
word_count = Counter(words)
sorted_words = word_count.most_common()
return sorted_words
# Пример текста для анализа
with open('words.txt', 'r', encoding='utf-8') as f:
input_text = f.read()
# Обработка текста и вывод результатов
result = word_frequency(input_text)
for word, frequency in result:
print(f'Word: {word}, Frequency: {frequency}')
Данный скрипт производит подсчет всех слов в тексте, включая и стоп слова. Теперь подсчитав количество и частоту слов мы можем приближенно понять, что содержится в тексте.
Вариант применения. Допустим, у нас есть текстовый файл, содержащий отзывы о продукте или услуге. Мы загружаем этот текст в программу, и она проводит анализ. Мы получаем список слов, упорядоченных по их частоте встречаемости. Это позволяет нам легко выявить ключевые темы или понять, какие аспекты нашего продукта/услуги обсуждаются чаще всего.
Таким образом, мы создали простейший анализатор текста на основе частоты упомянутых в нем слов, при помощи Python и регулярных выражений.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.