Information

Author(s) Céline Nardi
Deadline No deadline
Submission limit No limitation

Sign in

TP05_ExerciceSup2_Dictionnaires_Nuage_de_mots

Un outil qui est fort utilisé aujourd'hui dans les cours mais aussi des campagnes marketing, des présentations, etc. est le nuage de mots. Il existe plusieurs site web prêt à générer un nuage sur base d'un texte comme https://nuagedemots.co/ ou https://www.abcya.com/games/word_clouds .

Dans un nuage de mot, la taille des mots dépend de leur nombre d'occurences dans le texte (voir images).

dict_nuagedemot/nuagesmall.png dict_nuagedemot/nuageratsmall.PNG

Nous vous demandons d'implémentez une fonction def compte_mots(phrase, speciaux): qui reçoit un texte (un string) et une liste de mots spéciaux à ignorer, et retourne un dictionnaire ayant pour clés les mots, et pour valeurs le nombre d'occurence dans le texte.

Exemple 1:

  • texte : "Un chasseur sachant chasser doit savoir chasser sans son chien . "
  • mots spéciaux: [".", "un"]

La fonction va retourner le dictionnaire:

{'chasseur': 1, 'sachant': 1, 'chasser': 2, 'doit': 1, 'savoir': 1, 'sans': 1, 'son': 1, 'chien': 1}

Exemple 2:

  • texte: "Trois gros rats gris , dans trois gros trous ronds , rongent trois gros croûtons ronds ! "
  • mots spéciaux: [",","!"]

La fonction va retourner le dictionnaire:

{'trois': 3, 'gros': 3, 'rats': 1, 'gris': 1, 'dans': 1, 'trous': 1, 'ronds': 2, 'rongent': 1, 'croûtons': 1}

Notes:

  • Vous pouvez assumer que chaque mot est séparé par un espace (et que le texte se termine par un espace).
  • Vous pouvez ignore la casse des lettres ('A' est équivalent à 'a').

Implémentation

Implémentez la fonction def compte_mots(phrase, speciaux): qui reçoit un texte (un string) et une liste de mots spéciaux à ignorer, et retourne un dictionnaire ayant pour clés les mots, et pour valeurs le nombre d'occurence dans le texte.