Déroulement du cours
• CM (6 x 2h = 12h)
• TP (6 x 2h = 12h) 2 groupes
Évaluation
Examen final / Note de TP / Mini-projet Sources :
• Cours de Matthieu Constant, Ingéniérie Informatique 1
http://igm.univ-mlv.fr/ens/Master/M1/2010-2011/IngenierieLinguistique1/cours.php
• Cours de Jean Véronis, Informatique et Linguistique 1
http://sites.univ-provence.fr/~veronis/cours/INFZ18/veronis-INFZ18.pdf Cours d'Alexandre Allauzen et Jérôme Azé, Université Paris-Sud
http://www.bioinfo-biostats-etudiants.u-psud.fr/Ressources/Cours/Master%202/ECT/
• Cours de Guillaume Wisniewski, Université Paris-Sud
http://perso.limsi.fr/Individu/wisniews/enseignement/old/10-11/10-11_rdf_m1/
Supports de cours, sujets de TP
• http://tinyurl.com/Infoling2014
Master 1 Informatique – Ingéniérie Linguistique
Philippe Gambette ([email protected])
Cours 1 à 6
Matthieu Constant TP 1 à 6
Un texte est une séquence de caractères
• lettres : abABéàûï
• chiffres : 1842
• séparateurs : espace, tabulation, retour à la ligne
• symboles de ponctuation :., ?
• autres symboles <()>
Textes
Différents encodages
• ASCII, ISO-8859, Latin1
• unicode UTF-8, UTF-16 Little Endian, UTF-16 Big Endian
Différents niveaux d’analyse Segmentation
Analyse lexicale
Étiquetage morphosyntaxique Analyse syntaxico-sémantique Analyse sémantico-pragmatique
• en phrases, délimitées par symboles de fin de phrase
• attribuer à chaque token, l’ensemble de ses catégories grammaticales possibles, puis
choisir la bonne, lemmatiser
• de surface : identification des constituants syntaxiques simples (ou chunks)
• en profondeur : construction de l'arbre syntaxique de la phrase
représentation prédicat-argument des phrases, résolution des anaphores, sens cachés
1
3 4 1 2
2 3 4 5
5
• en tokens : un mot (séquence de lettres), un nombre, un symbole de ponctuation, ...
Le cours de l’or a baissé de 10 euros lundi dernier. M. Bunton précise que c’est son plus bas niveau depuis 1998.
Exemple et illustration des analyses
Plan du cours
1. Introduction - Langages rationnels et ingénierie linguistique 2. Espaces vectoriels et recherche d'informations
3. Classification de documents
4. n-grammes, modèles de Markov et étiquetage grammatical 5. Analyse syntaxique par grammaires
6. Introduction à la traduction automatique, alignement de textes parallèles
Langages rationnels & expressions régulières
Éléments de base
• Un alphabet Σ de "lettres"
• Deux opérateurs : union (|) et concaténation (.)
Langage rationnel : ensemble de mots générés à partir de
l'alphabet et des opérateurs
Définition récursive : grammaires linéaires droites
Exemple :
Définition informelle
Motifs qui permettent de reconnaître des
séquences appartenant à un langage rationnel Peuvent se définir récursivement comme les langages rationnels
Exemple :
Expressions régulières en Python
Caractères spéciaux
• […] : spécification de classe de caractères
• . : la classe de caractère prédéfinie des
caractères graphiques visibles ou blancs ou de contrôle (sauf saut de ligne)
• * : quantificateur pour zéro, une ou plusieurs occurrences de ce qui précède
• ? : quantificateur pour au plus une occurrence de ce qui précède
• | : alternative, soit ce qui précède soit ce qui suit
• ( ) : délimiteurs de groupe (avec capture)
Déspécialisation des caractères spéciaux avec \
• \w : un caractère lettre ou chiffre
• \W : un caractère ni lettre, ni chiffre, le complément de \w
• \t : tabulation horizontale
• \n : saut de ligne
• \s : un élément de l'ensemble [\t \n \r \f]
• \S : tout élément non compris dans l'ensemble [\t \n \r \f]
from nltk import word_tokenize, wordpunct_tokenize
s = ("Good muffins cost
$3.88\nin New York. Please buy me\n two of them.\n\nThanks.") t = regexp_tokenize(s,
pattern='\w+|\$[\d\.]+|\S+') t contient alors :
['Good', 'muffins', 'cost', '$3.88', 'in', 'New', 'York', '.', 'Please', 'buy', 'me', 'two', 'of', 'them', '.', 'Thanks', '.']
# tokenisation du texte /tmp/test.txt
# encode en utf-8 import nltk
import codecs
f = codecs.open('/tmp/test.
txt','r','utf-8')
text = f.read().lower() f.close()
l = nltk.regexp_tokenize(text,
"\w+") print l
Automates finis
Définition informelle
• Un alphabet
• Un ensemble d’états
• Transitions allant d’un état à un autre, étiquetées par une lettre de l’alphabet
• États "spéciaux" : initiaux et finaux Reconnaissance
• ensemble de mots reconnus par un automate : langage rationnel
• mot reconnu par un automate s’il existe un chemin de l’automate allant d’un état initial à un état final, étiqueté par les lettres du mot (dans l’ordre)
Automate déterministe
• Un seul état initial
• De chaque état, ne sort au plus
qu'une seule transition étiquetée par un symbole donné de l’alphabet
• Pas de ε-transition
Automate déterministe minimal
Automate déterministe reconnaissant un langage rationnel L tel qu'il
n'existe pas d'automates finis
déterministes avec moins d’états
reconnaissant le même langage.
Reconnaissance d’une séquence par un automate
• Entrées : séquence de lettres (sequence) ; automate fini (dfa)
• Sortie : booléen
def isRecognized(sequence,dfa):
state = dfa.getInitialState() for symb in sequence :
state = dfa.getNextState(state,symb) if state is None :
return False if state.isFinal():
return True else
return False
Automates et expressions rationnelles, transducteurs
Equivalence
A partir d’un automate fini, il est possible de construire une expression rationnelle reconnaissant le même langage rationnel (et inversement).
En pratique
Expression rationnelle → automate
Transducteurs : extension des automates Mais : deux alphabets (entrée/sortie), et étiquettes sur les transitions de type entrée/sortie.
On reconnaît une séquence avec les entrées, on produit les sorties associées.
Attention : pas toujours les mêmes propriétés que les automates (ex. déterminisme)
Représentation de dictionnaires et automates
• Représenter un ensemble de mots du français (solution = automate)
• Donner à ces mots une catégorie grammaticale (solution = transducteur)
• Donner à ces mots une phonétisation (solution = transducteur)
• Représenter des expressions de date (solution = automate)
Thèse de Dominique Revuz (1991) :
• Dictionnaire DELAF : 600 000 mots
• Représentation par arbre : 2 000 000 noeuds
• Représentation par automate (fusion des terminaux sans successeurs) :
1 000 000 états
• Représentation par automate minimal : 50 000
états
Indexation
Indexation simple
But : trouver les documents contenant certains mots
→ À chaque mot, on associe l'ensemble des documents où il apparaît.
Indexation complexe
But : trouver les documents contenant une séquence de mots
→ À chaque mot, on associe l'ensemble des documents où il apparaît,
ainsi que ses positions.
Exercice
Créer l'expression régulière en Python qui extrait d'une chaîne de caractères contenant une adresse : le numéro, le type de voie, le nom de voie
Exemple d'adresses :
• 8 rue des Prés Jefsons
• 123, rue Saint-Jacques
• 66, rue Camille Desmoulins
• 240 avenue de Lodève
• 161 rue Ada
• Place Eugène Bataillon
• 49 ter rue Haguenot
• 78 rue Sénac-de-Meilhan
• 163 av de Luminy
• 5, bd Descartes
Recherche d'informations
Recherche d'informations
• Une requête :
• en langue naturelle
→ Répondre à la question
• Sous forme de mots clés
→ Trouver des documents pertinents pour y répondre
Vecteurs
Coordonnées (2 dimensions, n dimensions)
Soit un vecteur u défini par ses coordonnées (u
x,u
y). (u
1,u
2,... ,u
n) Norme
• Longueur du vecteur : |u| = u
x²+u
y² |u| = Σ u
i² Produit scalaire
• Produit de deux vecteurs qui renvoie un nombre : u.v = u
xv
x+u
yv
yu.v = Σ u
iv
iCosinus
• Dépend de l'angle formé entre les deux vecteurs : cos(u,v) =
• Comprise entre -1 et 1 pour les angles entre 0 et 2π
• Comprise entre 0 et 1 pour les angles entre 0 et π/2
u.v
|u||v|
n i=1
n i=1
Modèle des espaces vectoriels
Représentation simple des textes
• Un texte est un sac de mots (il n'y a plus d'ordre !)
• On associe à chaque mot un poids (nombre réel), mesurant son "importance" dans le texte
Application à la géométrie vectorielle
• Un texte est un vecteur dans un espace de grande dimension
• Chaque coordonnée correspond au degré d'importance d'un mot donné dans le texte
Pondération naïve
• Poids binaire (1 si terme présent dans le document, 0 sinon)
• Fréquence du mot dans le document Pondération plus intelligente
• On utilise des fonctions correctrices de la fréquence
• On prend aussi en compte la distribution du mot dans la collection où est plongée le texte
an anchored bahamas couple from in island off the throughout to traveled we were
d1
TF-IDF
Principe
On suppose que le texte traité est plongé dans une collection de documents Un mot pertinent d’un document apparaîtra plusieurs fois dans ce document Les mots non-pertinents sont distribués de manière homogène dans la collection
Fréquence des termes ou mots (TF)
tfi,j : fréquence du mot i dans le document j de la collection
nombre d'occurrences du mot i dans le document j normalisé par le nombre total de mots dans le document j
Fréquence inverse de document (IDF)
idfi mesure l'importance d'un terme dans l'ensemble de la collection idfi = log
Formule TF.IDF
Le poids di,j d'un mot i dans un document j est di,j = tfi,j . idfi m
D(i) avec m le nombre total de documents de la collection et
D(i) le nombre de documents de la collection où le mot i apparaît
Recherche d'informations
Principe
• L'utilisateur entre une requête décrivant une information qu'il cherche
• Le système renvoie une liste de documents pertinents par rapport à la requête
Deux approches
• Recherche exacte (ex. systèmes booléens)
• Recherche floue (ex. modèles à espaces vectoriels)
Système de R.I.
collection de documents
liste de
documents
requête
Recherche d'informations et modèles à espaces vectoriels
Représentation
Requêtes (des séquences de mots) et documents de la collection représentés sous la forme de vecteurs
Métaphore entre proximité spatiale et proximité sémantique
• Les documents les plus pertinents sont ceux qui ont les vecteurs les plus proches de celui de la requête
• Les documents les plus pertinents contiennent des mots similaires à ceux de la requête
→ La mesure de la pertinence d'une requête par rapport à un document consiste à comparer leurs vecteurs respectifs, par ex. cosinus de leur angle
an anchored bahamas couple from in island off the throughout to traveled we were
q d1 d2
Requête q : “island couple”
Pertinence des documents de la collection :
cos(q,d1) = cos(q,d2) =
Évaluation des systèmes
Qualité d'un système de RI
Dans quelle mesure les documents pertinents sont retournés avant les documents non pertinents ?
Mesures traditionnelles
• précision : proportion de documents pertinents dans la liste retournée
• rappel : proportion de documents pertinents dans la collection qui sont dans la liste retournée (difficile à évaluer !)
Précision traditionnelle pas suffisante
• ne tient pas compte du rang du document
• ex. Ranking 1 est clairement meilleur que Ranking 2 !
Solution alternative : le cutoff
• On regarde la précision de segments initiaux plus petits
• Ex. on peut calculer la précision au rang 5
Précision moyenne
Principe
• Précision calculée pour chaque point de la liste où l'on trouve un document pertinent
• Puis on fait la moyenne
Dans l'exemple :
• points pertinents : d0, d1, d2, d3 et d4
• précisions dans le Ranking 3 :
• moyenne :
Exemple
Evaluation Ranking 1 Ranking 2 Ranking 3
d0 : v d9 : x d5 : x
d1 : v d8 : x d0 : v
d2 : v d7 : x d1 : v
d3 : v d6 : x d9 : x
d4 : v d5 : x d8 : x
d5 : x d0 : v d2 : v
d6 : x d1 : v d4 : v
d7 : x d2 : v d3 : v
d8 : x d3 : v d6 : x
d9 : x d4 : v d7 : x
Précision à 10 :
Précision à 5 :
P. moyenne :
Techniques complémentaires de R.I.
Filtrage
• Parcours de l'ensemble des documents de la collection → coûteux
• Filtrage des documents non-pertinents par un index
Réduction de l'espace
• Racinisation des mots (ex. algorithme de Porter avec nltk)
• Filtrage des mots grammaticaux (ex. le, la, un, à, de, ...) ( ?)
Extension de la requête
• Ajout de synonymes à l'aide de ressources linguistiques
• Précision des requêtes avec de nouveaux mots (calculés à partir de statistiques de cooccurrence)
Algorithme pseudo-feedback Vecteur de la nouvelle requête :
r' = αr + β - γ
• R, ensemble de documents pertinents
• NR, ensemble de documents non pertinents
• Pseudo-feedback : γ = 0
• Vrai feedback : γ << β
Autres critères de recherche
• PageRank (Google)
• Positionnement des mots de la requête dans le document (ex. titre)
• Distance entre les mots de la requête dans le document
dj
Σ d
R j dj NR|R|
Σ d
j|NR|
Classification supervisée et non supervisée
Classification supervisée :
• On dispose d'éléments déjà classés
Exemple : articles en rubrique économie, politique, sport, culture...
• On veut classer un nouvel élément
Exemple : lui attribuer une étiquette parmi économie, politique, sport, culture...
Classification non supervisée
• On dispose d'éléments non classés Exemple : mots d'un texte
• On veut les regrouper en classes
Exemple : si deux mots ont la même étiquette, ils sont en rapport avec une même thématique...
?
Classification supervisée à deux classes
Conception d'une méthode
Étiquetage manuel du corpus + partitionnement du corpus en deux :
• un corpus d'apprentissage APP : éléments déjà classés + ou - (80%)
• un corpus d'évaluation EVAL : éléments à classer (20%)
• (si on organise un concours, un corpus de test TEST est fourni aux candidats)
Évaluation
• Précision : moyenne de la proportion de vrais documents + parmi les documents classés +, et de la proportion de vrais documents - parmi les documents classés -
• Rappel : moyenne de la proportion, parmi les vrais
documents +, des documents classés +, et de la proportion, parmi les vrais documents -, des documents classés -.
0 0 1
1
taux faux-positif
courbe ROC
“Receiver Operating Characteristic”
taux vrais-positifs
Si étiquettes non binaires : choix d'un seuil s pour attribuer l'étiquette – ou +
Taux frais positifs : fraction des vrais documents + classés + Taux faux positifs : fraction des vrais documents – classés +
La courbe ROC doit se
rapprocher le plus possible de (0,1) pour un bon classifieur.
Approche du centroïde
Idée :
Représenter chaque classe par son centre et classer le nouvel élément en fonction de sa distance aux centres (= centroïdes, barycentres, moyennes).
Exemple en dimension 2 : document D11(3,3) à classer
7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7
?
Classe 1 : D1 (1,1) D2 (1,2) D3 (2,1) Classe 2 : D4 (3,4) D5 (4,5) D6 (4,3) Classe 3 : D7 (4,2) D8 (5,2) D9 (6,1) D10(4,1)
i-ième coordonnée du centroïde de la classe k : Ck
i=
Σ Dj
i|classe k|
Dj ϵ classe k
Approche des k plus proches voisins
Idée :
Choisir pour chaque sommet la classe majoritaire parmi ses k plus proches voisins.
Exemple en dimension 2, k=3 : document D11(3,3) à classer
7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7
?
Classe 1 : D1 (1,1) D2 (1,2) D3 (2,1) Classe 2 : D4 (3,4) D5 (4,5) D6 (4,3) Classe 3 : D7 (4,2) D8 (5,2) D9 (6,1) D10(4,1)
Cas d'égalité :
• Augmenter k de 1 ? Fonctionnera si
classification à 2 classes, risque d'échouer sinon.
• Tirage au hasard.
• Pondération des voisins par rapport à leur distance au point à classer.
Approche des classifieurs linéaires & SVM
Idée pour une classification supervisée à 2 classes :
Classifieur linéaire : choisir une ligne qui sépare le mieux les deux classes.
Exemple en dimension 2 : document D11(3,3) à classer
7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7
?
Classe 1 : D1 (1,1) D2 (1,2) D3 (2,1) Classe 2 : D4 (3,4) D5 (4,5) D6 (4,3) D7 (4,2) D8 (5,2) D9 (6,1) D10(4,1)
SVM (séparateurs à vastes marges, support vector machine) :
• Maximiser la marge de part et d'autre du
classifieur linéaire.
• généralisation à des classifieurs non linéaires par transformation dans un espace de plus grande
dimension où il existe un hyperplan linéaire
séparateur “kernel trick”.
Classification non supervisée
Objectif : trouver une partition des données
Évaluation
Qualité des partitions calculées ?
• Formule de Rand entre deux partitions P1 et P2 :
Rand(P1,P2) = ratio de paires d'éléments se comportant pareil dans P1 et P2
• Formule “adjusted Rand” entre deux partitions P1 et P2 :
Prise en compte du fait que certaines paires se comportent pareil par hasard.
http://en.wikipedia.org/wiki/Rand_index
réunies dans P1 et dans P2 ou séparées dans P1 et dans P2
Approche des k-moyennes
Idée :
• Choisir k points au hasard, et les considérer comme des centroïdes
• Distribuer les points dans les k classes ainsi formées selon leur proximité au centroïde
• Utiliser les barycentres des classes comme nouveaux centroïdes et répéter jusqu'à ce qu'il n'y ait plus de changement.
Exemple en dimension 2 avec k=3:
5 4 3 2 1 0
0 1 2 3 4 5 6 7
Approche de la classification hiérarchique
Idée :
• Prendre les deux points les plus proches, les fusionner, considérer leur moyenne par la suite.
• Répéter jusqu'à un critère d'arrêt (par exemple distance supérieure à une certaine valeur).
• Ou bien découper l'arbre des fusions pour obtenir des classes.
Exemple en dimension 2 : 5
4 3 2 1 0
0 1 2 3 4 5 6 7
• Fonctionne aussi si on n'a pas les coordonnées des points mais
seulement les distances entre paires de points !
• Arbre construit de bas en haut : méthode bottom-up
Variantes de la classification hiérarchique
Variantes de la classification hiérarchiques
Pour calculer la distance entre deux classes C1 et C2 :
• calculer la moyenne des distances entre les éléments de C1 et les éléments de C2
• calculer le minimum des distances entre les éléments de C1 et les éléments de C2
• calculer le maximum des distances entre les éléments de C1 et les éléments de C2
Méthodes par division (top-down) plutôt que par agglomération (bottom-up)
Partitionnement de graphes
Classification non supervisée des sommets d'un graphe :
Une arête relie deux sommets à petite distance (forte similarité).
Score de qualité du partitionnement ? La modularité
Girvan & Newman 2004 Pas besoin de paramètres : nombre de classes et tailles des classes fixées automatiquement par l'optimisation de la modularité
Ci Є P
M(G,P) = S M( C
i)
M( C
i) = e
ii- ( e
ii+ S e
ij/2 )²
proportion d'arêtes observées dans la classe Ci
proportion d'arêtes attendues dans la classe C s'il n'y avait pas de communauté, et répartition au hasard en respectant les degrés
j≠i
eij = proportion d'arêtes avec un sommet dans Ci et l'autre dans Cj
Algorithmes heuristiques de maximisation par transferts d'éléments et fusion de classes
C
1C
2C
3C
4C
5C
6C
7Modèles probabilistes
Probabilité
• Soit X un événement dans une expérience aléatoire
• P(X) est la probabilité que X se produise (valeur réelle entre 0 et 1)
• Comment estimer P(X) ?
Exemple : séquence de symboles
• Alphabet={a,b,c}
• Séquence d'apprentissage de taille L(=10) : ababcaabca
• P(a) est la probabilité que a apparaisse P(a) = = #occ(a)
L
Probabilité de plusieurs événements
• Soient X et Y deux événements disjoints dans une expérience aléatoire
• P(X∩Y) = P(X,Y) est la probabilité que X et Y se produisent
Exemple : séquence de symboles
• Séquence d’apprentissage de taille L(=10) : ababcaabca
• P(a,b) est la probabilité que a apparaisse et que b apparaisse à la position suivante (sous- séquence ab)
P(a,b) = = #occ(ab) L-1
Modèles probabilistes
Probabilité conditionnelle
• P(X|Y) est la probabilité que X se produise étant donné que Y se produit
• P(X∩Y) = P(Y).P(X|Y)
Exemple : séquence de symboles
• Séquence d’apprentissage de taille L(=10) : ababcaabca
• On note P(b|a) la probabilité que b apparaisse sachant que a le précède
P(b|a) = = #occ(ab)
#occ(a)
Indépendance entre deux événements
• Si X et Y sont deux événements indépendants l’un de l’autre,
P(X∩Y) = P(X) . P(Y) Généralisation
• Si X1, X2, … , Xn sont n événements
60 10 20 30
BMW Ferrari
indépendants les uns des autres,
P(X1 ∩ X2 ∩ ... ∩ Xn) = P(X1) . P(X2) ... P(Xn)
Indépendance et probabilités conditionnelles Soient X, Y et Z trois événements, si X et Y sont deux événements indépendants l'un de l’autre P(X∩Y | Z) = P(X|Z) . P(Y|Z)
Généralisation
Si X1, X2, … , Xn sont n événements indépendants les uns des autres,
P(X1∩X2∩...∩Xn |Y) = P(X1|Y).P(X2|Y) ... P(Xn|Y)
Classification bayésienne
Formule de Bayes : P(Y|X) =
Maximisation : argmaxY P(Y|X) = argmaxY P(Y) . P(X|Y) Motivation
On cherche à assigner la catégorie c la plus probable à un document d au moyen d'un modèle probabiliste.
Formalisation du problème
• Soit C l'ensemble des catégories possibles
• P(c|d) est la probabilité d’avoir la catégorie c étant donné un document d
• Pour chaque nouveau document d, déterminer la catégorie ĉ définie par ĉ = argmaxc∈C P(c|d) =maxY P(c) . P(d|c)
Collection d'apprentissage (APP)
Document Contenu Catégorie
D1 aabd oui
D2 abcd non
D3 abbc oui
P(Y) . P(X|Y) P(X)
On considère que a, b, c et d sont des mots.
Classification d'un nouveau document
Trouver la meilleure catégorie (oui ou non) pour un nouveau document D=abbd
Classification bayésienne – estimation des probabilités
Notations
• APP(c) : ensemble des documents catégorisés c de APP
• APP : ensemble documents dans APP
• |E| : nombre d'éléments de l'ensemble E
Estimation de P(c)
• Formule : P(c) =
• Exemple : P(oui) = P(non)=
Estimation de P(d|c) Comment faire ?
Calcul de P(X|Y) Caractérisation de X
On considère que X est caractérisé par k traits X1, X2, ..., Xk.
Hypothèse naïve
On considère que les traits de X sont mutuellement indépendants les uns des autres.
Formule
P(X|Y)=P(X1, X2,..., Xk|Y)=P(X1|Y).P(X2|Y)...P(Xk|Y)
|APP(c)|
|APP|
Classification bayésienne – estimation des probabilités
Caractérisation d'un document d
Un document est caractérisé par ses mots.
Calcul des probabilités
P(D|oui) =P(a, b, b, d|oui) = P(a|oui).P(b|oui).P(b|oui).P(d|oui) Apprentissage : estimation de P(Xi|c)
P(Xi|c) est le nombre d'occurrences du mot Xi dans APP(c), divisé par le nombre total de mots dans APP(c)
Collection d’apprentissage (APP)
Document Contenu Catégorie
D1 aabd oui
D2 abcd non
D3 abbc oui
D4 bc oui
On considère que a, b, c et d sont des mots.
Questions
1. Estimer les probabilités du modèle, c'est- à-dire tous les P(Xi|c)
2. Trouver la catégorie la plus probable pour le document D=abbd
Les n-grammes
38
Définition
Un n-gramme est une sous-séquence de n symboles (n = 1 → unigramme ; 2 → bigramme ; 3 → trigramme)
Estimation des probabilités de n-grammes
• Utilisation d'un corpus d'apprentissage de taille L
• Formule : P(m1m2 ... mn) =
Principe
La vraisemblance du prochain symbole dépend d'un historique de symboles de taille limitée à n-1 (et non pas de toute la sous-séquence des symboles précédents).
Estimation des probabilités conditionnelles P(m1m2 ... mn) =
#occ(m1m2 ... mn) L-n+1
#occ(m1m2 ... mn)
#occ(m ... m )
Modèles probabilistes
Corpus d'apprentissage
• Alphabet de 3 lettres {a,b,c}
• Texte = aabaacaab (L=9) Dénombrement
• 1-grammes :
• 2-grammes :
• 3-grammes :
Exemples de probabilités
• P(a) = ; P(ab) = ; P(aab) =
• P(a|a) = ; P(b|aa) =
Probabilité d'une séquence
Principe
• Soit une séquence m = m1m2 ... mk
• Plus k est grand, moins le calcul "classique" de la probabilité de m est fiable (ou possible)
• Solution : principe du modèle des n-grammes Formule
• n=2 : P(m) = P(m1) . P(m2|m1) ... P(mk|mk-1)
• n=3 : P(m) = P(m1) . P(m2|m1) . P(m3|m1m2) ... P(mk|mk-2mk-1) Deviner la probabilité d'une séquence
• Corpus d'apprentissage Alphabet de 3 lettres {a,b,c}
Texte = aabaacaab (L=9)
• Question
Soit le message m(*) = a*ab avec * symbolisant une lettre invisible.
Deviner la lettre la plus probable pour * avec le modèle bigramme.
Canal bruité
Principe
Une séquence source s inconnue, est émise et transmise à travers un "canal bruité". En sortie, la séquence observée o est altérée. L’objectif est de décoder la séquence observée, i.e. retrouver la séquence source.
Formalisation
• Trouver la séquence ŝ qui maximise la probabilité P(s|o) parmi toutes les séquences s possibles
• Par la formule de Bayes :
ŝ = argmaxs P(s|o) = argmaxs P(o|s) . P(s) Verrous
• Estimation des probabilités. Ex : Modèle de Markov caché
• Maximisation efficace de P(s|o)
• Le nombre de séquences s candidates croît exponentiellement en fonction de la longueur
• Utilisation de la programmation dynamique (cf. prochain cours)
Modèle de Markov caché et étiquetage grammatical
But
Associer à une séquence w = w1 ... wk de mots, une séquence e = e1 ... ek d'étiquettes appartenant à un jeu d'étiquettes J.
Point de vue probabiliste
Trouver la séquence la séquence
d'étiquettes ê qui maximise P(e|w) parmi l'ensemble des séquences d'étiquettes possibles.
ê = argmaxe P(e|w)=argmaxe P(w|e).P(e)
Principe
Symbole visible : mot
Symbole caché à découvrir : étiquette Hypothèses d'indépendance
Hypothèses de Markov pour le calcul de P(w|e).P(e)
• P(w|e) ? un symbole observé (mot) ne dépend que du symbole caché associé (étiquette)
• P(e) ? un symbole caché (étiquette) ne dépend que de ses n précédents
Modèle de Markov caché d'ordre n : les calculs
Objectif : trouver la séquence e d’étiquettes qui maximise P(w|e).P(e) Calcul de P(w|e) : P(w|e) = P(w1|e1).P(w2|e2)...P(wn|en)
Calcul de P(e) pour n=1 (modèle des bigrammes) : P(e)=P(e1).P(e2|e1).P(e3|e2)...P(en|en-1)
pour n=2 (modèle des trigrammes) : P(e)=P(e1).P(e2|e1).P(e3|e2e1)...P(en|en-1en-2) Estimation des probabilités conditionnelles :
Corpus d'apprentissage
Le corpus utilisé pour l'apprentissage des probabilités de base est un corpus annoté : chaque token est associé à une catégorie grammaticale.
Calcul des probabilités d'émission P(wi|ei) P(wi|ei) =
Calcul des probabilités de transitions P(ei|ei-1) P(ei|ei-1) =
#occ(wi,ei)
#occ(ei)
#occ(ei-1ei)
#occ(e )
Modèle de Markov caché d'ordre n : un exemple
X Y
a 1/10 6/10
b 4/10 3/10
c 5/10 1/10
X Y
X 7/10 4/10
Y 3/10 6/10
Exemple avec n=2 :
On suppose que J={X, Y} et que notre vocabulaire est {a, b, c}.
Probabilités des étiquettes P(ei) P(X)=6/10 P(Y)=4/10
Probabilités d'émission P(wi|ei)
Probabilités de transition P(ei|ei-1)
Quelle est la séquence d’étiquettes du mot w=acba ?
Modèle de Markov caché d'ordre n : décodage
Décodage = trouver la séquence d'étiquettes la plus probable Première solution (naïve)
Calculer la probabilité de chacune des séquences d'étiquettes.
=> temps de calcul exponentiel Seconde solution (optimisation)
Application de l'algorithme de programmation dynamique : Viterbi.
=> temps de calcul réduit
En entrée de l'algorithme : treillis de la phrase (exemple : phrase acba).
Principe du treillis de la phrase
Le treillis de la phrase représente sous la forme d'un graphe toutes les séquences d'étiquettes possibles, pour une séquence données de mots.
Un noeud correspond à une étiquette possible.
Etiquettes grammaticales
Les étiquettes attribuées aux mots peuvent provenir de différentes sources : le corpus
Décodage par programmation dynamique : Viterbi
Trouver la séquence d'étiquettes la plus probable
=> La probabilité d'un chemin du treillis est le produit des poids du chemin.
=> Trouver le chemin le plus probable.
Algorithme de Viterbi
=> Algorithme itératif
=> A chaque étape (mot i), on se sert des calculs faits à l'étape précédente (mot i – 1)
=> Remplissage itératif d'une matrice (ligne=étiquette ; colonne=mot) colonne par colonne en partant de la première et en terminant par la dernière.
Notations
- wi mot à l'indice i (colonne i).
- ej étiquette à la ligne j.
- Proba[j,i] : probabilité maximale d'accéder au noeud (j,i) du treillis en partant du noeud start
Initialisation (i = 1) :
Proba[j,1] = P(ej)*P(w1|ej)
On garde en mémoire (dans Back[j,i]) l'étiquette ek qui a permis de maximiser Récurrence pour i > 1 :
Proba[j,i] = maxk (Proba[k,i-1]*P(ej|ek)*P(wi|ej))
Décodage par programmation dynamique : Viterbi
a b ... c
X p(X).p(a|X) max(
p(i-1).p(X|X).p(b|X), p(i-1).p(X|Y).p(b|X), p(i-1).p(X|Z).p(b|X) )
... ...
Y p(Y).p(a|Y) ... ... ...
Z p(Z).p(a|Z) ... ... ...
a b ... c
X ... 0.3 ...
0.2
Y 0.2 ... ...
0.1
Z ... ... ...
Proba
Back
Décodage par programmation dynamique : exercice
Pourquoi « modèle de Markov caché ? »
Calcul de P(e)
Peut se voir comme une « chaîne de Markov » (automate avec probabilités sur les transitions)
→ probabilité de e = longueur du
chemin dont les arêtes sont pondérées par les probabilités
Maximisation de P(w|e).P(e)
Automate avec des « états cachés » (les étiquettes, qui ont permis de générer la séquence de mots, qui ne sont pas connues)
→ rechercher le chemin de
plus fort poids, avec pondération des arêtes et des états
ART
P(N|ART) P(ART|N)
P(V|N)
P(ART|V) P(N|V)
P(ADJ|V) N
ADJ
V P(ADJ|N)
P(V|ART)
P(ADJ|ART) P(N|ADJ)
Automate représentant la chaîne de
P(N|N)
P(V|V)
P(ADJ|ADJ) P(ART|ART)
I P(N)
P(ART) P(V)
P(ADJ)
La chaîne de Markov vue comme un automate
Autres modélisations probabilistes
• Les modèles de Markov sont performants et rapides.
• Cependant, il existe de nombreux modèles probabilistes dits
“discriminants” permettant d'améliorer significativement les performances : - Maximum d'entropie
- Champs conditionnels aléatoires
Performances sur le français
Score
Markov ordre 2 96.5
Modèle discriminant 97.5
Désambiguïsation symbolique
Principe
Application de règles de désambiguisation écrites manuellement sur l'automate afin de supprimer des ambiguités lexicales.
• en général, désambiguisation partielle (peu de règles ou règles inefficaces).
• utilisation d'heuristiques ou d'un modèle probabiliste pour déterminer la séquence d'étiquettes.
Plusieurs systèmes de règles
- Elag (intégré à Unitex) : http://igm.univ-mlv.fr/~unitex/.
- EngCG développé pour le traitement de textes anglais.
Analyse syntaxique
But : déterminer l'arbre syntaxique d'une phrase.
Grammaires hors contexte (Context-Free Grammars) - extraction de règles à partir du corpus A → B
- deux types de règles :
=> règles lexicales, membre gauche = étiquette dérivation = mot du lexique
=> règles contextuelles, membre gauche = constituant dérivation = constituant(s)/étiquette(s)
Règles
contextuelles Règles lexicales S -> NP V DET -> le
S -> NP V NP DET -> la NP -> DET NC NPP -> Luc NP -> NPP V -> recouvre
Problèmes rencontrés en traduction automatique
Objectif
Traduire un texte d'une langue source dans une langue cible automatiquement.
Ambiguïtés de la langue source
• Ambiguïté grammaticale
• Exemple 1 : light est soit un nom (lumière), soit un verbe (allumer), soit un adjectif (clair ou léger)
• Exemple 2 : face est soit un nom (visage), soit un verbe (affronter)
• Ambiguïté syntaxique
• Ambiguïté sémantique
• Exemple 1 : voler → fly ou steal
• Exemple 2 : bank → banque ou berge
• Ambiguïté de référence des pronoms
• … Problèmes
Structures
The student is likely to work
= Il est probable que l'étudiant travaillera
Anaphores
The soldiers killed the women. They were buried the next day.
= Les soldats ont tué les femmes. Elles (*Ils) furent enterrées le jour suivant.
Approches de traduction automatique
Approche interlangue
1. Représentation syntactico-sémantique interlangue du texte source 2. Génération du texte cible en partant de la représentation
Approche par transfert
1. Analyse lexicale et syntaxique du texte source
2. Transfert des structures et des traductions lexicales en langue cible
Approche directe
1. Traduction mot à mot du texte source vers le texte cible 2. Modification de l'ordre des mots traduits dans le texte cible
Approches de traduction automatique par transfert
Transfert lexical
• Exemple : car.Noun ↔ voiture.Noun
• Besoins : dictionnaires bilingues
Transfert de structures
• Exemple : the Adj Noun ↔ le Noun Adj + d
• Besoins : analyseur syntaxique et formalisme de transfert (ex. transducteurs d'arbres)
Transfert lexico-syntaxique
• Exemple : NP consist of NP ↔ NP consister en NP
• Besoins : idem que pour les transferts structures + lexiques syntaxiques
P(F|E).P(E) P(F)
Traduction automatique statistique
Objectif
Étant donné une phrase F dans une langue source (ex. français, espagnol), le but est de trouver une phrase Ê en langue cible (ex. anglais) qui maximise la probabilité
conditionnelle d'avoir une phrase E en langue cible.
Formule
Ê = argmaxE P(E|F)
= argmaxE (Formule de Bayes)
= argmaxE P(F|E).P(E)
Un modèle de traduction automatique statistique nécessite trois composants
• Un modèle de langage qui calcule P(E)
• Un modèle de traduction qui calcule P(F|E)
• Un décodeur qui prend une phrase F et produit la phrase la plus probable E.
Modèle de traduction
Modèle basé sur les mots
• Calculer des probabilités de traductions des mots
• Calculer des probabilités de déplacement des mots en langue cible
Modèle basé sur les séquences de mots
• idem mais pour les séquences de mots
Modèle fondé sur la syntaxe
• Mise en parallèle de structures d'arbres syntaxiques
• Modèle mathématique : grammaire transductive
Modèle de traduction basé sur les séquences de mots
Séquence de mots = unité fondamentale de traduction On utilise une table de traduction de séquences.
Par exemple, trad["green witch"] = [("grüne Hexe",0.86),...]
Génération de la traduction
Pour chaque phrase E = e1 e2 ... en, simultanément,
• on regroupe les mots en séquences (E = e1 e2 … ek) (plusieurs possibilités !)
• on traduit chaque séquence ei en une séquence fj
• on change, si besoin, l'ordre des mots dans F
Composants
• Probabilité de traduction φ(f|e) : probabilité de générer f à partir de e
• Probabilité de distorsion d(n) : Probabilité que les traductions de deux séquences consécutives de mots soient distantes de n dans la phrase générée
Modèle de traduction basé sur les séquences de mots
Idéalement
• Utilisation d'un corpus bilingue aligné par séquences de mots
• L'estimation des probabilités est alors directe :
φ(f|e) =
Dans la réalité
• Un tel corpus n'existe pas ou est trop petit !
• Extraction automatique des alignements par séquences à partir de l'alignement automatique par mots
count(f|e)
∑ count(g,e)
g
Alignement mot à mot
Corpus parallèle
• Un ensemble de couples de textes tel que, pour chaque couple, un des textes est la traduction de l’autre.
• Exemples : Europarl, Hansard, corpus de sous-titres
http://opus.lingfil.uu.se/ « OPUS is a growing collection of translated texts from the web »
Alignement au mot
Mise en correspondance des mots en langue source avec les mots en langue cible dans un ensemble de phrases parallèles
Exemple anglais → français
And the program has been implemented Le programme a été mis en application
Obtention d'un corpus parallèle aligné
1. Découper le corpus en phrases
2. Aligner les textes par phrases (alignements N à M possibles) 3. Pour les couples de phrases alignées, alignement au mot.
Alignement N à 1
Chaque mot dans la phrase cible ne doit être aligné qu'avec un seul mot dans la phrase source.
Mots vides
Un mot de la phrase cible peut ne pas avoir de correspondant dans la phrase source. On suppose l'existence d'un mot vide (NULL) en langue source aligné avec de tels mots.
Obtention d'un corpus parallèle aligné
Un alignement A est une suite
À chaque position j dans la phrase cible, on associe une position Aj dans la phrase source.
Exemples
• français → anglais : A = 1,2,3,3,3,4,4,5,5
• anglais → espagnol : A = 1,3,4,4,4,0,5,7,6
Le reste appartenait aux autochtones
The balance was the territory of the aboriginal people
NULL Mary did not slap the green witch Maria no dió una bofetada a la bruja verde
Alignement par heuristiques
Principe
• Utilisation d'une fonction de similarité entre les mots source et cible basée sur la cooccurrence de ces deux mots dans des phrases alignées
• Construction d'une matrice de similarité M pour chaque paire de phrases à aligner
• À chaque paire de mots (ei,fj) des deux phrases alignées, M(i,j) = dice(ei,fj)
Alignement des mots en fonction de M(i,j)
• Heuristique de recherche du maximum : Pour chaque position j dans la phrase cible, Aj
correspondra à la position i dans la phrase source, qui maximise M(i,j).
• Heuristique “Competitive linking algorithm” : 1. Aligner la paire de mots (i,j) qui maximise M(i,j) 2. Supprimer la ligne i et la colonne j de la matrice M 3. S'il reste des mots à aligner, aller à 1.
Notations
• e et f des mots respectivement en langue source et cible
• C(e,f), le nombre de fois que e et f apparaissent ensemble dans une paire de phrases alignées
• C(e), le nombre d'occurrences de e dans le corpus en langue source
• C(f), le nombre d'occurrences de f dans le corpus en langue cible Coefficient de Dice
dice(e,f) = Évaluation
• Résultats moins bons que des modèles probabilistes (ex. logiciel Giza++)
• Temps d'apprentissage tout à fait 2 C(e,f)
C(e)+C(f)
Alignement par heuristiques
The 0.193 0.002 0.228 0.217 0.006 0.193 0.005 0.143 0.088 0.001 Minutes 0.003 0.550 0.002 0.002 0.309 0.002 0.433 0.003 0.003 0.000 of 0.104 0.002 0.284 0.228 0.007 0.276 0.006 0.231 0.109 0.001 yesterday 0.006 0.016 0.005 0.006 0.010 0.005 0.351 0.006 0.006 0.007 s 0.069 0.003 0.141 0.137 0.006 0.126 0.007 0.106 0.070 0.001 sitting 0.008 0.024 0.006 0.006 0.128 0.006 0.023 0.007 0.006 0.000 have 0.085 0.003 0.258 0.147 0.007 0.117 0.006 0.156 0.088 0.001 been 0.062 0.002 0.121 0.119 0.006 0.113 0.006 0.099 0.076 0.000 distributed 0.001 0.012 0.001 0.001 0.000 0.001 0.005 0.001 0.001 0.300
Le procès-verbal de la séance d hier a été distribué