Elias Bellouti
EN
← Retour aux projets

Projet d’école · Apprentissage profond

Attribution d’auteur : reconnaître un poète

Pour ce projet de NLP à l’ESIEA, j’ai étudié comment différents réseaux reconnaissent l’auteur d’un poème parmi Baudelaire, Hugo et Rimbaud. J’ai travaillé sur la préparation des textes, leur découpage et la comparaison de quatre architectures avec un protocole commun. Les prédictions par segment sont réunies pour attribuer le poème entier. Le rapport final présente les résultats sur 32 poèmes de test, les erreurs par auteur et les évolutions des modèles. Cette expérience m’a aussi conduit à examiner le surapprentissage et les limites des mesures.

87,5 % sur 32 poèmes de test pour le MLP et le LSTM.

Matrices de confusion des quatre modèles comparés sur les trois poètes.
Matrices de confusion des quatre modèles comparés sur les trois poètes. Agrandir le visuel ↗

Préparer des textes comparables

Le projet part d’une question d’attribution : lequel de Baudelaire, Hugo ou Rimbaud a écrit ce poème ? Dans le cadre du cours de NLP à l’ESIEA, j’ai travaillé sur un corpus de 208 poèmes provenant de pages du Projet Gutenberg.

La préparation transforme des textes édités différemment en entrées comparables. Elle sépare les poèmes des éléments périphériques, normalise le texte et conserve les données préparées en JSON. Ce travail en amont évite de refaire l’analyse linguistique à chaque expérience et permet aux modèles de recevoir les mêmes entrées.

Passer des segments au poème entier

Les textes sont découpés en fenêtres, puis traités avec spaCy avant leur conversion en indices. Le vocabulaire est construit à partir de l’apprentissage. Les segments restent groupés par poème lors de la séparation des ensembles : 145 poèmes pour apprendre, 31 pour valider et 32 pour tester.

J’ai comparé un MLP, un RNN, un LSTM et un GRU avec TensorFlow/Keras. Chaque modèle produit des probabilités par segment ; leur moyenne donne la décision pour le poème complet. Cette agrégation relie les unités utilisées pendant l’apprentissage à la question réellement posée au lecteur.

Examiner les résultats et les erreurs

Le rapport final donne 87,5 % de bonnes attributions au MLP et au LSTM sur les 32 poèmes de test, contre 81,25 % pour le RNN et 78,12 % pour le GRU. Le MLP atteint donc la même exactitude que le LSTM avec moins de paramètres dans cette expérience.

J’ai également étudié les matrices de confusion et les métriques par auteur. Elles complètent le score global, notamment sur un corpus où Baudelaire est davantage représenté. Le jeu de test intervient dans la sélection des checkpoints documentée ; ces résultats décrivent cette expérience, sans constituer une évaluation finale indépendante.

Faire évoluer les modèles à partir des observations

Les écarts entre apprentissage et validation ont guidé mes essais sur la capacité, la régularisation et les paramètres d’apprentissage. Les notebooks Jupyter conservent les courbes et les commentaires nécessaires pour rapprocher un changement de son résultat, sans attribuer un effet isolé à chaque réglage modifié ensemble.

Un second volet compare la génération en caractères et en mots. Il prolonge le travail sur les représentations du texte, avec son propre protocole. La contribution centrale reste la construction d’une comparaison lisible, depuis les données jusqu’à l’interprétation des sorties.

Les compétences mises en pratique

Machine learning et intégration IA

J’ai préparé le corpus, entraîné plusieurs architectures en caractères et en mots, puis agrégé leurs prédictions à l’échelle du poème.

Tests, évaluation et fiabilité

J’ai comparé les modèles avec un protocole commun et analysé les courbes d’apprentissage et les matrices de confusion pour guider les ajustements.

← Retour aux projets