При обработке текста часто возникает необходимость в анализе частоты использования слов, чтобы выявить наиболее важные или характерные термины. Однако, при этом могут возникать ситуации, когда некоторые слова, такие как предлоги или местоимения, искажают результаты анализа, поскольку они используются очень часто, но не несут особой смысловой нагрузки. В этой статье мы рассмотрим, как можно модифицировать код для анализа частоты слов, исключая предлоги и местоимения.
Подготовка текста
Прежде всего, необходимо подготовить текст для анализа. Это включает в себя несколько шагов:
- Преобразование в нижний регистр: Мы приводим весь текст к нижнему регистру, чтобы не различать слова с точки зрения регистра.
- Очистка текста: Используя регулярные выражения, мы удаляем все символы, кроме букв и пробелов, чтобы оставить только слова.
- Разделение на слова: Разделяем очищенный текст на отдельные слова.
# Очистка текста
cleaned_text = text.lower()
cleaned_text = re.sub(r'[^\w\s]', '', cleaned_text)
words = cleaned_text.split()
Фильтрация слов
Чтобы исключить предлоги и местоимения, мы создаем список слов, которые хотим исключить из анализа. В нашем примере это слова: “и”, “на”, “из”, “он”, “она”, “они”, “это”, “его”, “ее”, “их”. Затем мы фильтруем список слов, оставляя только те, которые не входят в список исключений.
# Фильтрация слов, исключая предлоги и местоимения
filtered_words = [word for word in words if word not in exclusions]
Этот код использует списковое включение (list comprehension) для создания нового списка filtered_words
, который содержит только слова, не входящие в список исключения
.
Подсчет частоты слов
После фильтрации слов мы можем подсчитать частоту их использования. Для этого мы используем словарь, где ключом является слово, а значением – количество его вхождений в тексте.
# Подсчет частоты слов
word_frequency = {}
for word in filtered_words:
if word in word_frequency:
word_frequency[word] += 1
else:
word_frequency[word] = 1
Этот цикл проходит по каждому слову в списке filtered_words и обновляет словарь, подсчитывая частоту появления каждого слова.
Сортировка и вывод результатов
Наконец, мы сортируем слова по частоте их использования в обратном порядке, чтобы увидеть самые частотные слова первыми.
sorted_words = sorted(word_frequency.items(), key=lambda x: x[1], reverse=True)
Затем выводим слова вместе с их частотой использования:
for word, frequency in sorted_words:
print(f"{word}: {frequency} раз")
Анализ частоты слов в тексте является мощным инструментом для изучения языковых особенностей, выявления ключевых терминов и даже для создания систем рекомендаций. Исключение предлогов и местоимений позволяет сосредоточиться на более значимых словах, которые лучше отражают содержание текста. Этот подход можно использовать в различных приложениях, связанных с обработкой естественного языка, для получения более точных и информативных результатов.
Полный код программы
import re
# Исходный текст
text = """
Python - мощный и универсальный язык программирования.
Он позволяет разрабатывать различные приложения,
включая веб-сайты, игры и научные проекты.
Язык Python прост в изучении и имеет обширные библиотеки.
"""
# Список предлогов и местоимений, которые нужно исключить
exclusions = ["и", "на", "из", "он", "она", "они", "это", "его", "ее", "их"]
# Очистка текста
cleaned_text = text.lower()
cleaned_text = re.sub(r'[^\w\s]', '', cleaned_text)
words = cleaned_text.split()
# Фильтрация слов, исключая предлоги и местоимения
filtered_words = [word for word in words if word not in exclusions]
# Подсчет частоты слов
word_frequency = {}
for word in filtered_words:
if word in word_frequency:
word_frequency[word] += 1
else:
word_frequency[word] = 1
# Сортировка слов по частоте
sorted_words = sorted(word_frequency.items(), key=lambda x: x[1], reverse=True)
# Вывод слов, которые чаще всего используются, исключая предлоги и местоимения
print("Слова, которые чаще всего используются в тексте (без предлогов и местоимений):")
for word, frequency in sorted_words:
print(f"{word}: {frequency} раз")