SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
Traitement automatique du langage naturel
(TALN)
NATURAL LANGUAGE PROCESSING
(NLP)
juillet 2020
JAOUAD DABOUNOU
FST de Settat
Université Hassan 1er
Centre CLIK
Modèles N-gramme
YOUTUBE : https://youtube.com/playlist?list=PLzjg2z2kYUrh_RIcPUN2J7UyFBvZu2z_L
NLP: Définition
2
Le Traitement du langage naturel (TLN ou NLP) : ensemble des approches statistiques, probabilistes
ou neuronales (deep learning) pour comprendre et manipuler le langage naturel.
Construire des modèles capables d’interpréter du texte à travers les régularités et structures de
données textuelles d’un corpus, au lieu de simplement intégrer les règles et connaissances
préétablies.
J. DABOUNOU - FST DE SETTAT
NLP: Applications
3
• Recherche d’information : Analyse d’opinions, de questionnaires
• Analyse de sentiments
• Traduction automatique
• Résumé de textes
• Classification de documents
• Moteurs de recherche
• Construction de bases de connaissances / ontologies
• Génération de texte
• Nouvelles interfaces : Conversation(Chatbots), Speech recognition, Text to speach,…
• Domaines d’application : Services, enseignement, médecine, marketing,…
J. DABOUNOU - FST DE SETTAT
NLP: Applications
4
Nous allons par la suite présenter des modèles de langue puissants qui sont désormais utilisés dans :
• La traduction automatique
Traduire en Français : « ‫الكبير‬ ‫المغرب‬ ‫بلدان‬ ‫تنمية‬ »
Donne : « Développement des pays du Maghreb »
Et non « Développement des pays du grand coucher » et non encore « Développement des pays du grand
Maroc »
• La correction d’erreur typographique
« Je me promène dans le forêt et je garde les arbres »
• La complétion de texte
« L’élève a ouvert son cartable et a sorti son … »
« L’arbitre a estimé que le …. a porté trop haut son …. »
J. DABOUNOU - FST DE SETTAT
NLP: Applications
5
Utilisation (suite)
Un modèle de langue est aussi utilisé dans:
• Les moteurs de recherche,
• La création de profils,
• La reconnaissance d’écriture manuscrite, de la parole, …
• L’identification d’auteurs, de thèmes,…
• Analyse de la sémantique des phrases,
• La détection d'opinions et l’analyse des sentiments,
• Le résumé automatique d’un document,
• La détection de spam
J. DABOUNOU - FST DE SETTAT
Espace des sémantiques
6
Comment
transformer la crise
en opportunité ?
B A
B doit mobiliser son espace des sémantiques pour comprendre
(se représenter) la signification de la phrase.
B a construit son espace des sémantiques, en particulier, à travers son expérience
langagière dans son contexte familial, social et culturel.
Espace des sémantiques
Représentation simplificatrice
J. DABOUNOU - FST DE SETTAT
Espace des sémantiques
7
Comment
transformer la crise
en opportunité ?
B A
Comment doter une machine B d’un espace des sémantiques pour lui
permettre de « comprendre (se représenter) » la signification de la phrase ?
Nous pouvons construire l’espace des sémantiques de la machine B à l’aide d’un corpus. travers son
expérience langagière dans son contexte familiale, social et culturel.
Espace des sémantiques
Modèle simplifié
J. DABOUNOU - FST DE SETTAT
Modèles de langue
8
Le concept de modèle de langue est central dans les approches de NLP.
Nous allons essayer de répondre à de nombreuses questions, comme :
- A quoi peut servir une distributions de probabilité sur une langue ?
- Comment concevoir une telle distribution ?
- Comment la construire ?
- Comment la tester et évaluer sa performance ?
- Comment représenter des mots, que nous utilisons pour nous exprimer, en des nombres,
que les machines savent manipuler ?
J. DABOUNOU - FST DE SETTAT
Modèles de langue
9
Définition
Un modèle de langue est, souvent de manière implicite :
• Une représentation de la manière dont se construit le sens dans une langue,
• Des régularités et structures linguistiques utilisées pour s’exprimer et communiquer dans
une langue.
• Un ensemble de normes, cultures et habitudes langagières partagées par une
communauté qui s’exprime dans une langue donnée.
• Il s’agit aussi, en particulier, de convertir le sens en données numériques que les machines
pourront traiter.
• Un modèle de langue détermine la probabilité qu’une séquence de mots soit dans cette
langue. Il définit ainsi une distribution de probabilité sur une langue.
J. DABOUNOU - FST DE SETTAT
Corpus de texte pour le NLP
10
Les modèles de langue seront créés automatiquement à travers l’observation de corpus.
Entrainer le modèle sur beaucoup de données.
Donc utilisation de corpus.
Un corpus de texte est une collection de ressources textuelles.
De nombreux corpus sont disponibles en anglais, beaucoup moins dans les autres langues.
Grand manque pour certaines langues comme l’arabe.
J. DABOUNOU - FST DE SETTAT
Corpus de texte pour le NLP
De nombreux corpus sont disponibles, comme :
- Brown Corpus
- Wall Street Journal
- Shakespeare corpus
- AP news
- EuroParlement,
- TOEFL 2000
- …
En plus de
- wikipédia
Les corpus utilisés pour entrainer un modèle sont appelés corpus d’apprentissage (training corpus).
On utilise d’autres corpus, ou on divise le même corpus, pour avoir en tout :
• Un corpus d’entrainement : pour estimer les paramètres du modèle
• Un corpus de validation : pour affiner les paramètres du modèle
• Un corpus de test : pour évaluer la performance du modèle.
J. DABOUNOU - FST DE SETTAT 11
Modèles de langue
12
Pourquoi définir une distribution de probabilité sur une langue :
Prédire le mot suivant :
Marrakech ville rouge climat sec
J. DABOUNOU - FST DE SETTAT
Modèles de langue
13
Pourquoi définir une distribution de probabilité sur une langue :
Prédire le mot suivant :
Marrakech ville rouge climat sec
J. DABOUNOU - FST DE SETTAT
Modèles de langue
14
Pourquoi définir une distribution de probabilité sur une langue :
Prédire le mot suivant :
Marrakech ville rouge climat sec
J. DABOUNOU - FST DE SETTAT
Modèles de langue
15
Pourquoi définir une distribution de probabilité sur une langue :
Prédire le mot suivant :
Marrakech ville rouge climat sec
J. DABOUNOU - FST DE SETTAT
Modèles de langue
16
Pourquoi définir une distribution de probabilité sur une langue :
Prédire le mot suivant :
Marrakech ville rouge climat sec
J. DABOUNOU - FST DE SETTAT
P(sec | Marrakech ville rouge climat)>P(voiture | Marrakech ville rouge climat)
P(sec | Marrakech ville rouge climat)>P(tagine | Marrakech ville rouge climat)
P(sec | Marrakech ville rouge climat)>P(idée | Marrakech ville rouge climat)
Modèles de langue
17
Un modèle de langue c’est : prédire les mots d’une phrases, l’un à la suite de l’autre, ou évaluer la probabilité
des séquences de mots dans une langue.
Soit V le vocabulaire construit à partir d’un corpus d’entrainement (auquel on peut ajouter quelques mots
spéciaux).
On considère  l’ensemble des séquences de mots construites à partir de V.
Un évènement  désigne une partie de .
Une probabilité P sur  est définie par :
1. Tout évènement   possède une probabilité P() telle que 0  P()  1
2. L’évènement nul ∅ possède une probabilité nulle : P(∅)=0.
3. Pour toute partition (i) de , c’est-à-dire telle que i i =  et  i i = ∅ ,
i
P(i) = 1
J. DABOUNOU - FST DE SETTAT
Modèles de langue probabilistes
Le sens d’un mot est déterminé par le contexte de son utilisation, donc à travers les mots qui l’accompagnent dans une
séquence.
Chaque phrase a une probabilité d'apparition dans l'ensemble des phrases possibles, constituées des mots d’une langue.
Un modèle de langue est défini par une distribution de probabilités sur des séquences de mots : P(S) = P(w1,w2,w3,…,wn)
On a par exemple:
P(Omar est un intelligent enfant) < P(Omar est un enfant intelligent)
ou en traduction automatique :
P(Développement des pays du Grand Maghreb) > P(Développement des pays du grand coucher)
et en Speech to Text :
P(La liberté est un trésor donné qu'il faut savoir apprécier) > P(La liberté est un très ordonné qu'il faut savoir apprécier)
P(Marrakech Poisson tricoter) et P(apprécier savoir faut ) doivent être égales, ou presque, à 0.
J. DABOUNOU - FST DE SETTAT 18
Modèles de langue et probabilités conditionnelles
19
Sans hypothèses supplémentaires, la seule manière de construire un modèle de langue serait d’écrire :
P(w1, w2, . . . ,wn) =
Count(w1, w2, . . . ,wn)
nseq
, nseq étant le nombre de séquences dans le corpus.
On a : P(w1, w2, . . . , wn) = P(w1, w2, . . . , wn-1) P(wn | w1, w2, . . . , wn-1)
Règle de la chaîne (chain rule) :
On note souvent w1
n
= (w1, w2, . . . , wn)
P(S) = P (w1
n
) = P(w1) P(w2|w1) P(w3|w1
2
) … P(wn|w1
n−1
)
P(S) = P(w1)
k=2,n
P(wk|w1
k−1
)
P(wk|w1
k−1
) désigne la probabilité d’apparition du mot wk à la suite de la séquence de mots w1
k−1
et on a :
P(wk|w1
k−1
) =
P(w1
k−1
,wk)
P(w1
k−1
)
, P(wk|w1
k−1
) étant la probabilité conditionnelle.
J. DABOUNOU - FST DE SETTAT
Historique
ou contexte
Mot
suivant
La probabilité jointe est
décomposée en un produit de
probabilités conditionnelles
Entrainer un modèle de langue
20
Pour estimer les probabilités jointes P(wk|w1
k−1
), on utilise un corpus d’entrainement Ctrain et on a:
P(wk|w1
k−1
) =
Count(w1
k−1
,wk)
Count(w1
k−1
)
Par convention pour le dénominateur, Count() = ntrain, nombre total des mots du corpus Ctrain.
C’est une estimation du maximum de vraisemblance, c’est-à-dire faire en sorte que les séquences les plus
fréquentes dans le corpus aient une probabilité maximale dans le modèle.
En particulier, si à chaque fois, la séquence w1
k−1
est suivie de wk, alors P(wk|w1
k−1
) = 1.
On a ainsi, par exemple :
P(Pays du Grand Maghreb) = P(Pays) P(du|Pays) P(Grand|Pays du) P(Maghreb|Pays du Grand)
P(Grand|Pays du) =
Count(Pays du Grand)
Count(Pays du)
J. DABOUNOU - FST DE SETTAT
Compter les occurrences dans
un corpus de grande taille
Modèles N-gramme
21
Calcul des probabilités jointes P(S) = P(w1,w2,w3,…,wn), S = (w1,w2,w3,…,wn) séquence d’un corpus.
Hypothèse de Markov : On peut prédire l’état futur en utilisant un historique assez faible, ici d’ordre N-1.
On utilise l’occurrence d’une séquence de N mots consécutifs dans un corpus : Fréquence d’un N-gramme.
P(wn|w1
n−1
)  P(wn |wn−N+1
n−1
)
Ainsi, si N=2, on dit alors que le modèle est bigramme, on a :
P(wn|w1
n−1
)  P(wn |wn−1)
Et donc P(Grand|Pays du) = P(Grand|du)
La probabilité d’avoir le n-ième mot dépend seulement du mot précédent, et non de tous les mots précédents.
J. DABOUNOU - FST DE SETTAT
Modèles N-gramme
22
Selon la valeur de N, on a les modèles :
Unigramme : N=1 (pas de contexte), chaque mot est considéré individuellement
Exemple: « Faculté »
Bigramme : N=2, le contexte d’un mot est défini par le mot qui le précède
Exemple: « Sciences Mathématiques »
Trigramme : N=3, le contexte d’un mot est défini par le couple de mots qui le précèdent
Exemples: « Marrakech est connue », « est connue par » et « son climat chaud »
Modèle N-gramme : la probabilité d’apparition d’un mot peut être estimée à partir des N-1 mots qui le précèdent.
Ces N-1 mots définissent ainsi le contexte du mot en question.
On peut aussi choisir N=4 ou N=5. Les probabilités deviennent très petites avec N trop grand.
J. DABOUNOU - FST DE SETTAT
Entrainer un modèle N-gramme
23
On note Ctrain le corpus d'entrainement extrait du corpus textuel de départ.
Maximiser la log-vraisemblance :
LL(Ctrain) =
SCtrain
log(
k=1,nS
P(wk|wk−N+1
k−1
))
Les paramètres sont ici, pour chaque séquence S de n mots:
P(w1), P(w2|w1),…,P(wn|wn-N+1,…, wn-2, wn-1)
L'estimation du maximum de vraisemblance permet le calcul de ces paramètres du modèle.
On montre que :
P(wk|wk−N+1
k−1
) =
Count(wk−N+1
k−1
,wk)
Count(wk−N+1
k−1
)
J. DABOUNOU - FST DE SETTAT
Paramètres pour un modèle N-gramme
24
Pour entrainer un modèle N-gramme sur un corpus d’apprentissage Ctrain possédant le vocabulaire V, (V
types de mots) on aura:
Pour un modèle unigramme : |V| paramètres
Pour un modèle bigramme : |V|2
paramètres
Pour un modèle trigramme : |V|3
paramètres
Pour un modèle N-gramme : |V|N
paramètres
|V| est souvent très grand. Il peut être de l’ordre de 104 à plus de 106.
J. DABOUNOU - FST DE SETTAT
Modèles N-gramme: Exemple
25
Considérons le corpus d’entrainement :
Marrakech ville rouge climat sec
Marrakech ville ocre
Ville Marrakech climat chaud sec
Le vocabulaire est constitué de l’ensemble V={Marrakech, ville, rouge, climat, sec, ocre, chaud}
Le nombre de mots (tokens) dans le corpus (sans les caractères spéciaux) sera noté m. Dans l’exemple m=13.
Les N-grammes que l’on retrouve dans le corpus pour n=1,2 et 3 sont:
• Unigrammes: V={Marrakech, ville, rouge, climat, sec, ocre, chaud}
• Bigrammes: {(marrakech,ville), (ville,rouge ), (rouge,climat), (climat,sec), (ville,ocre), (ville,marrakech),
(marrakech,climat), (climat,chaud), (chaud,sec) }
• Trigrammes: {(marrakech,ville,rouge), (ville,rouge,climat), (rouge,climat,sec), (marrakech,ville,ocre),
(ville,marrakech,climat ), (marrakech,climat,chaud), (climat,chaud,sec)}
J. DABOUNOU - FST DE SETTAT
Modèle bigramme: Exemple
26
Pour le modèle bigramme:
P(wk|wk−1) =
Count(wk−1,wk)
Count(wk−1)
On a le tableau du nombre d’unigrammes pour chaque mot dans le corpus Count(wk−1) :
On a aussi le tableau du nombre de bigrammes dans le corpus Count(wk−1,wk) :
J. DABOUNOU - FST DE SETTAT
Marrakech ville rouge climat sec ocre chaud
3 3 1 2 2 1 1
Marrakech ville rouge climat sec ocre chaud
Marrakech 0 2 0 1 0 0 0
ville 1 0 1 0 0 1 0
rouge 0 0 0 1 0 0 0
climat 0 0 0 0 1 0 1
sec 0 0 0 0 0 0 0
ocre 0 0 0 0 0 0 0
chaud 0 0 0 0 1 0 0
Corpus :
Marrakech ville rouge climat sec
Marrakech ville ocre
Ville Marrakech climat chaud sec
Modèle bigramme: Exemple
27J. DABOUNOU - FST DE SETTAT
Le tableau de probabilités des bigrammes est alors créé à l'aide de la relation : P(wk|wk−1) =
Count(wk−1,wk)
Count(wk−1)
Marrakech ville rouge climat sec ocre chaud Total
Marrakech 0 0.67 0 0.33 0 0 0 1
ville 0.33 0 0.33 0 0 0.33 0 1
rouge 0 0 0 1 0 0 0 1
climat 0 0 0 0 0.5 0 0.5 1
sec 0 0 0 0 0 0 0 0
ocre 0 0 0 0 0 0 0 0
chaud 0 0 0 0 1 0 0 1
Cette manière de procéder présente au moins deux inconvénients:
1. Les mots "sec" et "chaud" n’apparaissent dans aucun bigramme. Ils ont une probabilité totale égale à 0 au lieu de 1.
2. Le modèle ne tient pas compte du fait que le mot ville se trouve en début de phrase et que les mots "sec" et "chaud"
se trouvent en fin de phrase.
Pour tout k  V
(pour tous les mots du vocabulaire)
z
P(z|wk−1) =
z
Count(wk−1,z)
w Count(wk−1,w)
= z Count(wk−1,z)
w Count(wk−1,w)
= 1
Modèle bigramme: Exemple
28J. DABOUNOU - FST DE SETTAT
On introduit les caractères spéciaux <s> pour début de séquence et </s> pour fin de séquence.
<s>Marrakech ville rouge climat sec</s>
<s>Marrakech ville ocre</s>
<s>Ville Marrakech climat chaud sec</s>
On obtient alors :
Marrakech ville rouge climat sec ocre chaud </s> Total
<s> 2 1 0 0 0 0 0 0 3
Marrakech 0 2 0 1 0 0 0 0 3
ville 1 0 1 0 0 1 0 0 3
rouge 0 0 0 1 0 0 0 0 1
climat 0 0 0 0 1 0 1 0 2
sec 0 0 0 0 0 0 0 2 2
ocre 0 0 0 0 0 0 0 1 1
chaud 0 0 0 0 1 0 0 0 1
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
Tableau de probabilités des bigrammesTableau du nombre de bigrammes
Les caractères spéciaux <s> et </s> doivent être ajoutés V, ensemble des types de mots (vocabulaire) du corpus
d'entrainement.
Modèle bigramme : Probabilité d'une séquence
29J. DABOUNOU - FST DE SETTAT
On a pour S = (w1,w2,w3,…,wn), P(S) = P(w1) P(w2|w1)…P(wn|wn-N+1,…, wn-2, wn-1).
Dans un modèle bigramme :
P(S) =
k=1,n
P(wk|wk−1)
Donc pour les séquences qui composent notre corpus :
P(Marrakech ville rouge climat sec) =
= P(Marrakech|<s>) P(ville|Marrakech) P(rouge|ville) P(climat|rouge) P(sec|climat) P(</s>| sec)
= 0.67 x 0.67 x 0.33 x 1 x 0.5 x 0.67 = 0.0496259
P(Marrakech ville ocre) =
= P(Marrakech|<s>) P(ville|Marrakech) P(ocre|ville) P(</s>|ocre)
= 0.67 x 0.67 x 0.33 x 1 = 0.148137
P(Ville Marrakech climat chaud sec) =
= P(Ville|<s>) P(Marrakech|Ville) P(climat|Marrakech) P(chaud|climat) P(sec|chaud) P(</s>| sec)
= 0.33 x 0.33 x 0.33 x 0.5 x 1 x 1 = 0.0179685
Modèle bigramme : Probabilité d'une séquence
30J. DABOUNOU - FST DE SETTAT
Séquence "Ville rouge climat chaud sec"
P(Ville rouge climat chaud sec) =
= P(Ville|<s>) P(rouge|ville) P(climat|rouge) P(chaud|climat) P(sec|chaud) P(</s>| sec)
= 0.33 x 0.33 x 1 x 0.5 x 1 x 1 = 0.05445
On calcule maintenant la probabilité de la séquence "Marrakech ocre climat chaud sec"
P(Marrakech ocre climat chaud sec) =
= P(Marrakech|<s>) P(ocre|Marrakech) P(climat|ocre) P(chaud|climat) P(sec|chaud) P(</s>| sec)
= 0
Du fait que P(ocre|Marrakech) = 0. En effet, le bigramme (Marrakech,ocre) ne se trouve pas dans le corpus.
On vérifie aussi que l'on a
6 x P(Marrakech ville rouge climat sec) + 4 x P(Marrakech ville ocre) + 6 x P(Ville Marrakech climat chaud sec) = 1.
Ce résultat va être démontré dans le cas général par la suite.
Modèle trigramme: Exemple
31
Pour le modèle trigramme, on ajoute deux fois le caractère spécial <s> au début de chaque séquence et une fois le
caractère spécial </s> à la fin de chaque séquence.
Les séquences du corpus deviendront alors :
<s><s>Marrakech ville rouge climat sec</s>
<s><s>Marrakech ville ocre</s>
<s><s>Ville Marrakech climat chaud sec</s>
Les trigrammes de ce corpus deviennent ainsi :
Trigrammes: {(<s>,<s>,marrakech),(<s>,marrakech,ville),(marrakech,ville,rouge), (ville,rouge,climat), (rouge,climat,sec),
(climat,sec,</s>),(marrakech,ville,ocre), (ville,ocre,</s>),(<s>,<s>,ville),(<s>,ville,marrakech),(ville,marrakech,climat),
(marrakech,climat,chaud),(climat,chaud,sec),(chaud,sec,</s>)}
J. DABOUNOU - FST DE SETTAT
Modèle trigramme: Exemple
32
On a aussi le tableau du nombre de trigrammes dans le corpus Count(wk−1,wk) :
On obtient le tableau des probabilités des trigrammes en divisant chaque élément du tableau du nombre de trigrammes
par le total correspondant. Exemple :
P(ville|<s>,marrakech) =
Count(<s>,marrakech,ville)
Count(<s>,marrakech)
=
2
2
= 1
P(marrakech|<s><s>) =
Count(<s>,<s>,marrakech)
Count(<s>,<s>)
=
2
3
L'intérêt des modèles trigrammes apparait dans le cas, plus réaliste, de corpus de grande taille.
J. DABOUNOU - FST DE SETTAT
Marrakech ville rouge climat sec ocre chaud </s> Total
(<s>,<s>) 2 1 0 0 0 0 0 0 3
(<s>,marrakech) 0 2 0 0 0 0 0 0 2
(marrakech,ville) 0 0 1 0 0 1 0 0 2
(ville,rouge) 0 0 0 1 0 0 1 0 1
(rouge,climat) 0 0 0 0 1 0 0 0 1
(climat,sec) 0 0 0 0 0 0 0 1 1
(ville,ocre) 0 0 0 0 0 0 0 1 1
(<s>,ville) 1 0 0 0 0 0 0 0 1
(ville,marrakech) 0 0 0 0 0 1 0 0 1
(marrakech,climat) 0 0 0 0 0 0 1 0 1
(climat,chaud) 0 0 0 0 1 0 0 0 1
(chaud,sec) 0 0 0 0 0 0 0 1 1
Corpus :
<s><s>Marrakech ville rouge climat sec</s>
<s><s>Marrakech ville ocre</s>
<s><s>Ville Marrakech climat chaud sec</s>
Modèles 4-grammes,…
33J. DABOUNOU - FST DE SETTAT
Pour le modèle 4-gramme, on ajoute trois fois le caractère spécial <s> au début de chaque séquence et une fois le
caractère spécial </s> à la fin de chaque séquence.
Les séquences du corpus deviendront alors :
<s><s><s>Marrakech ville rouge climat sec</s>
<s><s><s>Marrakech ville ocre</s>
<s><s><s>Ville Marrakech climat chaud sec</s>
Les 4-grammes de ce corpus deviennent ainsi :
4-grammes: {(<s>,<s>,<s>,marrakech),(<s>,<s>,marrakech,ville),(<s>,marrakech,ville,rouge),
(marrakech,ville,rouge,climat), (ville,rouge,climat,sec), (rouge,climat,sec,</s>),(<s>,marrakech,ville,ocre),
(marrakech,ville,ocre,</s>),(<s>,<s>,<s>,ville),(<s>,<s>,ville,marrakech),(<s>,ville,marrakech,climat),
(ville,marrakech,climat,chaud),(marrakech,climat,chaud,sec),(climat,chaud,sec,</s>)}
P(ville|<s><s>marrakech) =
Count((<s>,<s>,marrakech,ville))
Count((<s>,<s>,marrakech))
=
2
2
= 1
Modèle bigramme: Générer une séquence
34J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
Modèle bigramme: Générer une séquence
35J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%).
Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence.
Ville ……………………………… P(Ville|<s>) = 0.33
Modèle bigramme: Générer une séquence
36J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%).
Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il
pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des
mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville".
Ville ……………………………… P(Ville|<s>) = 0.33
Ville rouge …………………… P(rouge|ville) = 0.33
Modèle bigramme: Générer une séquence
37J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%).
Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il
pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des
mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul
choix, le mot "climat".
Ville ……………………………… P(Ville|<s>) = 0.33
Ville rouge …………………… P(rouge|ville) = 0.33
Ville rouge climat…………. P(climat|rouge) = 1
Modèle bigramme: Générer une séquence
38J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%).
Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il
pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des
mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul
choix, le mot "climat". Ensuite, le modèle pourra choisir entre les mots "sec", "chaud" avec une probabilité de 50%
pour chacun des mots. Supposons qu'il choisit le mot "chaud".
Ville ……………………………… P(Ville|<s>) = 0.33
Ville rouge …………………… P(rouge|ville) = 0.33
Ville rouge climat…………. P(climat|rouge) = 1
Ville rouge climat chaud………. P(chaud|climat) = 0.5
Modèle bigramme: Générer une séquence
39J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%).
Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il
pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des
mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul
choix, le mot "climat". Ensuite, le modèle pourra choisir entre les mots "sec", "chaud" avec une probabilité de 50%
pour chacun des mots. Supposons qu'il choisit le mot "chaud". Après "chaud" le modèle n'a qu'un seul choix, le mot
"sec".
Ville ……………………………… P(Ville|<s>) = 0.33
Ville rouge …………………… P(rouge|ville) = 0.33
Ville rouge climat…………. P(climat|rouge) = 1
Ville rouge climat chaud………. P(chaud|climat) = 0.5
Ville rouge climat chaud sec…. P(sec|chaud) = 1
Modèle bigramme: Générer une séquence
40J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%).
Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il
pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des
mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul
choix, le mot "climat". Ensuite, le modèle pourra choisir entre les mots "sec", "chaud" avec une probabilité de 50%
pour chacun des mots. Supposons qu'il choisit le mot "chaud". Après "chaud" le modèle n'a qu'un seul choix, le mot
"sec". Après le mot "sec" le modèle ne peut que terminer la séquence par </s>.
Ville ……………………………… P(Ville|<s>) = 0.33
Ville rouge …………………… P(rouge|ville) = 0.33
Ville rouge climat…………. P(climat|rouge) = 1
Ville rouge climat chaud………. P(chaud|climat) = 0.5
Ville rouge climat chaud sec…. P(sec|chaud) = 1
Ville rouge climat chaud sec. P(</s>|sec) = 1
Modèle bigramme: Générer une séquence
41J. DABOUNOU - FST DE SETTAT
En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots.
Marrakech ville rouge climat sec ocre chaud </s>
<s> 0.67 0.33 0 0 0 0 0 0
Marrakech 0 0.67 0 0.33 0 0 0 0
ville 0.33 0 0.33 0 0 0.33 0 0
rouge 0 0 0 1 0 0 0 0
climat 0 0 0 0 0.5 0 0.5 0
sec 0 0 0 0 0 0 0 1
ocre 0 0 0 0 0 0 0 1
chaud 0 0 0 0 1 0 0 0
Il est ainsi probable que le modèle génère la séquence
<s>Ville rouge climat chaud sec</s>
On peut d'ailleurs calculer la probabilité d'obtenir cette séquence :
P(<s>Ville rouge climat chaud sec</s>) = 0.33 x 0.33 x 1 x 0.5 x 1 x 1 = 0,05445
Le résultat final peut s’avérer sous-optimal.
Ville ……………………………… P(Ville|<s>) = 0.33
Ville rouge …………………… P(rouge|ville) = 0.33
Ville rouge climat…………. P(climat|rouge) = 1
Ville rouge climat chaud………. P(chaud|climat) = 0.5
Ville rouge climat chaud sec…. P(sec|chaud) = 1
Ville rouge climat chaud sec. P(</s>|sec) = 1
Chaine de Markov et modèle N-gramme
42J. DABOUNOU - FST DE SETTAT
Une chaîne de Markov avec des probabilités de transition pour ce corpus ressemblerait alors à :
On sous-entend dans ce graphe qu’un mot, à l’exception du mot spécial </s> ne peut pas être suivi par lui-
même.
Marrakech ville
0.67
<s>
0.67
0.33
0.33
rouge
0.33
climat
0.33
1
chaud
0.5
sec 1
ocre 1
0.33
</s>
1
0.5
Evaluer un modèle N-gramme
43
On utilise un corpus (ou des corpora) de test et on évalue dessus le modèle.
Le corpus de test est composé de données non utilisées dans l’entrainement du modèle.
Un bon modèle de langue est celui qui attribue une grande probabilité aux séquences réelles courantes dans le
langage et correctement structurées et de faibles probabilités à celles rarement utilisées ou incorrectement
structurées.
Il y a deux méthodes pour évaluer un modèle de langue:
• Evaluation extrinsèque (appelée aussi évaluation in vivo) : intégrer le modèle dans une application et mesurer
la performance totale de l'application. Cette application peut concerner la traduction automatique, la
reconnaissance de la parole, l'analyse de sentiments,… L’évaluation extrinsèque est très coûteuse en temps et
en ressources.
• Evaluation intrinsèque : utilise les propriétés du modèle de langue sans chercher à l’appliquer à une tâche
particulière. On va ici utiliser la perplexité pour évaluer le modèle de langue.
J. DABOUNOU - FST DE SETTAT
Perplexité des modèles N-gramme
44
La métrique de perplexité permet de mesurer le degré d’incertitude d’un modèle pour prédire, donc attribuer des
probabilités, à un texte.
Réduire l’incertitude correspond à diminuer la perplexité, ou encore l’entropie introduite par Shannon.
Un bon modèle de langue doit créer une séquence significative en plaçant un mot en fonction des valeurs de
probabilité conditionnelle qui ont été attribuées à l'aide du corpus d'apprentissage.
Par conséquent, la capacité d'un modèle de langage à prédire le mot suivant et donc à créer une phrase
significative est affirmée par la valeur de perplexité attribuée au modèle de langue sur un corpus de tests.
On va utiliser les séquences suivantes, qui constituent donc le corpus de test Ctest, pour illustrer cette notion :
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
J. DABOUNOU - FST DE SETTAT
Comprendre la notion de perplexité
45
On ôte le dernier mot de chacune des trois séquences et on demande au modèle entrainé de les prédire.
Entre deux modèles entrainés, le meilleur est celui qui va attribuer, en moyenne, une plus grande probabilité aux
mots que nous venons d'ôter.
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
J. DABOUNOU - FST DE SETTAT
Maghreb : 0.125
Atlas : 0.125
Atlantique : 0.125
Continent : 0.125
Sahara : 0.125
Occident : 0.125
Monde : 0.125
empire : 0.125
Maghreb : 0.65
Atlas : 0.1
Atlantique : 0.08
Continent : 0.05
Sahara : 0.04
Occident : 0.04
Monde : 0.03
empire : 0.01
P(𝐰 𝟏
𝐧
)
Comprendre la notion de perplexité
46
Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue
respectifs ML1 et ML2 :
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
J. DABOUNOU - FST DE SETTAT
Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue
ML1 et ML2 :
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
Maghreb : 0.125
Atlas : 0.125
Atlantique : 0.125
Continent : 0.125
Sahara : 0.125
Occident : 0.125
Monde : 0.125
empire : 0.125
• Mauvaise prédiction
• Beaucoup d’incertitude
• Perplexité maximale
Maghreb : 0.65
Atlas : 0.1
Atlantique : 0.08
Continent : 0.05
Sahara : 0.04
Occident : 0.04
Monde : 0.03
empire : 0.01
• Bonne prédiction
• Moins d’incertitude
• Perplexité réduite
Comprendre la notion de perplexité
47J. DABOUNOU - FST DE SETTAT
P(𝐰 𝟏
𝐧
)
Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue
ML1 et ML2 :
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
Maghreb : 0.65
Atlas : 0.1
Atlantique : 0.08
Continent : 0.05
Sahara : 0.04
Occident : 0.04
Monde : 0.03
empire : 0.01
• Bonne prédiction
• Moins d’incertitude
• Perplexité réduite
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 1.83
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 3.56
Maghreb : 0.125
Atlas : 0.125
Atlantique : 0.125
Continent : 0.125
Sahara : 0.125
Occident : 0.125
Monde : 0.125
empire : 0.125
• Mauvaise prédiction
• Beaucoup d’incertitude
• Perplexité maximale
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 𝟑
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 𝟖
Comprendre la notion de perplexité
48J. DABOUNOU - FST DE SETTAT
P(𝐰 𝟏
𝐧
)
• Le modèle prédit bien
• Entropie faible : 1.83 bits
• Perplexité : 3.56 mots
• Le modèle est perplexe
• Entropie grande
(maximale) : 3bits
• Perplexité : 8 mots
Maghreb : 0.65
Atlas : 0.1
Atlantique : 0.08
Continent : 0.05
Sahara : 0.04
Occident : 0.04
Monde : 0.03
empire : 0.01
• Bonne prédiction
• Moins d’incertitude
• Perplexité réduite
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 1.83
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 3.56
Maghreb : 0.125
Atlas : 0.125
Atlantique : 0.125
Continent : 0.125
Sahara : 0.125
Occident : 0.125
Monde : 0.125
empire : 0.125
• Mauvaise prédiction
• Beaucoup d’incertitude
• Perplexité maximale
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 𝟑
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 𝟖
Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue
ML1 et ML2 :
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
Comprendre la notion de perplexité
49J. DABOUNOU - FST DE SETTAT
P(𝐰 𝟏
𝐧
)
Maghreb : 0.125
Atlas : 0.125
Atlantique : 0.125
Continent : 0.125
Sahara : 0.125
Occident : 0.125
Monde : 0.125
empire : 0.125
Comprendre la notion de perplexité
50
Pour le modèle de langue ML1 :
Les probabilités pour les 8 mots sont égales (0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125). Situation
équivalente à un dé de 8 faces non truqué. Ce modèle a une perplexité de 8. L'entropie est égale à 3. On a besoin
de 3 bits pour représenter l'information.
J. DABOUNOU - FST DE SETTAT
P(𝐰 𝟏
𝐧
)
• Bonne prédiction
• Moins d’incertitude
• Perplexité réduite
• Le modèle est perplexe
• Entropie grande
(maximale) : 3bits
• Perplexité : 8 mots
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 𝟑
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 𝟖
Le Maroc est un pays du Grand Maghreb.
Comprendre la notion de perplexité
51
Pour le modèle de langue ML2 :
Les probabilités pour les 8 mots sont différentes (0.65, 0.1, 0.08, 0.05, 0.04, 0.04, 0.03, 0.01). Situation
équivalente à un dé de 8 faces truqué. Le modèle attribue au mot Maghreb une probabilité de 0.65. Ce modèle a
une perplexité de 3.56. L'entropie est égale à 1.83. On a besoin de 1.83 bits pour représenter l'information.
J. DABOUNOU - FST DE SETTAT
Maghreb : 0.65
Atlas : 0.1
Atlantique : 0.08
Continent : 0.05
Sahara : 0.04
Occident : 0.04
Monde : 0.03
empire : 0.01
P(𝐰 𝟏
𝐧
)
• Bonne prédiction
• Moins d’incertitude
• Perplexité réduite
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 1.83
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 𝟑. 𝟓𝟔
• Le modèle prédit bien
• Entropie faible : 1.83 bits
• Perplexité : 3.56 mots
Le Maroc est un pays du Grand Maghreb.
Comprendre la notion de perplexité
52
Dans le cas extrême où le modèle prédit le mot Maghreb avec certitude, c’est-à-dire :
Les probabilités pour les 8 mots sont (1, 0, 0, 0, 0, 0, 0, 0). Situation équivalente à un dé de 8 faces toutes
numérotées 1. Le modèle attribue au mot Maghreb une probabilité de 1. Ce modèle a une perplexité de 1.
L'entropie est égale à 0. Il n'y a aucune incertitude sur le mot suivant, donc le nombre de bits nécessaires pour le
connaitre est nul.
J. DABOUNOU - FST DE SETTAT
P(𝐰 𝟏
𝐧
)
• Prédiction exacte
• Pas d’incertitude
• Perplexité minimale
• Entropie :
H(w1
n
) = −
k=1,n
P(w1
n
) log2 P(w1
n
) = 0
• Perplexité :
PP(w1
n
) = 2H(w1
n) = 𝟏
• Le modèle prédit bien avec certitude
• Entropie nulle : 0 bits
• Perplexité : 1 mots
Maghreb : 1
Atlas : 0
Atlantique : 0
Continent : 0
Sahara : 0
Occident : 0
Monde : 0
empire : 0
Remarque : Si P(w1
n
)=0, on pose P(w1
n
) log2 P(w1
n
)=0.
Le Maroc est un pays du Grand Maghreb.
Estimation de vraisemblance
53
On suppose dans cette approche que le corpus de test noté Ctest, souvent extrait (hold out) du corpus d’origine,
soit composé de séquences réelles et correctes. Donc le meilleur modèle sera celui qui attribue la probabilité la
plus élevée à cet ensemble de test. Cela revient à dire que le modèle n’est pas surpris par les séquences du corpus
de test, donc non perplexe face à ces séquences.
Ce modèle doit ainsi maximiser l’estimation de vraisemblance :
L(Ctest) =
𝐒 𝐂test
P(𝐒)
Ce qui revient à maximiser la log-vraisemblance:
LL(Ctest) =
𝐒 𝐂test
log P(𝐒)
J. DABOUNOU - FST DE SETTAT
Estimation de vraisemblance
54
On revient au corpus de test Ctest, composés ici de trois séquences, qui seront notées S1, S2 et S3 :
1. Le Maroc est un pays du Grand Maghreb.
2. Marrakech est surnommée la ville rouge.
3. Marrakech est magique.
On estime la probabilité à maximiser pour le modèle N-gramme sous l'hypothèse naïve de l'indépendance des
séquences, ce qui permet de décomposer cette probabilité comme le produit des probabilités des séquences, qui
à leur tour sont des produits de probabilités de mots :
L(Ctest) =
𝐒 𝐂test
P(𝐒) = P(S1) P S2 P(S3)
La log-vraisemblance à maximiser s'écrit :
LL(Ctest) =
𝐒 𝐂test
log P(𝐒) = log(P(S1)) + log P S2 + log(P S3 )
J. DABOUNOU - FST DE SETTAT
Perplexité des modèles N-gramme
55
Dans un modèle bigramme, on a :
L(Ctest) = P(Le Maroc est un pays du Grand Maghreb) x P(Marrakech est surnommée la ville rouge)
x P(Marrakech est magique)
P(S1) = P(Le Maroc est un pays du Grand Maghreb) = P(Le|<s>) x P(Maroc|Le) x P(est|Maroc) x P(un|est) x
P(pays|un) x P(du|pays) x P(Grand|du) x P(Maghreb|Grand) x P(</s>|Maghreb).
P(S2) = P(Marrakech est surnommée la ville rouge) = P(Marrakech|<s>) x P(est|Marrakech) x P(surnommée|est) x
P(la|surnommée) x P(ville|la) x P(rouge|ville) x P(</s>|rouge).
P(S3) = P(Marrakech est magique) = P(Marrakech|<s>) x P(est|Marrakech) x P(magique|est) x P(</s>|magique).
J. DABOUNOU - FST DE SETTAT
Probabilité et probabilité par mot
56
Supposons que le modèle prédit mieux les bigrammes de la séquence S1 que les bigrammes de la séquence S3. Soit
par exemple :
Il y une incohérence avec le fait que le modèle prédit mieux les bigrammes de la séquence S1 que les bigrammes de
la séquence S3. On normalise donc cette probabilité sur les séquences par le nombre de mots. On pose :
WP(S) = (P(S))
1
ns, nsétant le nombre de mots (y compris </s>) de la séquence S.
Remarque : ns est égal au nombre de bigrammes de la séquence S.
J. DABOUNOU - FST DE SETTAT
P(Le|<s>) = 0.75
P(Maroc|Le) = 0.75
P(est|Maroc) = 0.70
P(un|est) = 0.75
P(pays|un) = 0.80
P(du|pays) = 0.60
P(Grand|du) = 0.50
P(Maghreb|Grand) = 0.75
P(</s>|Maghreb) = 0.70
P(Marrakech|<s>) = 0.45
P(est|Marrakech) = 0.55
P(magique|est) = 0.40
P(</s>|magique) = 0.60
On a alors :
P(S1) = 0.0372
P(S3) = 0.0594
et P(S1) < P(S3)  incohérence
On a alors :
WP(S1) = 0,6937
WP(S3) = 0.4937
et WP(S1) > WP(S3)  cohérence
Perplexité d'une séquence
57
La perplexité du modèle sur une séquence S est définie comme étant l'inverse de la probabilité normalisée WP(S).
Ainsi, pour un modèle bigramme :
P(S) =
k=1,ns
P(wk|wk−1)
WP(S) = (P(S))
1
ns = (
k=1,ns
P(wk|wk−1) )
1
ns =
ns
k=1,ns
P(wk|wk−1)
PP(S) = (P(S))
−1
ns =
1
ns
k=1,ns
P(wk|wk−1)
On a ainsi pour les séquences S1 et S3 :
PP(S1) = 1.4415
PP(S3) = 2.0256
Ce choix de calcul de la probabilité par mots permet de comparer la probabilité de deux séquences. Il permet aussi
de générer des séquences de mots de longueurs quelconques.
J. DABOUNOU - FST DE SETTAT
Vraisemblance par mot des modèles N-gramme
58
On utilise cette probabilité normalisée dans l’estimation de vraisemblance sur le corpus de test Ctest :
WL(Ctest) =
𝐒 𝐂test
WP(𝐒) =
𝐒 𝐂test
(P(S))
1
ns
et dans la log-vraisemblance:
WLL(Ctest) =
𝐒 𝐂test
log WP(𝐒) =
𝐒 𝐂test
log(P(S))
1
ns
=
𝐒 𝐂test
1
ns
log(P(S))
Pour l'exemple illustratif:
WL(Ctest) =
𝐒 𝐂test
WP(𝐒) =(P(S1))
1
ns1 (P(S2))
1
ns2 (P(S3))
1
ns3
WLL(Ctest) =
𝐒 𝐂test
1
ns
log P(𝐒) =
1
ns1
log(P(S1)) +
1
ns2
log P S2 +
1
ns3
log(P S3 )
J. DABOUNOU - FST DE SETTAT
Vraisemblance par mot des modèles N-gramme
59
Dans un modèle N-gramme, on cherche à maximiser la log-vraisemblance:
LL(Ctest) =
𝐒 𝐂test
log(
k=1,nS
P(wk|w1
k−1
)) =
𝐒 𝐂test k=1,nS
log P(wk|wk−N+1
k−1
)
Comme cela a été montré dans l'exemple plus haut, les phrases peuvent avoir un nombre de mots variable et
l’ajout de mot réduit la valeur de la probabilité attribuée à cette phrase par le modèle. Pour avoir une métrique
indépendante de la taille des phrases (et éventuellement des corpora, on normalise la probabilité des séquences
de test par le nombre total de mots. On obtient une log-vraisemblance par mot sur l'ensemble Ctest :
WLL(Ctest) =
1
𝐒 𝐂test
𝐒 𝐒 𝐂test k=1,nS
log P(wk|w1−N+1
k−1
)
Dans cette expression ns=|S| étant le nombre de mot dans la séquence S.
J. DABOUNOU - FST DE SETTAT
Perplexité des modèles N-gramme
60
On obtient aussi l’expression de la cross-entropie par mot:
H(Ctest) =
1
SCtest
𝐒 𝐒 𝐂test k=1,nS
−log2 P(wk|wk−N+1
k−1
)
Une écriture plus compacte de la cross-entropie avec ntest le nombre de mots dans Ctest. Cette écriture montre que
la cross-entropie estime la capacité du modèle N-gramme à représenter les séquences test :
H(Ctest) =
i=1,ntest
1
ntest
(−log2 P(wi|wi−N+1
i−1
)
La perplexité est donnée par l’expression
PP(Ctest) = 2H(𝐂test) = eWLL(𝐂test)
J. DABOUNOU - FST DE SETTAT

Contenu connexe

Tendances

LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
RedaBelattar
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
Majid CHADAD
 

Tendances (20)

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
les techniques TALN
les techniques TALNles techniques TALN
les techniques TALN
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Test khi deux
Test khi deuxTest khi deux
Test khi deux
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Système d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxSystème d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptx
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passage
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Introduction au développement Web
Introduction au développement Web Introduction au développement Web
Introduction au développement Web
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Cours Statistique descriptive pr Falloul
Cours Statistique descriptive pr FalloulCours Statistique descriptive pr Falloul
Cours Statistique descriptive pr Falloul
 
Ontologie concept applications
Ontologie concept applicationsOntologie concept applications
Ontologie concept applications
 
RNN avec mécanisme d'attention
RNN avec mécanisme d'attentionRNN avec mécanisme d'attention
RNN avec mécanisme d'attention
 

Similaire à Modèles de langue : Ngrammes

Vers des langues de programmation ?
Vers des langues de programmation ?Vers des langues de programmation ?
Vers des langues de programmation ?
Nicolas Dubois
 
Jep 2012 Swahili
Jep 2012 SwahiliJep 2012 Swahili
Jep 2012 Swahili
tihtow
 
Samar - Premier bilan d'étape - Oct. 2010
Samar - Premier bilan d'étape - Oct. 2010Samar - Premier bilan d'étape - Oct. 2010
Samar - Premier bilan d'étape - Oct. 2010
Stefane Fermigier
 
Le langage Prolog
Le langage PrologLe langage Prolog
Le langage Prolog
Bruno Delb
 

Similaire à Modèles de langue : Ngrammes (12)

Vers des langues de programmation ?
Vers des langues de programmation ?Vers des langues de programmation ?
Vers des langues de programmation ?
 
Jep 2012 Swahili
Jep 2012 SwahiliJep 2012 Swahili
Jep 2012 Swahili
 
Séminaire Ist inria 2014 : Pascale Sébillot
Séminaire Ist inria 2014 : Pascale SébillotSéminaire Ist inria 2014 : Pascale Sébillot
Séminaire Ist inria 2014 : Pascale Sébillot
 
Les défis des_langue-pour_le_tal
Les défis des_langue-pour_le_talLes défis des_langue-pour_le_tal
Les défis des_langue-pour_le_tal
 
Soutenance.final
Soutenance.finalSoutenance.final
Soutenance.final
 
Maîtrise / Soutien phonétique / Soutenance Patrick Tremblay, ing., M.Ing.
Maîtrise / Soutien phonétique / Soutenance Patrick Tremblay, ing., M.Ing. Maîtrise / Soutien phonétique / Soutenance Patrick Tremblay, ing., M.Ing.
Maîtrise / Soutien phonétique / Soutenance Patrick Tremblay, ing., M.Ing.
 
Samar - Premier bilan d'étape - Oct. 2010
Samar - Premier bilan d'étape - Oct. 2010Samar - Premier bilan d'étape - Oct. 2010
Samar - Premier bilan d'étape - Oct. 2010
 
Modéliser le langage
Modéliser le langageModéliser le langage
Modéliser le langage
 
Le langage Prolog
Le langage PrologLe langage Prolog
Le langage Prolog
 
Builsing DSL using MDE
Builsing DSL using MDEBuilsing DSL using MDE
Builsing DSL using MDE
 
Deck 11
Deck 11Deck 11
Deck 11
 
Exposé cari
Exposé cariExposé cari
Exposé cari
 

Plus de Jaouad Dabounou

Plus de Jaouad Dabounou (16)

اللغة والذكاء الاصطناعي.pdf
اللغة والذكاء الاصطناعي.pdfاللغة والذكاء الاصطناعي.pdf
اللغة والذكاء الاصطناعي.pdf
 
Mrbml004 : Introduction to Information Theory for Machine Learning
Mrbml004 : Introduction to Information Theory for Machine LearningMrbml004 : Introduction to Information Theory for Machine Learning
Mrbml004 : Introduction to Information Theory for Machine Learning
 
Projection sur les ensembles convexes fermés
Projection sur les ensembles convexes fermésProjection sur les ensembles convexes fermés
Projection sur les ensembles convexes fermés
 
Projection d’un point sur un ensemble
Projection d’un point sur un ensembleProjection d’un point sur un ensemble
Projection d’un point sur un ensemble
 
Fonction distance à un ensemble
Fonction distance à un ensembleFonction distance à un ensemble
Fonction distance à un ensemble
 
Théorèmes de Carathéodory
Théorèmes de CarathéodoryThéorèmes de Carathéodory
Théorèmes de Carathéodory
 
Intérieurs relatifs d’ensembles convexes
Intérieurs relatifs d’ensembles convexesIntérieurs relatifs d’ensembles convexes
Intérieurs relatifs d’ensembles convexes
 
Topologie des ensembles convexes
Topologie des ensembles convexesTopologie des ensembles convexes
Topologie des ensembles convexes
 
Analyse Convexe TD – Série 1 avec correction
Analyse Convexe TD – Série 1 avec correctionAnalyse Convexe TD – Série 1 avec correction
Analyse Convexe TD – Série 1 avec correction
 
Analyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesAnalyse Factorielle des Correspondances
Analyse Factorielle des Correspondances
 
Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 
Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 
Analyse numérique interpolation
Analyse numérique interpolationAnalyse numérique interpolation
Analyse numérique interpolation
 
Polycopie Analyse Numérique
Polycopie Analyse NumériquePolycopie Analyse Numérique
Polycopie Analyse Numérique
 
Sélection de contrôles avec correction
Sélection de contrôles avec correctionSélection de contrôles avec correction
Sélection de contrôles avec correction
 
Dérivation et Intégration numériques
Dérivation et Intégration numériquesDérivation et Intégration numériques
Dérivation et Intégration numériques
 

Modèles de langue : Ngrammes

  • 1. Traitement automatique du langage naturel (TALN) NATURAL LANGUAGE PROCESSING (NLP) juillet 2020 JAOUAD DABOUNOU FST de Settat Université Hassan 1er Centre CLIK Modèles N-gramme YOUTUBE : https://youtube.com/playlist?list=PLzjg2z2kYUrh_RIcPUN2J7UyFBvZu2z_L
  • 2. NLP: Définition 2 Le Traitement du langage naturel (TLN ou NLP) : ensemble des approches statistiques, probabilistes ou neuronales (deep learning) pour comprendre et manipuler le langage naturel. Construire des modèles capables d’interpréter du texte à travers les régularités et structures de données textuelles d’un corpus, au lieu de simplement intégrer les règles et connaissances préétablies. J. DABOUNOU - FST DE SETTAT
  • 3. NLP: Applications 3 • Recherche d’information : Analyse d’opinions, de questionnaires • Analyse de sentiments • Traduction automatique • Résumé de textes • Classification de documents • Moteurs de recherche • Construction de bases de connaissances / ontologies • Génération de texte • Nouvelles interfaces : Conversation(Chatbots), Speech recognition, Text to speach,… • Domaines d’application : Services, enseignement, médecine, marketing,… J. DABOUNOU - FST DE SETTAT
  • 4. NLP: Applications 4 Nous allons par la suite présenter des modèles de langue puissants qui sont désormais utilisés dans : • La traduction automatique Traduire en Français : « ‫الكبير‬ ‫المغرب‬ ‫بلدان‬ ‫تنمية‬ » Donne : « Développement des pays du Maghreb » Et non « Développement des pays du grand coucher » et non encore « Développement des pays du grand Maroc » • La correction d’erreur typographique « Je me promène dans le forêt et je garde les arbres » • La complétion de texte « L’élève a ouvert son cartable et a sorti son … » « L’arbitre a estimé que le …. a porté trop haut son …. » J. DABOUNOU - FST DE SETTAT
  • 5. NLP: Applications 5 Utilisation (suite) Un modèle de langue est aussi utilisé dans: • Les moteurs de recherche, • La création de profils, • La reconnaissance d’écriture manuscrite, de la parole, … • L’identification d’auteurs, de thèmes,… • Analyse de la sémantique des phrases, • La détection d'opinions et l’analyse des sentiments, • Le résumé automatique d’un document, • La détection de spam J. DABOUNOU - FST DE SETTAT
  • 6. Espace des sémantiques 6 Comment transformer la crise en opportunité ? B A B doit mobiliser son espace des sémantiques pour comprendre (se représenter) la signification de la phrase. B a construit son espace des sémantiques, en particulier, à travers son expérience langagière dans son contexte familial, social et culturel. Espace des sémantiques Représentation simplificatrice J. DABOUNOU - FST DE SETTAT
  • 7. Espace des sémantiques 7 Comment transformer la crise en opportunité ? B A Comment doter une machine B d’un espace des sémantiques pour lui permettre de « comprendre (se représenter) » la signification de la phrase ? Nous pouvons construire l’espace des sémantiques de la machine B à l’aide d’un corpus. travers son expérience langagière dans son contexte familiale, social et culturel. Espace des sémantiques Modèle simplifié J. DABOUNOU - FST DE SETTAT
  • 8. Modèles de langue 8 Le concept de modèle de langue est central dans les approches de NLP. Nous allons essayer de répondre à de nombreuses questions, comme : - A quoi peut servir une distributions de probabilité sur une langue ? - Comment concevoir une telle distribution ? - Comment la construire ? - Comment la tester et évaluer sa performance ? - Comment représenter des mots, que nous utilisons pour nous exprimer, en des nombres, que les machines savent manipuler ? J. DABOUNOU - FST DE SETTAT
  • 9. Modèles de langue 9 Définition Un modèle de langue est, souvent de manière implicite : • Une représentation de la manière dont se construit le sens dans une langue, • Des régularités et structures linguistiques utilisées pour s’exprimer et communiquer dans une langue. • Un ensemble de normes, cultures et habitudes langagières partagées par une communauté qui s’exprime dans une langue donnée. • Il s’agit aussi, en particulier, de convertir le sens en données numériques que les machines pourront traiter. • Un modèle de langue détermine la probabilité qu’une séquence de mots soit dans cette langue. Il définit ainsi une distribution de probabilité sur une langue. J. DABOUNOU - FST DE SETTAT
  • 10. Corpus de texte pour le NLP 10 Les modèles de langue seront créés automatiquement à travers l’observation de corpus. Entrainer le modèle sur beaucoup de données. Donc utilisation de corpus. Un corpus de texte est une collection de ressources textuelles. De nombreux corpus sont disponibles en anglais, beaucoup moins dans les autres langues. Grand manque pour certaines langues comme l’arabe. J. DABOUNOU - FST DE SETTAT
  • 11. Corpus de texte pour le NLP De nombreux corpus sont disponibles, comme : - Brown Corpus - Wall Street Journal - Shakespeare corpus - AP news - EuroParlement, - TOEFL 2000 - … En plus de - wikipédia Les corpus utilisés pour entrainer un modèle sont appelés corpus d’apprentissage (training corpus). On utilise d’autres corpus, ou on divise le même corpus, pour avoir en tout : • Un corpus d’entrainement : pour estimer les paramètres du modèle • Un corpus de validation : pour affiner les paramètres du modèle • Un corpus de test : pour évaluer la performance du modèle. J. DABOUNOU - FST DE SETTAT 11
  • 12. Modèles de langue 12 Pourquoi définir une distribution de probabilité sur une langue : Prédire le mot suivant : Marrakech ville rouge climat sec J. DABOUNOU - FST DE SETTAT
  • 13. Modèles de langue 13 Pourquoi définir une distribution de probabilité sur une langue : Prédire le mot suivant : Marrakech ville rouge climat sec J. DABOUNOU - FST DE SETTAT
  • 14. Modèles de langue 14 Pourquoi définir une distribution de probabilité sur une langue : Prédire le mot suivant : Marrakech ville rouge climat sec J. DABOUNOU - FST DE SETTAT
  • 15. Modèles de langue 15 Pourquoi définir une distribution de probabilité sur une langue : Prédire le mot suivant : Marrakech ville rouge climat sec J. DABOUNOU - FST DE SETTAT
  • 16. Modèles de langue 16 Pourquoi définir une distribution de probabilité sur une langue : Prédire le mot suivant : Marrakech ville rouge climat sec J. DABOUNOU - FST DE SETTAT P(sec | Marrakech ville rouge climat)>P(voiture | Marrakech ville rouge climat) P(sec | Marrakech ville rouge climat)>P(tagine | Marrakech ville rouge climat) P(sec | Marrakech ville rouge climat)>P(idée | Marrakech ville rouge climat)
  • 17. Modèles de langue 17 Un modèle de langue c’est : prédire les mots d’une phrases, l’un à la suite de l’autre, ou évaluer la probabilité des séquences de mots dans une langue. Soit V le vocabulaire construit à partir d’un corpus d’entrainement (auquel on peut ajouter quelques mots spéciaux). On considère  l’ensemble des séquences de mots construites à partir de V. Un évènement  désigne une partie de . Une probabilité P sur  est définie par : 1. Tout évènement   possède une probabilité P() telle que 0  P()  1 2. L’évènement nul ∅ possède une probabilité nulle : P(∅)=0. 3. Pour toute partition (i) de , c’est-à-dire telle que i i =  et  i i = ∅ , i P(i) = 1 J. DABOUNOU - FST DE SETTAT
  • 18. Modèles de langue probabilistes Le sens d’un mot est déterminé par le contexte de son utilisation, donc à travers les mots qui l’accompagnent dans une séquence. Chaque phrase a une probabilité d'apparition dans l'ensemble des phrases possibles, constituées des mots d’une langue. Un modèle de langue est défini par une distribution de probabilités sur des séquences de mots : P(S) = P(w1,w2,w3,…,wn) On a par exemple: P(Omar est un intelligent enfant) < P(Omar est un enfant intelligent) ou en traduction automatique : P(Développement des pays du Grand Maghreb) > P(Développement des pays du grand coucher) et en Speech to Text : P(La liberté est un trésor donné qu'il faut savoir apprécier) > P(La liberté est un très ordonné qu'il faut savoir apprécier) P(Marrakech Poisson tricoter) et P(apprécier savoir faut ) doivent être égales, ou presque, à 0. J. DABOUNOU - FST DE SETTAT 18
  • 19. Modèles de langue et probabilités conditionnelles 19 Sans hypothèses supplémentaires, la seule manière de construire un modèle de langue serait d’écrire : P(w1, w2, . . . ,wn) = Count(w1, w2, . . . ,wn) nseq , nseq étant le nombre de séquences dans le corpus. On a : P(w1, w2, . . . , wn) = P(w1, w2, . . . , wn-1) P(wn | w1, w2, . . . , wn-1) Règle de la chaîne (chain rule) : On note souvent w1 n = (w1, w2, . . . , wn) P(S) = P (w1 n ) = P(w1) P(w2|w1) P(w3|w1 2 ) … P(wn|w1 n−1 ) P(S) = P(w1) k=2,n P(wk|w1 k−1 ) P(wk|w1 k−1 ) désigne la probabilité d’apparition du mot wk à la suite de la séquence de mots w1 k−1 et on a : P(wk|w1 k−1 ) = P(w1 k−1 ,wk) P(w1 k−1 ) , P(wk|w1 k−1 ) étant la probabilité conditionnelle. J. DABOUNOU - FST DE SETTAT Historique ou contexte Mot suivant La probabilité jointe est décomposée en un produit de probabilités conditionnelles
  • 20. Entrainer un modèle de langue 20 Pour estimer les probabilités jointes P(wk|w1 k−1 ), on utilise un corpus d’entrainement Ctrain et on a: P(wk|w1 k−1 ) = Count(w1 k−1 ,wk) Count(w1 k−1 ) Par convention pour le dénominateur, Count() = ntrain, nombre total des mots du corpus Ctrain. C’est une estimation du maximum de vraisemblance, c’est-à-dire faire en sorte que les séquences les plus fréquentes dans le corpus aient une probabilité maximale dans le modèle. En particulier, si à chaque fois, la séquence w1 k−1 est suivie de wk, alors P(wk|w1 k−1 ) = 1. On a ainsi, par exemple : P(Pays du Grand Maghreb) = P(Pays) P(du|Pays) P(Grand|Pays du) P(Maghreb|Pays du Grand) P(Grand|Pays du) = Count(Pays du Grand) Count(Pays du) J. DABOUNOU - FST DE SETTAT Compter les occurrences dans un corpus de grande taille
  • 21. Modèles N-gramme 21 Calcul des probabilités jointes P(S) = P(w1,w2,w3,…,wn), S = (w1,w2,w3,…,wn) séquence d’un corpus. Hypothèse de Markov : On peut prédire l’état futur en utilisant un historique assez faible, ici d’ordre N-1. On utilise l’occurrence d’une séquence de N mots consécutifs dans un corpus : Fréquence d’un N-gramme. P(wn|w1 n−1 )  P(wn |wn−N+1 n−1 ) Ainsi, si N=2, on dit alors que le modèle est bigramme, on a : P(wn|w1 n−1 )  P(wn |wn−1) Et donc P(Grand|Pays du) = P(Grand|du) La probabilité d’avoir le n-ième mot dépend seulement du mot précédent, et non de tous les mots précédents. J. DABOUNOU - FST DE SETTAT
  • 22. Modèles N-gramme 22 Selon la valeur de N, on a les modèles : Unigramme : N=1 (pas de contexte), chaque mot est considéré individuellement Exemple: « Faculté » Bigramme : N=2, le contexte d’un mot est défini par le mot qui le précède Exemple: « Sciences Mathématiques » Trigramme : N=3, le contexte d’un mot est défini par le couple de mots qui le précèdent Exemples: « Marrakech est connue », « est connue par » et « son climat chaud » Modèle N-gramme : la probabilité d’apparition d’un mot peut être estimée à partir des N-1 mots qui le précèdent. Ces N-1 mots définissent ainsi le contexte du mot en question. On peut aussi choisir N=4 ou N=5. Les probabilités deviennent très petites avec N trop grand. J. DABOUNOU - FST DE SETTAT
  • 23. Entrainer un modèle N-gramme 23 On note Ctrain le corpus d'entrainement extrait du corpus textuel de départ. Maximiser la log-vraisemblance : LL(Ctrain) = SCtrain log( k=1,nS P(wk|wk−N+1 k−1 )) Les paramètres sont ici, pour chaque séquence S de n mots: P(w1), P(w2|w1),…,P(wn|wn-N+1,…, wn-2, wn-1) L'estimation du maximum de vraisemblance permet le calcul de ces paramètres du modèle. On montre que : P(wk|wk−N+1 k−1 ) = Count(wk−N+1 k−1 ,wk) Count(wk−N+1 k−1 ) J. DABOUNOU - FST DE SETTAT
  • 24. Paramètres pour un modèle N-gramme 24 Pour entrainer un modèle N-gramme sur un corpus d’apprentissage Ctrain possédant le vocabulaire V, (V types de mots) on aura: Pour un modèle unigramme : |V| paramètres Pour un modèle bigramme : |V|2 paramètres Pour un modèle trigramme : |V|3 paramètres Pour un modèle N-gramme : |V|N paramètres |V| est souvent très grand. Il peut être de l’ordre de 104 à plus de 106. J. DABOUNOU - FST DE SETTAT
  • 25. Modèles N-gramme: Exemple 25 Considérons le corpus d’entrainement : Marrakech ville rouge climat sec Marrakech ville ocre Ville Marrakech climat chaud sec Le vocabulaire est constitué de l’ensemble V={Marrakech, ville, rouge, climat, sec, ocre, chaud} Le nombre de mots (tokens) dans le corpus (sans les caractères spéciaux) sera noté m. Dans l’exemple m=13. Les N-grammes que l’on retrouve dans le corpus pour n=1,2 et 3 sont: • Unigrammes: V={Marrakech, ville, rouge, climat, sec, ocre, chaud} • Bigrammes: {(marrakech,ville), (ville,rouge ), (rouge,climat), (climat,sec), (ville,ocre), (ville,marrakech), (marrakech,climat), (climat,chaud), (chaud,sec) } • Trigrammes: {(marrakech,ville,rouge), (ville,rouge,climat), (rouge,climat,sec), (marrakech,ville,ocre), (ville,marrakech,climat ), (marrakech,climat,chaud), (climat,chaud,sec)} J. DABOUNOU - FST DE SETTAT
  • 26. Modèle bigramme: Exemple 26 Pour le modèle bigramme: P(wk|wk−1) = Count(wk−1,wk) Count(wk−1) On a le tableau du nombre d’unigrammes pour chaque mot dans le corpus Count(wk−1) : On a aussi le tableau du nombre de bigrammes dans le corpus Count(wk−1,wk) : J. DABOUNOU - FST DE SETTAT Marrakech ville rouge climat sec ocre chaud 3 3 1 2 2 1 1 Marrakech ville rouge climat sec ocre chaud Marrakech 0 2 0 1 0 0 0 ville 1 0 1 0 0 1 0 rouge 0 0 0 1 0 0 0 climat 0 0 0 0 1 0 1 sec 0 0 0 0 0 0 0 ocre 0 0 0 0 0 0 0 chaud 0 0 0 0 1 0 0 Corpus : Marrakech ville rouge climat sec Marrakech ville ocre Ville Marrakech climat chaud sec
  • 27. Modèle bigramme: Exemple 27J. DABOUNOU - FST DE SETTAT Le tableau de probabilités des bigrammes est alors créé à l'aide de la relation : P(wk|wk−1) = Count(wk−1,wk) Count(wk−1) Marrakech ville rouge climat sec ocre chaud Total Marrakech 0 0.67 0 0.33 0 0 0 1 ville 0.33 0 0.33 0 0 0.33 0 1 rouge 0 0 0 1 0 0 0 1 climat 0 0 0 0 0.5 0 0.5 1 sec 0 0 0 0 0 0 0 0 ocre 0 0 0 0 0 0 0 0 chaud 0 0 0 0 1 0 0 1 Cette manière de procéder présente au moins deux inconvénients: 1. Les mots "sec" et "chaud" n’apparaissent dans aucun bigramme. Ils ont une probabilité totale égale à 0 au lieu de 1. 2. Le modèle ne tient pas compte du fait que le mot ville se trouve en début de phrase et que les mots "sec" et "chaud" se trouvent en fin de phrase. Pour tout k  V (pour tous les mots du vocabulaire) z P(z|wk−1) = z Count(wk−1,z) w Count(wk−1,w) = z Count(wk−1,z) w Count(wk−1,w) = 1
  • 28. Modèle bigramme: Exemple 28J. DABOUNOU - FST DE SETTAT On introduit les caractères spéciaux <s> pour début de séquence et </s> pour fin de séquence. <s>Marrakech ville rouge climat sec</s> <s>Marrakech ville ocre</s> <s>Ville Marrakech climat chaud sec</s> On obtient alors : Marrakech ville rouge climat sec ocre chaud </s> Total <s> 2 1 0 0 0 0 0 0 3 Marrakech 0 2 0 1 0 0 0 0 3 ville 1 0 1 0 0 1 0 0 3 rouge 0 0 0 1 0 0 0 0 1 climat 0 0 0 0 1 0 1 0 2 sec 0 0 0 0 0 0 0 2 2 ocre 0 0 0 0 0 0 0 1 1 chaud 0 0 0 0 1 0 0 0 1 Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 Tableau de probabilités des bigrammesTableau du nombre de bigrammes Les caractères spéciaux <s> et </s> doivent être ajoutés V, ensemble des types de mots (vocabulaire) du corpus d'entrainement.
  • 29. Modèle bigramme : Probabilité d'une séquence 29J. DABOUNOU - FST DE SETTAT On a pour S = (w1,w2,w3,…,wn), P(S) = P(w1) P(w2|w1)…P(wn|wn-N+1,…, wn-2, wn-1). Dans un modèle bigramme : P(S) = k=1,n P(wk|wk−1) Donc pour les séquences qui composent notre corpus : P(Marrakech ville rouge climat sec) = = P(Marrakech|<s>) P(ville|Marrakech) P(rouge|ville) P(climat|rouge) P(sec|climat) P(</s>| sec) = 0.67 x 0.67 x 0.33 x 1 x 0.5 x 0.67 = 0.0496259 P(Marrakech ville ocre) = = P(Marrakech|<s>) P(ville|Marrakech) P(ocre|ville) P(</s>|ocre) = 0.67 x 0.67 x 0.33 x 1 = 0.148137 P(Ville Marrakech climat chaud sec) = = P(Ville|<s>) P(Marrakech|Ville) P(climat|Marrakech) P(chaud|climat) P(sec|chaud) P(</s>| sec) = 0.33 x 0.33 x 0.33 x 0.5 x 1 x 1 = 0.0179685
  • 30. Modèle bigramme : Probabilité d'une séquence 30J. DABOUNOU - FST DE SETTAT Séquence "Ville rouge climat chaud sec" P(Ville rouge climat chaud sec) = = P(Ville|<s>) P(rouge|ville) P(climat|rouge) P(chaud|climat) P(sec|chaud) P(</s>| sec) = 0.33 x 0.33 x 1 x 0.5 x 1 x 1 = 0.05445 On calcule maintenant la probabilité de la séquence "Marrakech ocre climat chaud sec" P(Marrakech ocre climat chaud sec) = = P(Marrakech|<s>) P(ocre|Marrakech) P(climat|ocre) P(chaud|climat) P(sec|chaud) P(</s>| sec) = 0 Du fait que P(ocre|Marrakech) = 0. En effet, le bigramme (Marrakech,ocre) ne se trouve pas dans le corpus. On vérifie aussi que l'on a 6 x P(Marrakech ville rouge climat sec) + 4 x P(Marrakech ville ocre) + 6 x P(Ville Marrakech climat chaud sec) = 1. Ce résultat va être démontré dans le cas général par la suite.
  • 31. Modèle trigramme: Exemple 31 Pour le modèle trigramme, on ajoute deux fois le caractère spécial <s> au début de chaque séquence et une fois le caractère spécial </s> à la fin de chaque séquence. Les séquences du corpus deviendront alors : <s><s>Marrakech ville rouge climat sec</s> <s><s>Marrakech ville ocre</s> <s><s>Ville Marrakech climat chaud sec</s> Les trigrammes de ce corpus deviennent ainsi : Trigrammes: {(<s>,<s>,marrakech),(<s>,marrakech,ville),(marrakech,ville,rouge), (ville,rouge,climat), (rouge,climat,sec), (climat,sec,</s>),(marrakech,ville,ocre), (ville,ocre,</s>),(<s>,<s>,ville),(<s>,ville,marrakech),(ville,marrakech,climat), (marrakech,climat,chaud),(climat,chaud,sec),(chaud,sec,</s>)} J. DABOUNOU - FST DE SETTAT
  • 32. Modèle trigramme: Exemple 32 On a aussi le tableau du nombre de trigrammes dans le corpus Count(wk−1,wk) : On obtient le tableau des probabilités des trigrammes en divisant chaque élément du tableau du nombre de trigrammes par le total correspondant. Exemple : P(ville|<s>,marrakech) = Count(<s>,marrakech,ville) Count(<s>,marrakech) = 2 2 = 1 P(marrakech|<s><s>) = Count(<s>,<s>,marrakech) Count(<s>,<s>) = 2 3 L'intérêt des modèles trigrammes apparait dans le cas, plus réaliste, de corpus de grande taille. J. DABOUNOU - FST DE SETTAT Marrakech ville rouge climat sec ocre chaud </s> Total (<s>,<s>) 2 1 0 0 0 0 0 0 3 (<s>,marrakech) 0 2 0 0 0 0 0 0 2 (marrakech,ville) 0 0 1 0 0 1 0 0 2 (ville,rouge) 0 0 0 1 0 0 1 0 1 (rouge,climat) 0 0 0 0 1 0 0 0 1 (climat,sec) 0 0 0 0 0 0 0 1 1 (ville,ocre) 0 0 0 0 0 0 0 1 1 (<s>,ville) 1 0 0 0 0 0 0 0 1 (ville,marrakech) 0 0 0 0 0 1 0 0 1 (marrakech,climat) 0 0 0 0 0 0 1 0 1 (climat,chaud) 0 0 0 0 1 0 0 0 1 (chaud,sec) 0 0 0 0 0 0 0 1 1 Corpus : <s><s>Marrakech ville rouge climat sec</s> <s><s>Marrakech ville ocre</s> <s><s>Ville Marrakech climat chaud sec</s>
  • 33. Modèles 4-grammes,… 33J. DABOUNOU - FST DE SETTAT Pour le modèle 4-gramme, on ajoute trois fois le caractère spécial <s> au début de chaque séquence et une fois le caractère spécial </s> à la fin de chaque séquence. Les séquences du corpus deviendront alors : <s><s><s>Marrakech ville rouge climat sec</s> <s><s><s>Marrakech ville ocre</s> <s><s><s>Ville Marrakech climat chaud sec</s> Les 4-grammes de ce corpus deviennent ainsi : 4-grammes: {(<s>,<s>,<s>,marrakech),(<s>,<s>,marrakech,ville),(<s>,marrakech,ville,rouge), (marrakech,ville,rouge,climat), (ville,rouge,climat,sec), (rouge,climat,sec,</s>),(<s>,marrakech,ville,ocre), (marrakech,ville,ocre,</s>),(<s>,<s>,<s>,ville),(<s>,<s>,ville,marrakech),(<s>,ville,marrakech,climat), (ville,marrakech,climat,chaud),(marrakech,climat,chaud,sec),(climat,chaud,sec,</s>)} P(ville|<s><s>marrakech) = Count((<s>,<s>,marrakech,ville)) Count((<s>,<s>,marrakech)) = 2 2 = 1
  • 34. Modèle bigramme: Générer une séquence 34J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0
  • 35. Modèle bigramme: Générer une séquence 35J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%). Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Ville ……………………………… P(Ville|<s>) = 0.33
  • 36. Modèle bigramme: Générer une séquence 36J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%). Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Ville ……………………………… P(Ville|<s>) = 0.33 Ville rouge …………………… P(rouge|ville) = 0.33
  • 37. Modèle bigramme: Générer une séquence 37J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%). Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul choix, le mot "climat". Ville ……………………………… P(Ville|<s>) = 0.33 Ville rouge …………………… P(rouge|ville) = 0.33 Ville rouge climat…………. P(climat|rouge) = 1
  • 38. Modèle bigramme: Générer une séquence 38J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%). Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul choix, le mot "climat". Ensuite, le modèle pourra choisir entre les mots "sec", "chaud" avec une probabilité de 50% pour chacun des mots. Supposons qu'il choisit le mot "chaud". Ville ……………………………… P(Ville|<s>) = 0.33 Ville rouge …………………… P(rouge|ville) = 0.33 Ville rouge climat…………. P(climat|rouge) = 1 Ville rouge climat chaud………. P(chaud|climat) = 0.5
  • 39. Modèle bigramme: Générer une séquence 39J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%). Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul choix, le mot "climat". Ensuite, le modèle pourra choisir entre les mots "sec", "chaud" avec une probabilité de 50% pour chacun des mots. Supposons qu'il choisit le mot "chaud". Après "chaud" le modèle n'a qu'un seul choix, le mot "sec". Ville ……………………………… P(Ville|<s>) = 0.33 Ville rouge …………………… P(rouge|ville) = 0.33 Ville rouge climat…………. P(climat|rouge) = 1 Ville rouge climat chaud………. P(chaud|climat) = 0.5 Ville rouge climat chaud sec…. P(sec|chaud) = 1
  • 40. Modèle bigramme: Générer une séquence 40J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 La séquence pourrait commencer par le mot "Marrakech" (probabilité de 67%) ou le mot "Ville" (probabilité de 33%). Supposons que le modèle étant paramétré de façon adéquate, choisit le mot "Ville" pour commencer la séquence. Il pourra ensuite choisir un mot parmi "Marrakech", "rouge" et "ocre" avec une probabilité de 33% pour chacun des mots. Supposons que le modèle choisit le mot "rouge" après le mot "Ville". Après "rouge" le modèle n'a qu'un seul choix, le mot "climat". Ensuite, le modèle pourra choisir entre les mots "sec", "chaud" avec une probabilité de 50% pour chacun des mots. Supposons qu'il choisit le mot "chaud". Après "chaud" le modèle n'a qu'un seul choix, le mot "sec". Après le mot "sec" le modèle ne peut que terminer la séquence par </s>. Ville ……………………………… P(Ville|<s>) = 0.33 Ville rouge …………………… P(rouge|ville) = 0.33 Ville rouge climat…………. P(climat|rouge) = 1 Ville rouge climat chaud………. P(chaud|climat) = 0.5 Ville rouge climat chaud sec…. P(sec|chaud) = 1 Ville rouge climat chaud sec. P(</s>|sec) = 1
  • 41. Modèle bigramme: Générer une séquence 41J. DABOUNOU - FST DE SETTAT En se basant sur le tableau de probabilités des bigrammes, le modèle peut générer une séquence de mots. Marrakech ville rouge climat sec ocre chaud </s> <s> 0.67 0.33 0 0 0 0 0 0 Marrakech 0 0.67 0 0.33 0 0 0 0 ville 0.33 0 0.33 0 0 0.33 0 0 rouge 0 0 0 1 0 0 0 0 climat 0 0 0 0 0.5 0 0.5 0 sec 0 0 0 0 0 0 0 1 ocre 0 0 0 0 0 0 0 1 chaud 0 0 0 0 1 0 0 0 Il est ainsi probable que le modèle génère la séquence <s>Ville rouge climat chaud sec</s> On peut d'ailleurs calculer la probabilité d'obtenir cette séquence : P(<s>Ville rouge climat chaud sec</s>) = 0.33 x 0.33 x 1 x 0.5 x 1 x 1 = 0,05445 Le résultat final peut s’avérer sous-optimal. Ville ……………………………… P(Ville|<s>) = 0.33 Ville rouge …………………… P(rouge|ville) = 0.33 Ville rouge climat…………. P(climat|rouge) = 1 Ville rouge climat chaud………. P(chaud|climat) = 0.5 Ville rouge climat chaud sec…. P(sec|chaud) = 1 Ville rouge climat chaud sec. P(</s>|sec) = 1
  • 42. Chaine de Markov et modèle N-gramme 42J. DABOUNOU - FST DE SETTAT Une chaîne de Markov avec des probabilités de transition pour ce corpus ressemblerait alors à : On sous-entend dans ce graphe qu’un mot, à l’exception du mot spécial </s> ne peut pas être suivi par lui- même. Marrakech ville 0.67 <s> 0.67 0.33 0.33 rouge 0.33 climat 0.33 1 chaud 0.5 sec 1 ocre 1 0.33 </s> 1 0.5
  • 43. Evaluer un modèle N-gramme 43 On utilise un corpus (ou des corpora) de test et on évalue dessus le modèle. Le corpus de test est composé de données non utilisées dans l’entrainement du modèle. Un bon modèle de langue est celui qui attribue une grande probabilité aux séquences réelles courantes dans le langage et correctement structurées et de faibles probabilités à celles rarement utilisées ou incorrectement structurées. Il y a deux méthodes pour évaluer un modèle de langue: • Evaluation extrinsèque (appelée aussi évaluation in vivo) : intégrer le modèle dans une application et mesurer la performance totale de l'application. Cette application peut concerner la traduction automatique, la reconnaissance de la parole, l'analyse de sentiments,… L’évaluation extrinsèque est très coûteuse en temps et en ressources. • Evaluation intrinsèque : utilise les propriétés du modèle de langue sans chercher à l’appliquer à une tâche particulière. On va ici utiliser la perplexité pour évaluer le modèle de langue. J. DABOUNOU - FST DE SETTAT
  • 44. Perplexité des modèles N-gramme 44 La métrique de perplexité permet de mesurer le degré d’incertitude d’un modèle pour prédire, donc attribuer des probabilités, à un texte. Réduire l’incertitude correspond à diminuer la perplexité, ou encore l’entropie introduite par Shannon. Un bon modèle de langue doit créer une séquence significative en plaçant un mot en fonction des valeurs de probabilité conditionnelle qui ont été attribuées à l'aide du corpus d'apprentissage. Par conséquent, la capacité d'un modèle de langage à prédire le mot suivant et donc à créer une phrase significative est affirmée par la valeur de perplexité attribuée au modèle de langue sur un corpus de tests. On va utiliser les séquences suivantes, qui constituent donc le corpus de test Ctest, pour illustrer cette notion : 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. J. DABOUNOU - FST DE SETTAT
  • 45. Comprendre la notion de perplexité 45 On ôte le dernier mot de chacune des trois séquences et on demande au modèle entrainé de les prédire. Entre deux modèles entrainés, le meilleur est celui qui va attribuer, en moyenne, une plus grande probabilité aux mots que nous venons d'ôter. 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. J. DABOUNOU - FST DE SETTAT
  • 46. Maghreb : 0.125 Atlas : 0.125 Atlantique : 0.125 Continent : 0.125 Sahara : 0.125 Occident : 0.125 Monde : 0.125 empire : 0.125 Maghreb : 0.65 Atlas : 0.1 Atlantique : 0.08 Continent : 0.05 Sahara : 0.04 Occident : 0.04 Monde : 0.03 empire : 0.01 P(𝐰 𝟏 𝐧 ) Comprendre la notion de perplexité 46 Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue respectifs ML1 et ML2 : 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. J. DABOUNOU - FST DE SETTAT
  • 47. Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue ML1 et ML2 : 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. Maghreb : 0.125 Atlas : 0.125 Atlantique : 0.125 Continent : 0.125 Sahara : 0.125 Occident : 0.125 Monde : 0.125 empire : 0.125 • Mauvaise prédiction • Beaucoup d’incertitude • Perplexité maximale Maghreb : 0.65 Atlas : 0.1 Atlantique : 0.08 Continent : 0.05 Sahara : 0.04 Occident : 0.04 Monde : 0.03 empire : 0.01 • Bonne prédiction • Moins d’incertitude • Perplexité réduite Comprendre la notion de perplexité 47J. DABOUNOU - FST DE SETTAT P(𝐰 𝟏 𝐧 )
  • 48. Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue ML1 et ML2 : 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. Maghreb : 0.65 Atlas : 0.1 Atlantique : 0.08 Continent : 0.05 Sahara : 0.04 Occident : 0.04 Monde : 0.03 empire : 0.01 • Bonne prédiction • Moins d’incertitude • Perplexité réduite • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 1.83 • Perplexité : PP(w1 n ) = 2H(w1 n) = 3.56 Maghreb : 0.125 Atlas : 0.125 Atlantique : 0.125 Continent : 0.125 Sahara : 0.125 Occident : 0.125 Monde : 0.125 empire : 0.125 • Mauvaise prédiction • Beaucoup d’incertitude • Perplexité maximale • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 𝟑 • Perplexité : PP(w1 n ) = 2H(w1 n) = 𝟖 Comprendre la notion de perplexité 48J. DABOUNOU - FST DE SETTAT P(𝐰 𝟏 𝐧 )
  • 49. • Le modèle prédit bien • Entropie faible : 1.83 bits • Perplexité : 3.56 mots • Le modèle est perplexe • Entropie grande (maximale) : 3bits • Perplexité : 8 mots Maghreb : 0.65 Atlas : 0.1 Atlantique : 0.08 Continent : 0.05 Sahara : 0.04 Occident : 0.04 Monde : 0.03 empire : 0.01 • Bonne prédiction • Moins d’incertitude • Perplexité réduite • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 1.83 • Perplexité : PP(w1 n ) = 2H(w1 n) = 3.56 Maghreb : 0.125 Atlas : 0.125 Atlantique : 0.125 Continent : 0.125 Sahara : 0.125 Occident : 0.125 Monde : 0.125 empire : 0.125 • Mauvaise prédiction • Beaucoup d’incertitude • Perplexité maximale • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 𝟑 • Perplexité : PP(w1 n ) = 2H(w1 n) = 𝟖 Par exemple, pour la première séquence, si nous avons les probabilités suivantes pour les deux modèles de langue ML1 et ML2 : 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. Comprendre la notion de perplexité 49J. DABOUNOU - FST DE SETTAT P(𝐰 𝟏 𝐧 )
  • 50. Maghreb : 0.125 Atlas : 0.125 Atlantique : 0.125 Continent : 0.125 Sahara : 0.125 Occident : 0.125 Monde : 0.125 empire : 0.125 Comprendre la notion de perplexité 50 Pour le modèle de langue ML1 : Les probabilités pour les 8 mots sont égales (0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125). Situation équivalente à un dé de 8 faces non truqué. Ce modèle a une perplexité de 8. L'entropie est égale à 3. On a besoin de 3 bits pour représenter l'information. J. DABOUNOU - FST DE SETTAT P(𝐰 𝟏 𝐧 ) • Bonne prédiction • Moins d’incertitude • Perplexité réduite • Le modèle est perplexe • Entropie grande (maximale) : 3bits • Perplexité : 8 mots • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 𝟑 • Perplexité : PP(w1 n ) = 2H(w1 n) = 𝟖 Le Maroc est un pays du Grand Maghreb.
  • 51. Comprendre la notion de perplexité 51 Pour le modèle de langue ML2 : Les probabilités pour les 8 mots sont différentes (0.65, 0.1, 0.08, 0.05, 0.04, 0.04, 0.03, 0.01). Situation équivalente à un dé de 8 faces truqué. Le modèle attribue au mot Maghreb une probabilité de 0.65. Ce modèle a une perplexité de 3.56. L'entropie est égale à 1.83. On a besoin de 1.83 bits pour représenter l'information. J. DABOUNOU - FST DE SETTAT Maghreb : 0.65 Atlas : 0.1 Atlantique : 0.08 Continent : 0.05 Sahara : 0.04 Occident : 0.04 Monde : 0.03 empire : 0.01 P(𝐰 𝟏 𝐧 ) • Bonne prédiction • Moins d’incertitude • Perplexité réduite • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 1.83 • Perplexité : PP(w1 n ) = 2H(w1 n) = 𝟑. 𝟓𝟔 • Le modèle prédit bien • Entropie faible : 1.83 bits • Perplexité : 3.56 mots Le Maroc est un pays du Grand Maghreb.
  • 52. Comprendre la notion de perplexité 52 Dans le cas extrême où le modèle prédit le mot Maghreb avec certitude, c’est-à-dire : Les probabilités pour les 8 mots sont (1, 0, 0, 0, 0, 0, 0, 0). Situation équivalente à un dé de 8 faces toutes numérotées 1. Le modèle attribue au mot Maghreb une probabilité de 1. Ce modèle a une perplexité de 1. L'entropie est égale à 0. Il n'y a aucune incertitude sur le mot suivant, donc le nombre de bits nécessaires pour le connaitre est nul. J. DABOUNOU - FST DE SETTAT P(𝐰 𝟏 𝐧 ) • Prédiction exacte • Pas d’incertitude • Perplexité minimale • Entropie : H(w1 n ) = − k=1,n P(w1 n ) log2 P(w1 n ) = 0 • Perplexité : PP(w1 n ) = 2H(w1 n) = 𝟏 • Le modèle prédit bien avec certitude • Entropie nulle : 0 bits • Perplexité : 1 mots Maghreb : 1 Atlas : 0 Atlantique : 0 Continent : 0 Sahara : 0 Occident : 0 Monde : 0 empire : 0 Remarque : Si P(w1 n )=0, on pose P(w1 n ) log2 P(w1 n )=0. Le Maroc est un pays du Grand Maghreb.
  • 53. Estimation de vraisemblance 53 On suppose dans cette approche que le corpus de test noté Ctest, souvent extrait (hold out) du corpus d’origine, soit composé de séquences réelles et correctes. Donc le meilleur modèle sera celui qui attribue la probabilité la plus élevée à cet ensemble de test. Cela revient à dire que le modèle n’est pas surpris par les séquences du corpus de test, donc non perplexe face à ces séquences. Ce modèle doit ainsi maximiser l’estimation de vraisemblance : L(Ctest) = 𝐒 𝐂test P(𝐒) Ce qui revient à maximiser la log-vraisemblance: LL(Ctest) = 𝐒 𝐂test log P(𝐒) J. DABOUNOU - FST DE SETTAT
  • 54. Estimation de vraisemblance 54 On revient au corpus de test Ctest, composés ici de trois séquences, qui seront notées S1, S2 et S3 : 1. Le Maroc est un pays du Grand Maghreb. 2. Marrakech est surnommée la ville rouge. 3. Marrakech est magique. On estime la probabilité à maximiser pour le modèle N-gramme sous l'hypothèse naïve de l'indépendance des séquences, ce qui permet de décomposer cette probabilité comme le produit des probabilités des séquences, qui à leur tour sont des produits de probabilités de mots : L(Ctest) = 𝐒 𝐂test P(𝐒) = P(S1) P S2 P(S3) La log-vraisemblance à maximiser s'écrit : LL(Ctest) = 𝐒 𝐂test log P(𝐒) = log(P(S1)) + log P S2 + log(P S3 ) J. DABOUNOU - FST DE SETTAT
  • 55. Perplexité des modèles N-gramme 55 Dans un modèle bigramme, on a : L(Ctest) = P(Le Maroc est un pays du Grand Maghreb) x P(Marrakech est surnommée la ville rouge) x P(Marrakech est magique) P(S1) = P(Le Maroc est un pays du Grand Maghreb) = P(Le|<s>) x P(Maroc|Le) x P(est|Maroc) x P(un|est) x P(pays|un) x P(du|pays) x P(Grand|du) x P(Maghreb|Grand) x P(</s>|Maghreb). P(S2) = P(Marrakech est surnommée la ville rouge) = P(Marrakech|<s>) x P(est|Marrakech) x P(surnommée|est) x P(la|surnommée) x P(ville|la) x P(rouge|ville) x P(</s>|rouge). P(S3) = P(Marrakech est magique) = P(Marrakech|<s>) x P(est|Marrakech) x P(magique|est) x P(</s>|magique). J. DABOUNOU - FST DE SETTAT
  • 56. Probabilité et probabilité par mot 56 Supposons que le modèle prédit mieux les bigrammes de la séquence S1 que les bigrammes de la séquence S3. Soit par exemple : Il y une incohérence avec le fait que le modèle prédit mieux les bigrammes de la séquence S1 que les bigrammes de la séquence S3. On normalise donc cette probabilité sur les séquences par le nombre de mots. On pose : WP(S) = (P(S)) 1 ns, nsétant le nombre de mots (y compris </s>) de la séquence S. Remarque : ns est égal au nombre de bigrammes de la séquence S. J. DABOUNOU - FST DE SETTAT P(Le|<s>) = 0.75 P(Maroc|Le) = 0.75 P(est|Maroc) = 0.70 P(un|est) = 0.75 P(pays|un) = 0.80 P(du|pays) = 0.60 P(Grand|du) = 0.50 P(Maghreb|Grand) = 0.75 P(</s>|Maghreb) = 0.70 P(Marrakech|<s>) = 0.45 P(est|Marrakech) = 0.55 P(magique|est) = 0.40 P(</s>|magique) = 0.60 On a alors : P(S1) = 0.0372 P(S3) = 0.0594 et P(S1) < P(S3)  incohérence On a alors : WP(S1) = 0,6937 WP(S3) = 0.4937 et WP(S1) > WP(S3)  cohérence
  • 57. Perplexité d'une séquence 57 La perplexité du modèle sur une séquence S est définie comme étant l'inverse de la probabilité normalisée WP(S). Ainsi, pour un modèle bigramme : P(S) = k=1,ns P(wk|wk−1) WP(S) = (P(S)) 1 ns = ( k=1,ns P(wk|wk−1) ) 1 ns = ns k=1,ns P(wk|wk−1) PP(S) = (P(S)) −1 ns = 1 ns k=1,ns P(wk|wk−1) On a ainsi pour les séquences S1 et S3 : PP(S1) = 1.4415 PP(S3) = 2.0256 Ce choix de calcul de la probabilité par mots permet de comparer la probabilité de deux séquences. Il permet aussi de générer des séquences de mots de longueurs quelconques. J. DABOUNOU - FST DE SETTAT
  • 58. Vraisemblance par mot des modèles N-gramme 58 On utilise cette probabilité normalisée dans l’estimation de vraisemblance sur le corpus de test Ctest : WL(Ctest) = 𝐒 𝐂test WP(𝐒) = 𝐒 𝐂test (P(S)) 1 ns et dans la log-vraisemblance: WLL(Ctest) = 𝐒 𝐂test log WP(𝐒) = 𝐒 𝐂test log(P(S)) 1 ns = 𝐒 𝐂test 1 ns log(P(S)) Pour l'exemple illustratif: WL(Ctest) = 𝐒 𝐂test WP(𝐒) =(P(S1)) 1 ns1 (P(S2)) 1 ns2 (P(S3)) 1 ns3 WLL(Ctest) = 𝐒 𝐂test 1 ns log P(𝐒) = 1 ns1 log(P(S1)) + 1 ns2 log P S2 + 1 ns3 log(P S3 ) J. DABOUNOU - FST DE SETTAT
  • 59. Vraisemblance par mot des modèles N-gramme 59 Dans un modèle N-gramme, on cherche à maximiser la log-vraisemblance: LL(Ctest) = 𝐒 𝐂test log( k=1,nS P(wk|w1 k−1 )) = 𝐒 𝐂test k=1,nS log P(wk|wk−N+1 k−1 ) Comme cela a été montré dans l'exemple plus haut, les phrases peuvent avoir un nombre de mots variable et l’ajout de mot réduit la valeur de la probabilité attribuée à cette phrase par le modèle. Pour avoir une métrique indépendante de la taille des phrases (et éventuellement des corpora, on normalise la probabilité des séquences de test par le nombre total de mots. On obtient une log-vraisemblance par mot sur l'ensemble Ctest : WLL(Ctest) = 1 𝐒 𝐂test 𝐒 𝐒 𝐂test k=1,nS log P(wk|w1−N+1 k−1 ) Dans cette expression ns=|S| étant le nombre de mot dans la séquence S. J. DABOUNOU - FST DE SETTAT
  • 60. Perplexité des modèles N-gramme 60 On obtient aussi l’expression de la cross-entropie par mot: H(Ctest) = 1 SCtest 𝐒 𝐒 𝐂test k=1,nS −log2 P(wk|wk−N+1 k−1 ) Une écriture plus compacte de la cross-entropie avec ntest le nombre de mots dans Ctest. Cette écriture montre que la cross-entropie estime la capacité du modèle N-gramme à représenter les séquences test : H(Ctest) = i=1,ntest 1 ntest (−log2 P(wi|wi−N+1 i−1 ) La perplexité est donnée par l’expression PP(Ctest) = 2H(𝐂test) = eWLL(𝐂test) J. DABOUNOU - FST DE SETTAT