Accueil / Factory / Algos ML / LDA (topic modeling) — factory / algos ML / apprentissage non supervisé

LDA ET TOPIC MODELING.

La LDA (Latent Dirichlet Allocation) lit des milliers de textes et en dégage des thèmes sans qu'on les lui donne. Chaque thème est une liste de mots qui vont ensemble, chaque document un mélange de thèmes. C'est l'outil classique pour cartographier des verbatims, des tickets ou des réponses à une enquête.

TexteThèmesNon superviséVerbatims clientsNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceThèmes utiles sur des textes longs, plus flous sur des textes courts
InterprétabilitéChaque thème se lit comme une liste de mots pondérés
VitesseQuelques secondes à quelques minutes sur des milliers de textes
Facilité de réglageNombre de thèmes à choisir, résultats à relire à la main
Tolérance aux données brutesMots vides, pluriels et fautes à nettoyer avant
EN 30 SECONDES

Un documentaliste trie 1 500 lettres sans connaître les sujets à l'avance. Il remarque que « notice », « montage » et « impossible » reviennent souvent ensemble, et en fait une pile.

1. On compte les mots de chaque texte

Chaque texte devient un sac de mots : l'ordre est oublié, seules les fréquences comptent. Les mots vides (« le », « de ») sont retirés.

2. On suppose des thèmes cachés

Le modèle part d'une hypothèse : chaque texte mélange quelques thèmes, et chaque thème favorise certains mots. On fixe seulement le nombre de thèmes.

3. On ajuste jusqu'à ce que ça colle

L'algorithme répartit mots et textes entre les thèmes jusqu'à expliquer au mieux les fréquences observées. Il rend deux tableaux : les mots de chaque thème, les thèmes de chaque texte.

LE CAS MÉTIER

voix du client · e-commerce / distribution
EN ENTRÉE

1 500 avis clients sans étiquette

Des avis de une à trois phrases, sur la livraison, la qualité, le service après-vente. Personne n'a le temps de les lire un par un.

EN SORTIE

Une carte des sujets qui reviennent

Sur le jeu d'exemple, avec 8 thèmes, des groupes lisibles ressortent : notice et montage, remboursement, couleur et photo, service client, qualité et rapport qualité-prix. Chaque avis reçoit sa part de chaque thème, ce qui permet de compter le volume par sujet.

CE QU'ON MESURE

La relecture humaine avant tout

Il n'y a pas de bonne réponse à laquelle comparer. On vérifie que chaque thème se résume en quelques mots et que les avis qui en relèvent le plus parlent bien de ce sujet. Certains thèmes mélangent deux sujets : on ajuste alors le nombre de thèmes ou les mots vides.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Découvrir les sujets d'un gros volume de textes sans les avoir définis avant
  • Suivre le poids de chaque sujet dans le temps (réclamations par mois, par exemple)
  • Textes de longueur moyenne à longue : emails, comptes rendus, réponses ouvertes
  • Besoin d'une méthode transparente, sans appel à une API externe

NON

  • Catégories déjà connues et quelques centaines d'exemples étiquetés : un classifieur supervisé sera plus fiable
  • Textes de quelques mots (tweets, titres) : trop peu de mots par texte, préférer des embeddings regroupés par clustering
  • Sens fin, négation, ironie : la LDA ne voit que des sacs de mots
  • Résultat attendu sans relecture : les thèmes demandent toujours une validation humaine
LES 4 RÉGLAGES QUI COMPTENT

Le nombre de thèmes et la préparation du texte font l'essentiel. Noms donnés pour R (topicmodels) et Python (scikit-learn).

k / n_components

Le nombre de thèmes. On en teste plusieurs (5, 8, 10, 15) et on garde celui dont les thèmes se lisent le mieux, en s'aidant d'un score de cohérence ou de la perplexité.

Mots vides : stopwords / stop_words

Le réglage le plus rentable. Un mot présent partout (« produit » ici) pollue tous les thèmes. scikit-learn n'a pas de liste française : il faut fournir la sienne.

alpha / doc_topic_prior

Contrôle le nombre de thèmes par document. Petit : chaque texte parle d'un ou deux sujets. topicmodels l'estime par défaut avec la méthode VEM.

Seuils de fréquence : bounds / min_df, max_df

Écarter les mots trop rares (fautes, noms propres isolés) et trop fréquents. Réduit le bruit et accélère le calcul.

LE CODE MINIMAL

jeu d'exemple : avis_clients.csv ↓
# Thèmes des avis clients : LDA en R
library(tm)
library(topicmodels)

avis <- read.csv("avis_clients.csv")
corpus <- VCorpus(VectorSource(avis$texte))

# Matrice avis x mots, sans mots vides ni « produit » (présent partout)
dtm <- DocumentTermMatrix(corpus, control = list(
  tolower = TRUE, removePunctuation = TRUE,
  stopwords = c(stopwords("french"), "produit"),
  bounds = list(global = c(5, Inf))))

# 8 thèmes, graine fixée pour des résultats reproductibles
modele <- LDA(dtm, k = 8, control = list(seed = 42))

# Les 6 mots les plus caractéristiques de chaque thème
print(terms(modele, 6))

# Part des avis dont c'est le thème dominant (en %)
print(round(100 * prop.table(table(topics(modele))), 1))

QUESTIONS FRÉQUENTES

Comment choisir le nombre de thèmes en LDA ?

On entraîne plusieurs modèles avec des nombres de thèmes différents et on compare un score de cohérence, qui mesure si les mots d'un thème apparaissent vraiment ensemble. Le critère final reste la lecture : des thèmes qu'un métier sait nommer et exploiter.

Quelle différence entre LDA topic modeling et analyse discriminante linéaire ?

Aucun rapport, seul le sigle est commun. Latent Dirichlet Allocation trouve des thèmes dans des textes sans étiquettes. Linear Discriminant Analysis est une méthode supervisée de classification sur des données numériques.

LDA ou LLM pour analyser des verbatims clients ?

La LDA est gratuite, rapide, reproductible et tourne en interne, mais ses thèmes sont des listes de mots à interpréter. Un LLM produit des thèmes rédigés et comprend la négation, mais coûte plus cher sur de gros volumes et varie d'un appel à l'autre. Une approche courante : LDA ou clustering pour structurer, LLM pour nommer.

LES ALGOS VOISINS

à comparer avant de choisir
l'alternative rapide

NMF

Factorise la même matrice mots x documents. Souvent des thèmes plus nets sur les textes courts, sans modèle probabiliste.

Voir la fiche →
le sens plutôt que les mots

Embeddings

Des vecteurs qui captent le sens des phrases. Regroupés par clustering, ils donnent des thèmes plus fins sur les textes courts.

Voir la fiche →
pour nommer et résumer

GPT et LLM

Un LLM peut étiqueter les thèmes trouvés ou classer directement les textes. Plus souple, plus coûteux et moins reproductible.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →