• Aucun résultat trouvé

Master 1 Informatique – Ingéniérie Linguistique

N/A
N/A
Protected

Academic year: 2022

Partager "Master 1 Informatique – Ingéniérie Linguistique"

Copied!
64
0
0

Texte intégral

(1)

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

(2)

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, ...

(3)

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

(4)

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

(5)

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 :

(6)

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

(7)

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.

(8)

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

(9)

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)

(10)

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

(11)

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.

(12)

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

(13)

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

(14)

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

x

v

x

+u

y

v

y

u.v = Σ u

i

v

i

Cosinus

• 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

(15)

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

(16)

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

(17)

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

(18)

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) =

(19)

É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

(20)

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 :

(21)

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 :

(22)

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|

(23)

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...

?

(24)

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.

(25)

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

(26)

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.

(27)

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”.

(28)

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

(29)

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

(30)

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

(31)

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)

(32)

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

1

C

2

C

3

C

4

C

5

C

6

C

7

(33)

Modè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

(34)

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)

(35)

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

(36)

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|

(37)

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

(38)

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 )

(39)

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) =

(40)

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.

(41)

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)

(42)

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

(43)

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 )

(44)

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 ?

(45)

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

(46)

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))

(47)

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

(48)

Décodage par programmation dynamique : exercice

(49)

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

(50)

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

(51)

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.

(52)

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

(53)

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.

(54)

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

(55)

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

(56)

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.

(57)

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

(58)

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

(59)

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

(60)

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

(61)

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.

(62)

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

(63)

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)

(64)

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é

Références

Documents relatifs

A trois heures et demie, tout dormait dans un bleu originel, humide et confus, et quand je descendais le chemin de sable, le brouillard retenu par son poids

Samedi dernier après-midi, Jones n’était pas capable de faire quelque chose qui aurait entraîné que Dieu a cru autre chose que ce qu’il a cru il y a quatre-vingts ans,

Le crime, en vérité, ne consiste pas en un fait particulier, dont la raison nous certifie la réalité, mais elle consiste en certaines relations morales, découvertes

Après avoir bu l’eau de la source, ses dents sont.. Le monstre a

Après avoir bu l’eau de la source, les dents du monstre sont.. Tim saute de joie, le Mâchefer n’a

Tous les parents chats attendent avec angoisse cette nuit là : la nuit où leur enfant sort pour la première fois seul.. Ne risque-t-il pas de se perdre, le

malles, les mallettes, les valises, le canari, les cannes à pêche, le chien dans son panier, le chat dans son couffin, les jumeaux dans leur berceau.. Ils mettent tout dans la

On raconte que le père fut rempli de joie quand il retrouva sa fille chérie mais que sa colère fut terrible lorsqu’il apprit que ses deux aînées avaient abandonné leur petite