Compter des occurrences

Exercice bonus : Compter des occurrences

On souhaite écrire un programme qui compte les occurences de mots dans un texte afin de connaître les mots les plus fréquents.

Question

Écrire une fonction occurrences telle que :

  • L'entrée (sequence) est une séquence (tuple, list, str, ...)

  • La sortie est un dictionnaire tel que :

    • Les clefs sont les valeurs de la séquence

    • Les valeurs sont le nombre d'occurrence de ces clefs dans la séquence

Question

Écrire une fonction compte_mots telle que :

  • L'entrée (phrase) est une chaîne de caractères comportant des espaces

  • La sortie est un dictionnaire tel que :

    • Les clefs sont les mots de la phrase

    • Les valeurs sont le nombre d'occurrence des mots dans la phrase

Indice

La méthode .split() pourrait vous aider.

Cf cette page pour plus de détails...

Le « Petit Chaperon Rouge »

Pour pouvoir réaliser des tests, on va utiliser le texte du « Petit Chaperon Rouge ».

On veillera donc à télécharger le fichier suivant.

Télécharger ce fichier dans le même dossier que votre code Python.

Question

Dans le programme principal, importer ce texte puis écrire les instructions nécessaires pour afficher, dans la console, chaque mot de ce texte suivi de son nombre d'occurrences dans le texte.

Indice

La fonction open, permet d'ouvrir un fichier.

Ainsi le code suivant ouvre le fichier (fichier.txt) en lecture et obtient un référence (f).

1
with open("fichier.txt", 'r') as f:
2
    # Faire quelque chose

Indice

Si f est le nom d'une variable faisant référence à un fichier texte, alors f.read() renvoie le contenu de ce fichier texte sous la forme d'une unique chaîne de caractères.

Question

Écrire une fonction compte_mots_par_longueur telle que :

  • L'entrée (phrase) est une chaîne de caractères comportant des espaces

  • La sortie est un dictionnaire tel que :

    • Les clefs sont la longueur des mots de l'entrée

    • Les valeurs sont le nombre de mots dans la phrase qui ont cette longueur

Appliquer ensuite, dans le programme principal, cette fonction au texte du « Petit Chaperon Rouge ».

Question

Écrire une fonction plus_frequent telle que :

  • Les entrées :

    • Un dictionnaire (dico) tel que :

      • Les clefs sont des mots

      • Les valeurs sont le nombre d'occurrence de ces mots dans un texte

    • Un entier (longueur), la longueur des mots que l'on considére

  • La sortie est un tableau constitués des chaînes de caractères de la longueur spécifiée et associées à la plus grande valeur dans le dictionnaire.

Indice

C'est un algorithme de recherche du maximum légèrement modifié :

  • lorsqu'on rencontre un nouveau maximum, on ré-initialise le tableau ;

  • lorsqu'on rencontre un mot de même « valeur », on l'incorpore au tableau.