Aller au contenu principal

Compteur de mots

Introduction

Objectif

L'objectif de ces travaux pratiques est d'écrire un programme permettant de compter les mots d'un document texte.

Préparation

Afin de garder organisées les productions réalisées en travaux pratiques, veuillez mettre à jour l'arborescence du dossier NSI en fonction l'ordinateur utilisé :

💻 Ordinateur portable
  1. Lancer l'explorateur de fichiers
  2. Se rendre dans le dossier Documents
  3. Créer le dossier NSI s'il n'existe pas
  4. Dans le dossier NSI, créer le dossier chapitre_11
  5. Dans le dossier chapitre_11, créer le dossier tp2_compteur_mots
🖥 Ordinateur fixe des salles informatiques
  1. Depuis le bureau, cliquer sur l'icône intitulée Zone personnelle
  2. Créer le dossier NSI s'il n'existe pas
  3. Dans le dossier NSI, créer le dossier chapitre_11
  4. Dans le dossier chapitre_11, créer le dossier tp2_compteur_mots

Téléchargement des fichiers

Pour effectuer ce TP, il est nécessaire de télécharger certains fichiers :

  1. Télécharger le fichier ZIP contenant les fichiers du TP : 📦 télécharger
  2. Ouvrir le fichier ZIP
  3. Copier/coller tous les fichiers dans le dossier NSI\chapitre_11\tp2_compteur_mots

Exercices

Exercice 1 - Fonction utilitaire

Le module chaines dispose d'une fonction compter_mots permettant de compter les mots d'une chaîne de caractères. Celle-ci renvoie un dictionnaire contenant le nombre d'occurrences de chaque mot de cette chaîne.

>>> compter_mots('hello, world')
{'hello': 1, 'world': 1}

Le fichier dont nous souhaitons compter les mots sera traité ligne par ligne. La fonction compter_mots sera donc appelée pour chaque ligne de ce fichier. Le comptage de chaque ligne devra donc être ajouté à un comptage global comme suit :

>>> comptage_global = {}
>>> ajouter_dictionnaire(comptage_global, compter_mots('hello, world'))
>>> comptage_global
{'hello': 1, 'world': 1}
>>> ajouter_dictionnaire(comptage_global, compter_mots('hello, monde'))
>>> comptage_global
{'hello': 2, 'world': 1, 'monde': 1}

🛠 Mise en pratique

Écrire le code de la fonction ajouter_dictionnaire.

Exercice 2 - Fonction de comptage

Nous souhaitons disposer d'une fonction compter_mots_fichier qui prend en paramètre un chemin de fichier et qui effectue les traitements suivants :

  • Ouverture du fichier (fonction open)
  • Lecture des lignes du fichier (fonction readline)
  • Comptage des mots de chaque ligne du fichier (compter_mots)
  • Renvoie d'un dictionnaire contenant le nombre d'occurrences de l'ensemble des mots du fichier

🛠 Mise en pratique

Écrire le code de la fonction compter_mots_fichier.

💡 Aide - Lecture d'un fichier en Python
f = open("fichier.txt", "r", encoding="utf-8") # ouverture du fichier en lecture seule
lignes = f.readlines() # lecture de toutes les lignes du fichier
close(f) # fermeture du fichier une fois l'ensemble des traitements terminés

Exercice 3 - Les mots les plus utilisés (Bonus)

  • Appeler la fonction compter_mots_fichier sur le texte les_miserables.txt
  • Afficher les 100 mots les plus utilisés d'au moins 3 caractères dans l'ordre décroissant (vous pouvez utiliser toute fonction ou méthode Python)
💡 Aide - Tri d'un tableau

Consulter la documentation suivante :