Application à la saisie prédictive des SMS — Grand Oral NSI
Nous utilisons tous quotidiennement la saisie prédictive sur nos téléphones. Lorsque nous écrivons un SMS, notre clavier nous propose souvent le mot suivant avant même que nous l'ayons tapé. Par exemple, si j'écris « Je vais », mon téléphone peut me proposer « bien », « faire » ou encore « partir ».
Cela peut donner l'impression que le téléphone comprend ce que nous voulons dire. Dans un modèle simple, il utilise surtout des probabilités calculées à partir d'un grand ensemble de textes appelé corpus.
Cette idée repose notamment sur un modèle mathématique appelé chaîne de Markov.
Une chaîne de Markov est un modèle mathématique développé au début du XXe siècle par le mathématicien russe Andrei Markov.
Son principe repose sur une idée très simple : le futur dépend uniquement de l'état présent et non de l'ensemble du passé. On appelle cela la propriété de Markov.
Imaginons qu'aujourd'hui il fasse beau. On peut estimer qu'il y a 80 % de chances qu'il fasse encore beau demain et 20 % de chances qu'il pleuve. Si aujourd'hui il pleut, on peut imaginer qu'il y a 50 % de chances qu'il pleuve encore demain et 50 % de chances qu'il fasse beau.
| État actuel ↓ / demain → | ☀️ Beau | 🌧️ Pluie |
|---|---|---|
| ☀️ Beau | 80 % | 20 % |
| 🌧️ Pluie | 50 % | 50 % |
Dans ce modèle, les états sont « beau » et « pluie », et les pourcentages représentent les probabilités de transition entre ces états. La chaîne de Markov considère uniquement la situation actuelle. Peu importe le temps qu'il faisait il y a trois jours. Seul l'état du jour est utilisé pour prévoir celui du lendemain.
On peut ranger ces probabilités dans une matrice de transition. C'est utile en informatique : le programme peut accéder directement à la ligne correspondant à l'état actuel, puis comparer les probabilités de tous les états suivants.
Dans le cas de la saisie prédictive, les états ne sont plus des situations météorologiques mais des mots. Chaque mot devient un état, et les transitions représentent les probabilités qu'un mot soit suivi par un autre.
Si l'on analyse des milliers de phrases, on peut observer quels mots apparaissent souvent après un mot donné. Par exemple, le mot « suis » peut être suivi de « content », « prêt » ou « arrivé ».
En comptant le nombre de fois où chaque mot apparaît après une expression, il devient possible de calculer une probabilité conditionnelle :
P(mot suivant | mot actuel) = nombre d'apparitions de la paire ÷ nombre d'apparitions du mot actuel
Par exemple, si « suis » apparaît 100 fois dans le corpus et que « content » le suit 40 fois, le modèle estime P(content | suis) = 40/100 = 40 %.
Imaginons les phrases suivantes :
Le programme remarque que plusieurs mots peuvent suivre le mot « suis » et compte leur fréquence d'apparition.
Lorsque l'utilisateur écrit « je suis », le système peut proposer en priorité les mots ayant les probabilités les plus élevées en consultant les transitions qui partent du dernier mot, « suis ». Les pourcentages de cet exemple sont volontairement inventés : dans un véritable système, ils seraient appris automatiquement à partir du corpus.
Le fonctionnement général est finalement assez simple. Le programme lit le dernier mot saisi par l'utilisateur, consulte sa base de données pour trouver les mots qui suivent habituellement ce mot, récupère les probabilités associées, puis affiche les propositions les plus probables.
Avant de pouvoir proposer un mot, le programme doit apprendre les transitions. Il découpe le corpus en mots, parcourt chaque paire de mots consécutifs et augmente un compteur. Avec « je suis prêt », il enregistre par exemple les transitions « je → suis » puis « suis → prêt ». Les compteurs sont ensuite divisés par leur total afin d'obtenir des probabilités.
Cette méthode est appelée chaîne de Markov d'ordre 1, car la prédiction dépend uniquement du dernier mot observé. On peut également utiliser des chaînes d'ordre supérieur où le système prend en compte plusieurs mots précédents.
Par exemple, la suite « je vais » donnera généralement des prédictions plus précises que le simple mot « vais ». L'intérêt principal de cette méthode est sa simplicité : elle est relativement facile à mettre en œuvre et permet déjà d'obtenir des résultats satisfaisants.
Mais augmenter l'ordre crée aussi un compromis : les prédictions gagnent en précision lorsque la séquence est connue, tandis que la base devient plus grande et que les séquences rares risquent de ne produire aucune suggestion. On parle alors de manque de données.
Les chaînes de Markov ne prennent pas suffisamment en compte le contexte global de la phrase.
Le mot attendu est probablement « pleuvoir ». Pourtant, si le système ne regarde que le dernier mot « va », il risque de proposer des mots qui ne correspondent pas au sens général de la phrase.
Plus une phrase est complexe, plus il est nécessaire de comprendre les relations entre les mots éloignés. Une chaîne de Markov simple ne possède pas cette capacité : elle se concentre uniquement sur les mots les plus proches.
Les chaînes de Markov ne comprennent pas réellement le sens des phrases. Elles utilisent uniquement des statistiques. Elles savent qu'un mot apparaît souvent après un autre, mais elles ne savent pas pourquoi.
C'est pour cette raison que les systèmes modernes utilisent aujourd'hui des techniques beaucoup plus avancées basées sur l'intelligence artificielle et les réseaux de neurones, notamment les Transformers. Ces modèles peuvent analyser un contexte beaucoup plus large. Ils produisent ainsi des prédictions généralement plus précises, même s'ils restent eux aussi des modèles probabilistes et peuvent se tromper.
Enfin, le corpus influence directement le résultat. S'il contient des fautes, un vocabulaire très spécialisé ou des biais, les suggestions pourront les reproduire. La qualité et la diversité des données sont donc aussi importantes que l'algorithme.
Cependant, même si les technologies ont évolué, l'idée fondamentale reste la même : utiliser les probabilités pour estimer ce qui a le plus de chances d'arriver ensuite.
Les chaînes de Markov sont des modèles probabilistes qui permettent de prédire un état futur à partir de l'état présent.
Dans le domaine de la saisie prédictive des SMS, elles analysent les fréquences d'apparition des mots afin de proposer le mot suivant le plus probable.
Grâce à leur simplicité, elles constituent une méthode historique et pédagogique importante pour comprendre la prédiction de texte. Même si les systèmes actuels utilisent surtout des modèles d'intelligence artificielle plus complexes, elles restent un excellent exemple de la manière dont les probabilités peuvent être utilisées pour modéliser et prévoir des comportements futurs.
« Derrière une fonction que nous utilisons tous les jours sur nos smartphones se cache un concept mathématique et informatique vieux de plus d'un siècle, qui a contribué au développement des technologies d'intelligence artificielle actuelles. »
Je vous remercie de votre attention.
Je suis prêt à répondre à vos questions.