Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

le sujet

il s’agit d’écrire un programme qui lit un fichier texte, et calcule la fréquence des mots présents dans ce fichier

par exemple ici nous allons afficher les mots les plus fréquents, avec leur nombre d’apparitions
par exemple avec (ce fichier est fourni)

python frequency.py -n 5 frequency-sample.txt
the 65
he 62
a 52
to 52
it 45

un outil bien pratique

pour faire ça, on va utiliser un module de la librairie standard, collections.Counter; entrainez-vous à trouver sa doc sur docs.python.org, et à chercher une méthode qui va nous aider à faire ce qui est demandé ici

solutions

v0: très rustique (marche assez mal)

pour montrer comment on utilise Counter, on va couper les mots à la serpe avec split(), et on va ignorer la ponctuation

v1: un peu comme pour palindrom

ici on va remplacer tous les caractères de ponctuation par des espaces avant de couper en morceaux avec split(); on montre 3 façons d’obtenir ces caractères de ponctuation (et le mieux c’est d’importer ce qu’on avait fait pour le palindrome)

v2: avec les expressions régulières

enfin on montre comment on ferait en vrai; c’est moins lisible car ça utilise les expressions régulières, un sujet disons un peu aride de prime abord, mais comme vous pouvez le voir ça donne une solution beaucoup plus propre, et globablement plus efficace aussi