Projets Personneljuin 2026
Analyseur de documents — un outil Python pour analyser automatiquement des textes et PDF
Analyseur de documents est une application desktop développée en Python permettant d’analyser automatiquement des fichiers .txt et .pdf. L’outil extrait différentes informations utiles comme le nombre de mots, les phrases trop longues, les mots les plus fréquents ou encore les termes techniques présents dans le document. Ce projet m’a permis de découvrir Python à travers un cas concret, utile et évolutif.
Python

Contexte du projet
Dans le cadre de mon apprentissage de Python, je souhaitais créer un projet à la fois simple à démarrer, utile dans mon quotidien et suffisamment évolutif pour me permettre de progresser étape par étape.
L’idée est venue de mes besoins personnels : lors de la rédaction de rapports, de lettres de motivation ou de documents techniques, il peut être utile d’avoir un outil capable d’analyser rapidement la structure d’un texte. Par exemple, repérer les phrases trop longues, identifier les mots récurrents ou vérifier la présence de certains termes techniques.
J’ai donc choisi de développer un analyseur de documents, sous forme d’application graphique, capable de lire des fichiers texte et PDF.
Besoin et objectif
L’objectif principal était de créer une application permettant d’analyser automatiquement un document afin d’obtenir un rapport synthétique sur son contenu.
Le projet devait permettre de :
- lire un fichier .txt ou .pdf
- extraire le texte du document
- calculer des statistiques simples
- détecter les phrases trop longues
- identifier les mots les plus fréquents
- rechercher des termes techniques personnalisés
- exporter le résultat de l’analyse
- proposer une interface graphique moderne et simple à utiliser
Fonctionnalités principales
Lecture de fichiers texte et PDF
L’application permet d’analyser deux formats de fichiers :- les fichiers .txt
- les fichiers .pdf
Statistiques générales
L’outil calcule plusieurs informations sur le document :- nombre de caractères
- nombre de mots
- nombre de phrases
- nombre moyen de mots par phrase
- nombre de phrases longues détectées
- nombre de termes techniques recherchés
- nombre de termes techniques trouvés
Détection des mots les plus fréquents
L’application analyse le texte et affiche les mots les plus utilisés dans le document. Afin d’obtenir un résultat plus pertinent, certains mots courants sont ignorés, comme :le, la, les, un, une, de, des, et, dans, pour...
Cela permet de mettre davantage en valeur les mots réellement importants du document.
Détection des phrases longues
L’outil permet de détecter les phrases qui dépassent un certain nombre de mots. Le seuil est personnalisable directement depuis l’interface. Par exemple, l’utilisateur peut choisir de considérer qu’une phrase est trop longue à partir de :25 mots
35 mots
50 mots
Cette fonctionnalité est particulièrement utile pour améliorer la lisibilité d’un rapport ou d’une lettre de motivation.
Recherche de termes techniques personnalisés
Au départ, les termes techniques étaient définis directement dans le code. J’ai ensuite fait évoluer l’application pour permettre à l’utilisateur de saisir sa propre liste de termes avant l’analyse. Par exemple :API
Docker
React Native
base de données
authentification
endpoint
JSON
L’application recherche ensuite ces termes dans le document et affiche ceux qui ont été détectés.
Cette fonctionnalité rend l’outil plus flexible, car la liste peut être adaptée selon le type de document analysé.
Interface graphique avec onglets
L’application dispose d’une interface graphique organisée en plusieurs onglets :Statistiques
Mots fréquents
Phrases longues
Termes techniques
Cette organisation rend les résultats plus lisibles et évite d’afficher toutes les informations dans une seule grande zone de texte.
Interface modernisée
Après une première version en Tkinter classique, j’ai amélioré l’apparence de l’application avec CustomTkinter. Cela m’a permis d’ajouter :- une interface plus moderne
- un mode sombre
- des boutons plus propres
- des cadres arrondis
- une meilleure organisation visuelle
- un bouton permettant de changer le thème
Export du rapport d’analyse
L’utilisateur peut exporter le résultat de l’analyse dans un fichier .txt. Cela permet de conserver une trace de l’analyse ou de comparer plusieurs versions d’un même document.Défis rencontrés
Installation des dépendances
La première difficulté a été liée à l’installation des paquets Python sous Windows. La commande pip n’était pas reconnue dans le terminal Git Bash. J’ai donc appris à utiliser :py -m pip install nom_du_paquet
Cela m’a permis d’installer correctement les dépendances comme pymupdf et customtkinter.
Extraction du texte depuis un PDF
Lire un fichier texte est assez simple, mais lire un PDF est plus complexe. Le texte extrait ne correspond pas toujours exactement à ce que l’on voit visuellement dans le document. Par exemple, il peut y avoir des problèmes avec :- les sauts de ligne
- les en-têtes
- les pieds de page
- les listes à puces
- l’ordre du texte
- les éléments de mise en page
Détection des phrases longues
La détection des phrases longues semble simple au départ, mais elle dépend beaucoup de la manière dont les phrases sont découpées. Il faut prendre en compte les signes de ponctuation comme :.
!
?
Mais certains cas peuvent être plus complexes, par exemple les abréviations, les titres ou les listes.
Personnalisation des termes techniques
Au départ, les termes techniques étaient codés en dur dans le programme. Cette solution fonctionnait, mais elle n’était pas flexible. J’ai donc modifié l’application pour que l’utilisateur puisse saisir lui-même les termes à rechercher. Cela m’a permis de mieux comprendre comment transmettre des données depuis l’interface vers la logique métier.Génération d’un exécutable
J’ai également découvert que transformer un projet Python en application exécutable demande quelques précautions. Avec PyInstaller, il faut notamment faire attention :- aux dépendances
- aux fichiers externes
- au mode console ou fenêtre
- aux différences entre Windows et Linux
Ce que j’ai appris
Ce projet m’a permis de découvrir plusieurs notions importantes en Python.
Lecture et manipulation de fichiers
J’ai appris à lire différents types de fichiers, notamment les fichiers texte et PDF. J’ai également appris à gérer les chemins de fichiers avec pathlib.Traitement de texte
J’ai travaillé sur :- le découpage d’un texte en mots
- le découpage d’un texte en phrases
- l’utilisation d’expressions régulières
- le comptage des occurrences
- le filtrage des mots courants
Organisation du code
Le projet m’a permis de mieux structurer une application Python en séparant les responsabilités :analyseur.py logique d’analyse
lecteur_pdf.py lecture des fichiers PDF
exporteur.py export du rapport
interface.py interface graphique
main.py point d’entrée de l’application
Cette organisation rend le projet plus lisible et plus facile à faire évoluer.
Interface graphique
J’ai appris à créer une interface desktop avec Tkinter, puis à l’améliorer avec CustomTkinter. J’ai découvert comment créer :- des boutons
- des champs de saisie
- des zones de texte
- des onglets
- des fenêtres de sélection de fichier
- des messages d’erreur et de confirmation
Gestion des erreurs
J’ai aussi ajouté des vérifications pour éviter certains problèmes :- aucun fichier sélectionné
- format non supporté
- seuil de phrase longue invalide
- export demandé avant l’analyse
Avis visiteurs
Chargement des avis...
