Vous êtes sur la page 1sur 47

Traitement automatique des

langues
Objectifs

• Classification des documents


• Modèle de langage
• Étiquetage syntaxique
• Extraction d’information
• Représentation sac de mots (Bag of Words)
Motivation
• Le traitement automatique des langues naturelles (TALN / NLP) étudie la
composante langagière de l’intelligence artificielle

• Une caractéristique les plus distinctive de l’intelligence humaine est sa capacité à


comprendre / utiliser des langues complexes

• Une composante primordiale


derrière le test de Turing
Motivation
• Traitement automatique des langues naturelles
• Plusieurs applications
Recherche d’information
Motivation
• Traitement automatique des langues naturelles
• Plusieurs applications
Recherche d’information
Motivation
• Traitement automatique des langues naturelles
• Une grande variété d’applications commerciales
Reconnaissance de la Parole
Motivation
• Traitement automatique des langues naturelles
• Une grande variété d’applications commerciales
Reconnaissance de la Parole
Motivation
• Traitement automatique des langues naturelles
• Une grande variété d’applications commerciales
Système Question / Réponse
Motivation
• Traitement automatique des langues naturelles
• Une grande variété d’applications commerciales
Système Question / Réponse
Motivation
• Traitement automatique des langues naturelles
• Une grande variété d’applications commerciales
Traduction Automatique
Motivation
• Traitement automatique des langues naturelles
• Une grande variété d’applications commerciales
Traduction Automatique
Motivation
• On va se concentrer sur des tâches élémentaires
• Classification des documents
• Modélisation de langage
• Etiquetage syntaxique
• Extraction d’information
• Représentation sac de mots (Bag of Words)

• Ces taches sont souvent des outils utilisées dans des systèmes plus grands et plus
complexes du TALN
Classification des documents
Définitions

• Document [w1, …, wd] : liste de mots


• Pourrait être tout un texte
• Pourrait être tout une phrase
• Pourrait être quelques mots

• Mots wi : un mot ou une ponctuation


• On suppose que nos documents ont déjà été segmentés en mots
• Généralement facile à faire en arabe, anglais, ou français (en sépare en fonction des espaces
et des ponctuations)
• Difficile en chinois ou japonais (pas d’espaces entre les mots)
Classification des documents
• Soient les deux documents (question d’examen) suivants
L'algorithme A* est un algorithme de le perceptron multicouche est un type
recherche de chemin dans un graphe de réseau neuronal artificiel organisé
entre un nœud initial et un nœud final. en plusieurs couches. Un perceptron
Il utilise une évaluation heuristique sur multicouche possède au moins trois
chaque nœud pour estimer le meilleur couches : une couche d'entrée, au
chemin y passant, et visite ensuite les moins une couche cachée, et une
nœuds par ordre de cette évaluation couche de sortie.
heuristique.

• Laquelle est une question d’examen S4 ?


Classification des documents
• Les mots individuels sont très informatifs du sujet (catégorie) d’un document

• L’ordre des mots n’est pas souvent utile


• L’ordre reflète surtout la syntaxe d’une langue
• On suppose que la catégorie n’influence que la probabilité d’observer un mot
dans un document

• Ignorer l’ordre des mots va permettre de simplifier le système, sans trop


compromettre sa précision

• On va formaliser ces hypothèses à l’aide d’un réseau bayésien


Modèle bayésien naïf multinomial
• Un réseau bayésien naïf multinomial C a une distribution a priori
C S3 S4
ex.:
C P(C) 0.5 0.5
w1 est le premier mot somme à 1
d’un document
contenant d mots
w1 w2 Wd-1 wd
Modèle bayésien naïf multinomial
• Un réseau bayésien naïf multinomial W2 a une distribution
conditionnelle multinomiale
C
C S3 S4
w1 est le premier P(W1 = ‘’de’’| C) 0.01 0.01
mot d’un P(W1 = ‘’qui’’| C) 0.02 0.02
document … … …
contenant d mots w1 w2 Wd-1 wd
P(W1 = ‘’perceptron’’| C) 10-6 0.002

somme à 1
somme à 1
Modèle bayésien naïf multinomial
• Un réseau bayésien naïf multinomial W1 a une distribution
conditionnelle multinomiale
C
C S3 S4
w2 est le P(W2 = ‘’de’’| C) 0.01 0.01
deuxième mot P(W2 = ‘’qui’’| C) 0.02 0.02
d’un document … … …
contenant d mots w1 w2 Wd-1 wd
P(W2 = ‘’perceptron’’| C) 10-6 0.002

somme à 1
somme à 1
Modèle bayésien naïf multinomial
• Un réseau bayésien naïf multinomial

w1 w2 Wd-1 wd

En général la probabilité conjointe d’un document [W1, …, Wd] ayant d mots et


d’une catégorie C:
P([W1, …, Wd], C) = P(C) ∏i P(Wi | C)
Modèle bayésien naïf multinomial
• Exemple C S3 S4 C S3 S4
P(C) 0.5 0.5

S3

S4
La décision de la catégorie d’un document
• Pour classifier un document [W1, …, Wd], on choisit la classe c ayant la plus
grande probabilité a posteriori P(C = c | [W1, …, Wd])
argmax P(C = c | [W1, …, Wd])
= argmax log P(C = c) + ∑i log P(Wi = wi | C = c)

Exemple

S3

S4

= S4
Apprentissage du modèle
• Comment obtient-on les distributions P(C) et P(Wi | C) ?
• On les obtient à partir de vraie données
• On choisit P(C) et P(Wi | C) pour quelles reflètent des statistiques de ces données

• Soit un corpus, c.-à-d. un ensemble T de documents étiquetés {(Dt, ct)}


• Chaque document Dt est une liste de mots [Wt1, …, Wtd] de taille variable
• ct est la catégorie de Dt
Lissage du modèle
• Selon la formule P(Wi = w | C = c), un mot w aura une probabilité de 0 s’il n’apparaît
jamais dans notre corpus

• Si un seul des P(Wi = w | C = c) = 0, alors P(C = c, [W1, …, Wd]) = 0 !


• Les mots rares vont beaucoup faire varier P(C = c, [W1, …, Wd]) en général

• Pour éviter cette instabilité, deux trucs afin de lisser la distribution P(w | c)
• On détermine un vocabulaire V de taille fixe, et on associe les mots qui ne sont
pas dans ce vocabulaire au symbole OOV (out of vocabulary)
• Lissage δ : on ajoute une constante δ au numérateur, pour chaque mot
Lissage du modèle
• Exemple : soit le vocabulaire suivant
V = {« perceptron », « , », « de », « apprentissage »}

• La phrase
« Perceptron, un algorithme d’apprentissage. »

Sera représentée par la liste suivante


[« Perceptron », « , », « un », « OOV », « OOV », « apprentissage », « OOV »]
W1 W2 W3 W4 W5 W6 W7
• Les statistiques sont calculées à partir de cette représentation
On pourrit aussi enlever les mots « OOV » et les ignorer
Exemple
• Si parmi tous les examens de S3 (corpus de 426 mots)
• « Perceptron » apparaît 0 fois
• « , » apparaît 15 fois
• « un » apparaît 10 fois
• « apprentissage » apparaît 1 fois
• « OOV » apparaît 400 fois
somme à 1
• Si on utilise δ = 1, alors
• P(« Perceptron » | C = S3) = (1+0) / (1*(4+1) + 426) = 1 / 431
• P(« , » | C = S3) = (1+15) / (1*(4+1) + 426) = 16 / 431
• P(« un » | C = S3) = (1+10) / (1*(4+1) + 426) = 11 / 431
• P(« apprentissage » | C = S3) = (1+1) / (1*(4+1) + 426) = 2 / 431
• P(« OOV » | C = S3) = (1+4000) / (1*(4+1) + 426) = 401 / 431
Prétraitement des données
• Comment choisir V
• Ne garder que les mots les plus fréquents (ex : apparaissent au moins 10 fois )
• Ne pas garder les mots trop communs
• Ne pas inclure la ponctuation
• Ne pas inclure les déterminants (« un », « des », etc.)
• Ne pas inclure les conjonctions (« mais », « ou », etc.)
• Ne pas inclure les pronoms (« je », « tu », etc.)
• Ne pas inclure les verbes communs (« être », « avoir », « faire » etc.)

• Utiliser une forme normalisée des mots (fusion de mots différents en un seul )
• Enlever les majuscules (« Perceptron » → « perceptron »)
• Lemmatiser les mots (« marchons » → « marcher »,
« suis » → « être », « est » → être)
• Il n’y a pas de recette universelle, le meilleur choix de V varie d’une application à une
autre
Modèle de langage
• Dans le modèle de bays naïf multinomial, on peut distinguer deux parties
P([W1, …, Wd], C) = P(C) ∏i P(Wi | C)

modèle des catégories modèle de langage

• Un modèle de langage est une distribution sur un texte, c.-à-d. sur des séquences de
mots
• Étant donné un texte [w1, …, wd], lui assigne une probabilité (P([w1, …, wd]))

• Dans le modèle de bayes naïf multinomial, le modèle de langage est très simple
• Les mots sont générés indépendamment les uns des autres (étant donnée la catégorie C)
Modèle n-gramme
• Un meilleur modèle générerait le ie mot d’une phrase au moins à partir des quelques
mots précédents dans la phrase
P([W1, …, Wd]) = ∏i P(Wi | Wi-n+1, …, Wi-1)

n – 1 mots précédents

• On appelle de tels modèles de langage des modèles n-grammes


• Un n-gramme est une sous-séquence de n mots, extraite d’un corpus
• On les appelle modèles n-gramme parce qu’il sont estimés à partir des fréquences de tous les n-
grammes d’un corpus

• Ces modèles sont en fait des modèles (chaînes) de Markov d’ordre n-1
Modèle n-gramme
• Exemple : dans le documents
« Perceptron, un OOV OOV apprentissage OOV »
• Il y a
• 7 unigrammes (n=1) dont 5 différents
« Perceptron »
«,»
« un »
« OOV »
« OOV »
« apprentissage »
« OOV »
Modèle n-gramme
• Exemple : dans le documents
« Perceptron, un OOV OOV apprentissage OOV »
• Il y a
• 6 bigrammes (n=2) dont tous différents
(« Perceptron », « , »)
(« , », « un »)
(« un », « OOV »)
(« OOV », « OOV »)
(« OOV », « apprentissage »)
(« apprentissage », « OOV »)
Modèle n-gramme
• Exemple : dans le documents
« Perceptron, un OOV OOV apprentissage OOV »
• Il y a
• 5 trigrammes (n=3) dont tous différents
(« Perceptron », « , » , « un »)
(« , », « un » , « OOV »)
(« un », « OOV » , « OOV »)
(« OOV », « OOV », « apprentissage »)
(« OOV », « apprentissage », « OOV »)
• etc.
Apprentissage de Modèle n-gramme
• On peut apprendre un modèle n-gramme à partir des fréquences de n-grammes dans
un corpus de documents Dt

mot quelconque
Apprentissage de Modèle n-gramme
• Exemple : soit les fréquences totales suivantes

• Alors le modèle trigramme assignerait les probabilités :


P (Wi = « bayes » | Wi-2 = « modèle », Wi-1 = « de ») = 5 / 200
P (Wi = « Markov » | Wi-2 = « modèle », Wi-1 = « de ») = 25 / 200
P (Wi = « langage » | Wi-2 = « modèle », Wi-1 = « de ») = 10 / 200

Lissage de Modèle n-gramme
• On peut également lisser les modèles n-grammes en général
• Encore plus important, puisque plus un n-gramme est long, moins il sera fréquent
• La plupart des n-grammes imaginables auront une fréquence de zéro, pour n
grand

• Première approche :lissage δ


Lissage δ
• Exemple : soit les fréquences totales suivantes

• Trigramme avec Lissage δ = 0.1 et un vocabulaire de taille |V| = 999


P (Wi = « bayes » | Wi-2 = « modèle », Wi-1 = « de ») = (0.1+5) / (100+200) = 5.1 / 300
P (Wi = « langage » | Wi-2 = « modèle », Wi-1 = « de ») = (0.1+10) / (100+200) = 10.1 / 300
P (Wi = « langue » | Wi-2 = « modèle », Wi-1 = « de ») = (0.1+0) / (100+200) = 0.1 / 300
Lissage par interpolation linéaire
• Deuxième approche : lissage par interpolation linéaire
• Faire la moyenne (pondérée) de modèles unigrammes, bigrammes, trigrammes, …
Jusqu’à n-gramme

• Exemple :
• Le trigramme (« modèle », « de », « langue ») a une fréquence de 0
• Le bigramme (« de », « langue ») est présent dans le corpus
• Alors Pλ(Wi = w | wi-n+1, …, wi-1) > 0, en autant que λ2 ou λ1 >0
Application des modèles n-gramme
• Identification de la langue
• Étant donné un document, identifier dans quelle langue (anglais, français,
etc.) il est écrit
• On détermine d'abord un vocabulaire commun V pour toutes les langues
• Pour chaque langue l que l’on souhaite détecter
• On collecte un corpus de documents dans cette langue
• On assigne une probabilité a priori P(L = l) de la langue
• On apprend un modèle n-gramme P(Wi = w | wi-n+1, …, wi-1, L = l) sur ce corpus
• Étant donné un nouveau document, on lui assigne la langue la plus probable
Application des modèles n-gramme
• Classification de documents plus puissante
• L’identification de la langue peut être vu comme de la classification de
documents
• Équivaut à remplacer le modèle unigramme du modèle de bayes naïf par un
modèle de langage possiblement plus puissant
• Nécessaire si l’ordre des mots est important
(« bon » vs. « pas bon »)

• Et plusieurs autres
• Réaccentuation de textes
« modele bayesien » → « modèle bayésien »
• Traduction automatique
• Reconnaissance de la parole
Evaluation d’un modèles de langage
• Afin de choisir n, δ ou les λi (des hyperparamètres) on a besoin de définir la
notion de performance
• On choisirait les valeurs qui optimisent cette performance sur un corpus de
validation, autre que le corpus d’entrainement et de test

• Si on sait dans quel système sera utilisé le modèle de langage, on utilise la


performance de ce système
• ex.: taux de succès d’un système d’identification de la langue

• Sinon, on peut calculer la perplexité (perplexité basse = performance bonne)


Étiquetage syntaxique
• En plus de l’identité des mots, il peut être utile de connaître l’étiquette
syntaxique de chacun de ces mots
• « une visite à la ferme » → « ferme » est un nom
• « Jean ferme la porte » → « ferme » est un verbe

• Connaître la catégorie grammaticale d’un mot peut faciliter une autre tâche
• ex. : Traduction automatique
si « ferme » est un nom → « farm »
si « ferme » est un verbe → « close »
Extraction d’information
• Nous avons vu comment catégoriser des documents
• Nous avons vu comment les étiqueter automatiquement

• Une fois un document trouvé, comment y extraire l’information désirée


automatiquement

• ex.: extraire l’information d’une annonce de séminaire


• Le nom du présentateur
• La date de la présentation

« There will be a seminar by Présentateur : Dr. Andrew McCallum


Dr. Andrew McCallum on Date : Friday (vendredi)
Friday »
Représentation sac de mots (Bag of Words)
• Quel prétraitement à appliquer à nos données ?

• Segmentation en mots

• Définition d’un vocabulaire et remplacement de mots par <UNK> ou <OOV>

• Conversion de la liste de mots en un sac de mots (Bag of Words)


• Remplacer la liste par un vecteur X tel Xi = fréquence du je mot du vocabulaire

• L’information sur l’ordre des mots est perdue (pas de problème, puisqu’on ne
l’utilise généralement pas)
Représentation sac de mots (Bag of Words)
• Exemple :

• Document :
I am Sam. Sam I am. I do not like green eggs and ham.

• Vocabulaire : V = [<UNK>, I, am, Sam, ., do, not, green, and]

• Document prétraité :
X = [3, 3, 2, 2, 3, 1, 1, 1 ,1]
Influence des mots sur la prédiction
• Les mots n’auront pas tous la même influence sur la prédiction de la classe

• Les mots outils risque d’avoir peu d’impact, puisqu’ils sont utilisés
fréquemment

• Les mots les plus utiles sont ceux qui sont utilisés seulement dans certains
types de documents

• Un modèle statistique pourrait apprendre ce comportement automatiquement

• En pratique, on observe qu’il est quand même bénéfique d’encourager


explicitement ce comportement
Système de pondération TF-IDF
Idée : pondérer le poids de chaque mot dans la prédiction

• Jusqu’à maintenant, la pondération xt,j du je mot du vocabulaire est simplement


sa fréquence dans le te document

• Soit nj le nombre de documents contenant le je mot du vocabulaire

• On pourrait utiliser la proportion nj / N des documents contenant le je mot du


vocabulaire pour influencer sa pondération

• La pondération devrait être telle que plus la proportion nj / N est grande, moins
la pondération xt,j devrait l’être
Système de pondération TF-IDF
Idée : pondérer le poids de chaque mot dans la prédiction

• Soit tfi,j la fréquence du je mot du vocabulaire dans le te document (term frequency)

• Soit idfi,j le log de l’inverse de la proportion nj / N (inverse document frequency)

• La pondération TF-IDF est simplement le produit de tfi,j et idfi,j


Système de pondération TF-IDF
Idée : pondérer le poids de chaque mot dans la prédiction

• D’autres variations du TF-IDF existent

• En particulier, différents définitions du terme tfi,j sont parfois utilisées


• tfi,j binaire : 1 si un mot présent dans le document, sinon 0
• tfi,j logarithmique : 1 + log(fréquence du mot), 0 si la fréquence est 0

Vous aimerez peut-être aussi