Natural Langage Processing

Objectifs :

  • Maîtriser les concepts d'algèbre linéaire essentiels au NLP (vecteurs, matrices, similarité cosinus)
  • Construire des représentations vectorielles de mots (TF-IDF, Word2Vec, GloVe, FastText)
  • Concevoir et entraîner des réseaux de neurones pour le NLP avec PyTorch (RNN, LSTM, GRU)
  • Construire des modèles séquentiels avec TensorFlow/Keras et comprendre l'architecture Transformer
  • Fine-tuner des modèles pré-entraînés (BERT, CamemBERT) avec Hugging Face
Tarif inter / participant
2 500 € HT
📄 Programme (PDF) 📅 Voir les dates

Public visé

  • Développeurs Python souhaitant se spécialiser dans le traitement du langage
  • Data scientists et ingénieurs machine learning
  • Chercheurs et étudiants en IA souhaitant maîtriser les techniques modernes du NLP
  • Professionnels souhaitant intégrer le NLP dans leurs produits ou pipelines de données

Objectifs pédagogiques

  • Maîtriser les concepts d'algèbre linéaire essentiels au NLP (vecteurs, matrices, produits scalaires, projections)
  • Mettre en œuvre les techniques classiques de prétraitement du texte (tokenization, stemming, lemmatisation)
  • Construire des représentations vectorielles de mots (TF-IDF, Word2Vec, GloVe, embeddings contextuels)
  • Développer des modèles de classification de texte avec scikit-learn
  • Concevoir et entraîner des réseaux de neurones pour le NLP avec PyTorch
  • Construire des modèles séquentiels (RNN, LSTM, GRU) avec TensorFlow/Keras
  • Comprendre l'architecture des Transformers et utiliser Hugging Face
  • Développer une application NLP complète (analyse de sentiment, NER, résumé automatique)

Prérequis

  • Maîtrise de Python niveau intermédiaire : POO, modules, manipulation de fichiers
  • Notions de base en mathématiques : opérations vectorielles, fonctions, dérivées (niveau lycée scientifique)
  • Connaissance de pandas et numpy appréciée mais non obligatoire
  • Disposer d'un ordinateur avec Python 3.x et accès internet

Méthodes pédagogiques

  • Alternance de théorie (35%) et de pratique (65%)
  • Démonstrations mathématiques visuelles et exemples concrets
  • TP individuels et collaboratifs avec NumPy, scikit-learn, PyTorch, TensorFlow et Hugging Face
  • Comparaison des frameworks : chaque concept est illustré en PyTorch et TensorFlow lorsque pertinent
  • Supports de cours et notebooks Jupyter remis aux stagiaires (accès pérenne)

Programme détaillé

JOUR 1 — Fondations mathématiques et premiers pas en NLP

  • Vecteurs : définition, dimension, représentation d'un mot ou d'un document
  • Opérations vectorielles : addition, multiplication scalaire, norme (L1, L2)
  • Produit scalaire et similarité cosinus : mesurer la proximité sémantique entre textes
  • Matrices : définition, transposition, produit matriciel, transformations linéaires
  • Décomposition en valeurs singulières (SVD) : principe et application au NLP (LSA)
  • Calcul matriciel avec NumPy : ndarray, broadcasting, opérations vectorisées
  • Notions de probabilités utiles : distributions, probabilité conditionnelle, théorème de Bayes
  • Panorama du NLP : enjeux, applications, évolution historique
  • Tokenization, normalisation, stemming et lemmatisation avec NLTK et spaCy
  • POS tagging et reconnaissance d'entités nommées (NER)
  • Représentations Bag-of-Words et TF-IDF

■ Travaux pratiques :
→ TP1 : Calcul de similarité cosinus entre documents avec NumPy
→ TP2 : Pipeline complet de prétraitement de texte avec spaCy (tokenization, lemmatisation, NER)
→ TP3 : Construction d'une matrice TF-IDF et recherche des documents les plus similaires

JOUR 2 — Embeddings et machine learning classique appliqué au NLP

  • Limites des représentations Bag-of-Words : sparsité, absence de sémantique
  • Hypothèse distributionnelle : « un mot se définit par son contexte »
  • Word2Vec : architectures CBOW et Skip-Gram, intuition mathématique
  • GloVe : factorisation de matrice de co-occurrence
  • FastText : embeddings de sous-mots, gestion des mots inconnus
  • Visualisation des embeddings : réduction de dimension avec PCA et t-SNE
  • Utilisation de modèles pré-entraînés (français et anglais)
  • Pipeline de machine learning pour le NLP : prétraitement, vectorisation, modèle, évaluation
  • Algorithmes classiques : régression logistique, SVM, Naive Bayes, Random Forest
  • Métriques d'évaluation : précision, rappel, F1-score, matrice de confusion
  • Cross-validation et recherche d'hyperparamètres avec GridSearchCV
  • Gestion des classes déséquilibrées et interprétabilité des modèles

■ Travaux pratiques :
→ TP1 : Entraînement de Word2Vec sur un corpus français et exploration des analogies
→ TP2 : Classifieur de sentiment sur des avis clients avec scikit-learn (TF-IDF + régression logistique)
→ TP3 : Détection automatique de spam avec optimisation d'hyperparamètres

JOUR 3 — Deep learning pour le NLP avec PyTorch

  • Présentation de PyTorch : philosophie, écosystème, comparaison avec TensorFlow
  • Tenseurs PyTorch : création, opérations, broadcasting, transfert CPU/GPU
  • Autograd : différentiation automatique, calcul du gradient
  • Construction d'un réseau de neurones : torch.nn.Module, couches Linear, fonctions d'activation
  • Boucle d'entraînement : forward, loss, backward, optimizer (SGD, Adam)
  • DataLoader et Dataset : chargement efficace des données textuelles
  • Couche Embedding : représentation dense des mots dans un réseau de neurones
  • Réseaux récurrents (RNN) : intuition, équations, limites (vanishing gradient)
  • LSTM et GRU : mécanismes de portes, mémoire à long terme
  • RNN bidirectionnels : combiner contexte gauche et droite
  • Régularisation : dropout, batch normalization, early stopping

■ Travaux pratiques :
→ TP1 : Implémentation d'un classifieur de texte avec un réseau feed-forward en PyTorch
→ TP2 : Construction d'un LSTM pour la classification d'avis clients
→ TP3 : Comparaison des performances entre régression logistique, LSTM et GRU sur un même dataset

JOUR 4 — TensorFlow, Transformers et projet final

  • Présentation de TensorFlow et Keras : philosophie, API séquentielle et fonctionnelle
  • Construction d'un modèle Keras : Sequential, couches, compilation, entraînement
  • Tenseurs TensorFlow : tf.Tensor, opérations, eager execution
  • Pipeline tf.data : chargement et transformation efficaces de corpus textuels
  • Implémentation d'un LSTM en Keras et comparaison avec PyTorch
  • Mécanisme d'attention : intuition, calcul, intérêt
  • Architecture Transformer : self-attention, multi-head attention, encodage positionnel
  • BERT, GPT et leurs variantes : présentation et cas d'usage
  • Écosystème Hugging Face : Transformers, Datasets, Tokenizers, Hub
  • Pipeline Hugging Face : classification, NER, question-answering, résumé
  • Fine-tuning d'un modèle pré-entraîné sur un dataset métier
  • Bonnes pratiques : gestion de la mémoire, GPU, taille de batch

■ Travaux pratiques :
→ TP1 : Implémentation et entraînement d'un LSTM en Keras/TensorFlow sur un corpus textuel
→ TP2 : Fine-tuning de CamemBERT pour la classification de sentiment sur des avis en français
→ TP3 (Projet final) : Application NLP complète au choix — analyse de sentiment, NER métier, ou résumé automatique

Évaluation

  • Test de positionnement en début de formation
  • Évaluations formatives : exercices pratiques corrigés, revue de code, débogage en groupe, QCM intermédiaires
  • QCM mi-parcours de 20 questions (Jour 2)
  • QCM final de 30 questions (Jour 4) — critère de réussite : 60%
  • Soutenance du mini-projet final
  • Attestation de fin de formation délivrée

Retour en haut