Практические примеры частотного анализа
В этом разделе мы рассмотрим несколько практических примеров использования множеств для выполнения частотного анализа в Python.
Пример 1: Анализ частоты слов в тексте
Предположим, у нас есть текстовый файл с короткой историей, и мы хотим проанализировать частоту слов в тексте.
## Read the text file
with open('story.txt', 'r') as file:
text = file.read().lower().split()
## Count the frequency of words using sets
word_frequencies = {}
for word in set(text):
word_frequencies[word] = text.count(word)
## Sort the words by frequency in descending order
sorted_frequencies = sorted(word_frequencies.items(), key=lambda x: x[1], reverse=True)
## Print the top 10 most frequent words
print("Top 10 Most Frequent Words:")
for word, frequency in sorted_frequencies[:10]:
print(f"{word}: {frequency}")
Этот код выведет 10 наиболее часто встречающихся слов в текстовом файле вместе с их частотой.
Пример 2: Определение уникальных идентификаторов пользователей в журнале
Предположим, у вас есть журнал, содержащий информацию о действиях пользователей, и вы хотите найти уникальные идентификаторы пользователей в этом журнале.
## Read the log file
with open('activity_log.txt', 'r') as file:
user_ids = [line.strip().split(',')[0] for line in file]
## Convert the list of user IDs to a set to get the unique IDs
unique_user_ids = set(user_ids)
## Print the unique user IDs
print("Unique User IDs:")
for user_id in unique_user_ids:
print(user_id)
Этот код выведет список уникальных идентификаторов пользователей, присутствующих в журнале.
Пример 3: Обнаружение аномалий в данных с датчика
Представьте, у вас есть набор данных с показаниями датчика, и вы хотите определить любые аномальные показания, отклоняющиеся от нормального диапазона.
## Assume we have a list of sensor readings
sensor_data = [10, 12, 15, 8, 20, 11, 9, 18, 14, 13, 22, 10]
## Convert the sensor data to a set to get the unique readings
unique_readings = set(sensor_data)
## Identify the frequency of each unique reading
for reading in unique_readings:
frequency = sensor_data.count(reading)
print(f"Reading {reading} appears {frequency} times.")
## Detect anomalies (readings that appear only once)
anomalies = [reading for reading in unique_readings if sensor_data.count(reading) == 1]
print("\nAnomalous Readings:")
for anomaly in anomalies:
print(anomaly)
Этот код сначала выведет частоту каждого уникального показания датчика, а затем определит любые аномальные показания, которые встречаются только один раз в наборе данных.
Изучая эти практические примеры, вы можете увидеть, как множества могут быть эффективно использованы для выполнения частотного анализа и решения различных задач обработки данных в Python.