Amusez-vous avec vos données textuelles

PythonBeginner
Pratiquer maintenant

Introduction

Python est un langage de programmation robuste et polyvalent, devenu une référence incontournable pour l'analyse de données et le calcul statistique. Son écosystème riche comprend des bibliothèques spécialisées dans l'analyse de texte et le traitement du langage naturel (NLP), ce qui en fait un choix privilégié pour manipuler des données textuelles.

Dans ce défi, nous allons exploiter les capacités de Python pour effectuer des analyses statistiques sur une collection de fichiers texte. Découvrons comment extraire des informations pertinentes à partir de données brutes.

Comptage total des mots

Vous trouverez plusieurs fichiers texte situés dans le dossier home/labex/files.

Votre mission consiste à rédiger un script Python, nommé word_count.py, capable de lire l'intégralité de ces fichiers et de calculer le nombre total de mots qu'ils contiennent.

Il est important de noter que la ponctuation ne doit pas être comptabilisée comme des mots. À titre d'exemple, le fichier "java" contient exactement 111 mots.

Critères requis

  • Une fois exécuté, le script doit afficher le nombre total de mots directement dans la console.

Mots à haute fréquence

Après avoir réussi le décompte total, votre prochaine étape consiste à identifier les 3 mots les plus fréquents parmi l'ensemble des fichiers texte. Vous devez concevoir un script Python intitulé top_3_high_frequencies.py pour accomplir cette tâche. Le script devra afficher ces 3 mots ainsi que leur fréquence respective dans la console, par ordre décroissant.

Par exemple, le résultat attendu devrait ressembler à ceci :

python top_3_high_frequencies.py

## print word and frequency in console
word1 20
word2 15
word3 13

Critères requis

  • Le script doit afficher les 3 mots les plus utilisés et leur occurrence dans la console lors de l'exécution.
  • Le comptage doit être sensible à la casse (case-sensitive), ce qui signifie que "Mot" et "mot" sont considérés comme deux entités distinctes.
  • La ponctuation ne fait pas partie des mots et doit être exclue du décompte.

Alignement ordonné des mots

Intéressons-nous maintenant à l'ordre des mots au sein de chaque fichier. Et si nous voulions extraire le premier mot de chaque fichier, puis le deuxième, et ainsi de suite ?

Votre tâche est de créer un script Python, step3_code.py, qui récupère le n-ième mot de chaque fichier d'entrée et les écrit dans un nouveau fichier nommé output/n. Ici, 'n' représente la position du mot (en commençant par 1). Les fichiers de sortie doivent être générés dans le répertoire /home/labex/project/output/.

Par exemple, si l'on extrait les premiers mots de chaque fichier, le contenu de output/1 devrait être :

## output/1, start count with 1.
CentOS Java A Python Ubuntu

De la même manière, pour les 100èmes mots (s'ils existent), le contenu de output/100 devrait être :

## output/100, the 100-th file, only java, linux and program have 100-th word.
applications and the

Critères requis

  • Le dossier output doit impérativement se situer dans /home/labex/project/.
  • L'ordre dans lequel les fichiers sources sont lus n'a pas d'importance ; seul l'ordre des mots à l'intérieur de chaque fichier compte.
  • La ponctuation ne doit pas être prise en compte et doit être supprimée.

Résumé

Au cours de ce défi Python, vous avez appris à utiliser le langage pour effectuer des analyses de données textuelles fondamentales. Vous vous êtes exercé à compter le nombre total de mots, à identifier les termes les plus fréquents et à extraire des mots selon leur position dans plusieurs fichiers pour les réorganiser dans de nouveaux documents. En relevant ce défi, vous avez acquis des compétences précieuses pour manipuler des données textuelles avec Python, renforçant ainsi votre capacité à mener des analyses statistiques sur du texte. Ces bases sont essentielles pour aborder des tâches de traitement de texte plus complexes à l'avenir.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer