Ejemplos prácticos de análisis de frecuencia
En esta sección, exploraremos algunos ejemplos prácticos de cómo utilizar conjuntos (sets) para realizar análisis de frecuencia en Python.
Ejemplo 1: Analizar la frecuencia de palabras en un texto
Supongamos que tenemos un archivo de texto que contiene un cuento corto y queremos analizar la frecuencia de las palabras en el texto.
## 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}")
Este código mostrará las 10 palabras más frecuentes en el archivo de texto, junto con sus frecuencias.
Ejemplo 2: Identificar IDs de usuario únicos en un archivo de registro
Supongamos que tienes un archivo de registro que contiene la actividad de los usuarios y quieres encontrar los IDs de usuario únicos en el archivo.
## 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)
Este código mostrará una lista de los IDs de usuario únicos presentes en el archivo de registro.
Ejemplo 3: Detectar anomalías en datos de sensores
Imagina que tienes un conjunto de datos de lecturas de sensores y quieres identificar cualquier lectura anómala que se desvíe del rango normal.
## 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)
Este código primero mostrará la frecuencia de cada lectura única del sensor y luego identificará cualquier lectura anómala que aparezca solo una vez en el conjunto de datos.
Al explorar estos ejemplos prácticos, puedes ver cómo se pueden utilizar eficazmente los conjuntos (sets) para realizar análisis de frecuencia y abordar diversos desafíos de procesamiento de datos en Python.