Exemples pratiques d'analyse de fréquence
Dans cette section, nous allons explorer quelques exemples pratiques d'utilisation d'ensembles (sets) pour effectuer une analyse de fréquence en Python.
Exemple 1 : Analyse de la fréquence des mots dans un texte
Supposons que nous ayons un fichier texte contenant une courte histoire, et que nous voulions analyser la fréquence des mots dans le texte.
## 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}")
Ce code affichera les 10 mots les plus fréquents dans le fichier texte, ainsi que leur fréquence.
Exemple 2 : Identification des identifiants d'utilisateur uniques dans un fichier de journal
Supposons que vous ayez un fichier de journal contenant l'activité des utilisateurs, et que vous vouliez trouver les identifiants d'utilisateur uniques dans le fichier.
## 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)
Ce code affichera une liste des identifiants d'utilisateur uniques présents dans le fichier de journal.
Exemple 3 : Détection d'anomalies dans les données de capteur
Imaginez que vous avez un ensemble de données de lectures de capteur, et que vous vouliez identifier les lectures anormales qui s'écartent de la plage normale.
## 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)
Ce code affichera d'abord la fréquence de chaque lecture de capteur unique, puis identifiera les lectures anormales qui n'apparaissent qu'une seule fois dans l'ensemble de données.
En explorant ces exemples pratiques, vous pouvez voir comment les ensembles peuvent être utilisés efficacement pour effectuer une analyse de fréquence et résoudre divers défis de traitement de données en Python.