Traitement Automatique du Langage Naturel
Chapitre 4
Lemmatisation et Modèles
04/11/23 Speech and Language Processing - Jurafsky and Martin 2
Qu’est-ce qu’un mot?
• Terminologie Lemme: un ensemble de formes lexicales ayant la
même racine, même partie du discours (POS), et approximativement le même sens de mot Cat et cats = même lemme
Forme du Mot: la forme de surface complètement inflexionnée. Cat et cats = formes de mots différentes
Distinction Token/Type Un token est une instance d’utilisation d’un lemme
dans un texte (ou une prononciation/articulation) Un type fait référence à un lemme donné
04/11/23 Speech and Language Processing - Jurafsky and Martin 3
Compter les mots• They picnicked by the pool then lay back on the grass and looked
at the stars 16 tokens 14 types
• SWBD (Switchboard corpus: communications téléphoniques) 2.4 million tokens ~20,000 types,
• Brown balanced English corpus 583 million tokens 293,181 types
• Shakespeare: 884,647 tokens 31,534 types
• Google 1,024,908,267,229 tokens 13,588,391 types
• Soit N = nombre de tokens, V = vocabulaire = nombre de types• Règle générale (informelle): V > O(sqrt(N))
04/11/23 Speech and Language Processing - Jurafsky and Martin 4
Segmentation (Tokenizing)
• Identifier les tokens (mots) dans un texte que nous voulons traiter
• Presque une condition préalable à faire quelque chose d'intéressant
• La difficulté varie avec la tâche et la langue
04/11/23 Speech and Language Processing - Jurafsky and Martin 5
Tokenizing
• Pour l’Anglais, pourquoi ne pas se contenter d’utiliser “l’espace / le blanc"? Mr. Sherwood said reaction to Sea Containers’ proposal
has been "very positive." In New York Stock Exchange composite trading yesterday, Sea Containers closed at $62.625, up 62.5 cents.
“I said, ‘what’re you? Crazy?’ “ said Sadowsky. “I can’t afford to do that.”
• L’utilisation de l’espace comme base du découpage donne des mots comme: cents. said, positive.” Crazy?
04/11/23 Speech and Language Processing - Jurafsky and Martin 6
Aspects de Ponctuation
• Ponctuation à l’intérieur des mots: M.P.H. Ph.D. AT&T 01/02/06 Google.com Yahoo! 555,500.50
• Clitiques What’re I’m
• Mots à tokens multiples New York Rock ‘n’ roll
04/11/23 Speech and Language Processing - Jurafsky and Martin 7
Aspects de Langage
• Français L'ensemble un ou deux tokens?
L ? L’ ? Le ? Nous voulons que l’ensemble corresponde à un
ensemble
• En Allemand les noms composés ne sont pas segmentés: Lebensversicherungsgesellschaftsangestellter “employé d’une compagnie d’assurance vie” Les systèmes de recherche d'information en Allemand bénéficient
grandement d'un module de segmentation des noms composés
• En Arabe, agglutination
أفنلزمكموها « devrons nous vous la forcer / vous forcer à la faire/ à l’accepter? »
04/11/23 Speech and Language Processing - Jurafsky and Martin 8
Aspects de Langage• Pas d’espaces entre les mots en Chinois et
en Japonais 莎拉波娃现在居住在美国东南部的佛罗里达。 莎拉波娃 现在 居住 在 美国 东南部 的 佛罗里达 Sharapova vit actuellement en Floride, sud-est
des USA
• Rendu plus difficile en Japonais, par l’enchevêtrement de caractères différents Dates/sommes en multiples formats
フォーチュン 500社は情報不足のため時間あた $500K(約 6,000万円 )
Katakana Hiragana Kanji Romaji
Slide de Chris Manning
04/11/23 Speech and Language Processing - Jurafsky and Martin 9
Exemple en Anglais
• Nous verrons bientôt de meilleurs exemples basés sur les probabilités
thetabledownthere
the table down theretheta bled own there
04/11/23 Speech and Language Processing - Jurafsky and Martin 10
Normalisation
• Besoin de “normaliser” les mots Pour diverses applications nous voulons avoir des mots
qui sont dans un format canonique pour faire les correspondances (matching) E.g. U.S.A. et USA اقسم vs أقسم
• Le plus souvent nous définissons de façon implicite des classes d’équivalences de termes Par exemple, en supprimant les points à l’intérieur des
mots Ou par recherche
04/11/23 Speech and Language Processing - Jurafsky and Martin 11
Morphologie de surface
• Parfois, on a besoin de connaitre la racine d'un mot sans se soucier de sa structure, ou même la racine correcte pour peu qu’on obtienne une chaîne cohérente Stemming (Racinisation)
• Parfois, on a besoin d'une segmentation sans aucune analyse des parties Hyphenation
04/11/23 Speech and Language Processing - Jurafsky and Martin 12
Lemmatisation pour la Recherche d’Information
• Exécuter un stemmer (lemmatiseur) sur les documents à indexer
• Exécuter un stemmer sur les requêtes des utilisateurs
• Correspondance (matching) Il s'agit essentiellement d'une forme de
hachage, où vous êtes à la recherche de collisions
04/11/23 Speech and Language Processing - Jurafsky and Martin 13
Stemmer de Porter
• Pas besoin d’un lexique• Fondamentalement, un ensemble de
règles de réécriture (rewrite rules) qui éliminent les suffixes
• Traite les suffixes inflectionnels aussi bien que dérivationnels
• Ne garantit pas que le lemme résultant est vraiment un lemme (voir le 1er point plus haut)
• Ce manque de garantie n’importe pas pour la RI
04/11/23 Speech and Language Processing - Jurafsky and Martin 14
Stemmer de Porter: Exemple
• Computerization ization -> -ize computerize ize -> ε computer
04/11/23 Speech and Language Processing - Jurafsky and Martin 15
Porter
• Dans la description initiale du stemmer de Porter, il n'a pas été présenté comme un transducteur, mais… Chaque étape est un transducteur
séparé Les étapes peuvent être composées
pour obtenir un grand transducteur http://tartarus.org/martin/PorterStemmer/
Implementations en C, Java, Perl, Python, C#, Lisp, Ruby, VB, javascript, php, Prolog, Haskell, matlab, tcl, D, et erlang
04/11/23 Speech and Language Processing - Jurafsky and Martin 16
Segmentation d’une Phrase
• Pourquoi ne pas simplement utiliser la ponctuation pour extraire les phrases ... Plus précisément s’arrêter sur le « point espace » “._” Mr. Sherwood said reaction to Sea Containers’
proposal has been “very positive.” In New York Stock Exchange composite trading yesterday, Sea Containers closed at $62.625, up 62.5 cents.
“I said, ‘what’re you? Crazy?’ “ said Sadowsky. “I can’t afford to do that.”
• Parce que le ‘.’ est ambigu en Anglais... Et n’existe même pas en Chinois...
04/11/23 Speech and Language Processing - Jurafsky and Martin 17
Segmentation d’une Phrase • !, ? Sont relativement non ambigus• Le point “.” est assez ambigu
Fin (limite) de phrase Abbreviations comme Inc. ou Dr.
• Idée Générale: Construire un classifieur binaire:
Prend un “.” Décide EndOfSentence/NotEOS (fin de phrase ou
pas) Classifieur = règles écrites manuellement, ou séquences d’expressions régulières, ou par apprentissage automatique
04/11/23 Speech and Language Processing - Jurafsky and Martin 18
Version Arbre Décisionnel
04/11/23 Speech and Language Processing - Jurafsky and Martin 191/5/07
Plus de détails
• Prob(mot avec “.” en fin de phrase)• Prob(mot avec “.” en début de phrase)• Longueur d’un mot avec “.”• Longueur d’un mot après “.”• Cas d’un mot avec “.”: Majuscules,
Minuscules, 1ère lettre capitale, Nombre• Cas d’un mot après “.”: Majuscules,
Minuscules, 1ère lettre capitale, Nombre• Ponctuation après “.” (s’il y en a)• Abbréviation d’une classe de mot avec “.”
(nom de mois, unité de mesure, titre, addresse, etc.)
04/11/23 Speech and Language Processing - Jurafsky and Martin 20
Apprentissage Automatique Supervisé
• Etat de l'art consiste à le faire par Apprentissage Automatique supervisé Faire l’apprentissage d’un
SVM/Maxent/HMM etc. pour désambiguer les marqueurs de fin de phrase Tâche de décision binaire: “Ce point est-il
considéré comme un marqueur de fin de phrase ou pas»?
Evidemment, pour ce faire, on a besoin d'un excellent ensemble d’apprentissage
Et besoin d’être en mesure d'extraire les caractéristiques du texte à segmenter
04/11/23 Speech and Language Processing - Jurafsky and Martin 21
Apprentissage Automatique Supervisé
• L’extraction et ingénierie des caractéristiques sont souvent négligées en AA...
• C-à-d, les caractéristiques sont supposées être données et l'accent est mis sur les algorithmes
• Dans le TALN, l'accent est mis sur la recherche des caractéristiques utiles et d'être en mesure de les extraire
04/11/23 Speech and Language Processing - Jurafsky and Martin 22
Comparison de Séquences• Une fois que nous avons le genre de séquences que
nous voulons, quel genre de choses simples pouvons nous faire?
• Comparer des séquences (déterminer des similarités) À quelle distance sont une paire de chaînes l’une de
l'autre?
• Alignement Quel est le meilleur moyen d'aligner les divers
morceaux de deux séquences?
• Distance d’édition Distance d’édition minimale Distance d’édition minimale pondérée
04/11/23 Speech and Language Processing - Jurafsky and Martin 23
Correction d’Orthographe
• Comment corriger “graffe”? Chercher tous les mots dans le lexique
graf craft grail giraffe
Sélectionner celui qui est “le plus proche” de graffe
Que signifie “le plus proche” ? Nous avons besoin d’une mesure de distance. La mesure la plus simple: distance d’édition
À la “diff” dans Unix
04/11/23 Speech and Language Processing - Jurafsky and Martin 24
Distance d’Edition
• La distance d'édition minimale entre deux chaînes est le nombre minimum d'opérations d'édition Insertion Suppression Substitution
nécessaires pour transformer une chaîne de caractères en une autre
N.B.: Possibilités d’erreurs (corrections) multiples
04/11/23 Speech and Language Processing - Jurafsky and Martin 25
Distance d’Edition Minimale
• Si chaque opération a un coût de 1 la distance entre ces mots est 5• Si une substitution a un coût de 2 (Levenshtein) la distance entre ces mots est 8
04/11/23 Speech and Language Processing - Jurafsky and Martin 26
Exemple “Edit Min ”
04/11/23 Speech and Language Processing - Jurafsky and Martin 27
“Edit Min ” comme Recherche
• Nous pouvons considérer la distance d'édition comme la recherche d'un chemin (une suite de modifications) qui nous mène de la chaîne de départ à la chaîne finale Etat initial est le mot que nous voulons
transformer Les opérateurs sont: insérer, supprimer,
substituer Etat final: le mot que nous essayons d'obtenir coût du chemin (que nous essayons de réduire
autant que possible): le nombre d’éditions
04/11/23 Speech and Language Processing - Jurafsky and Martin 28
“Edit Min ” comme Recherche
04/11/23 Speech and Language Processing - Jurafsky and Martin 29
“Edit Min ” comme Recherche
• Problème: cela génère un espace de rechercheimmense
• Naviguer dans l'espace avec un retour en arrière naïf serait un gaspillage fou!
• Pourquoi?Beaucoup de chemins distincts se retrouvent au même état. Mais il n‘y a pas besoin de garder une trace de tous ceux ci. On se soucie seulement du plus court chemin pour chacun des états revisités.
04/11/23 Speech and Language Processing - Jurafsky and Martin 30
Définir la Distance Edit Min
• Pour deux chaînes de caractères S1 de longueur n, et S2 de longueur m distance(i,j) ou D(i,j)
dénote la distance d’édition de S1[1..i] à S2[1..j] i.e., le nombre minimum d'opérations d'édition
dont nous avons besoin pour transformer les premiers i caractères de S1 en les premiers j caractères de S2
La distance d’édition de S1, S2 est D(n,m)
• Nous calculons D(n,m) en calculant D(i,j) pour tous les i (0 < i < n) et j (0 < j < m)
04/11/23 30
04/11/23 Speech and Language Processing - Jurafsky and Martin 31
Définir la Distance Min Edit
• Conditions de Base : D(i,0) = i D(0,j) = j
Relation de Récurrence : D(i-1,j) + 1 D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + 2; if S1(i) ≠
S2(j)
0; if S1(i) = S2(j)04/11/23 31
04/11/23 Speech and Language Processing - Jurafsky and Martin 32
Programmation Dynamique
• Un calcul tabulaire de D(n,m)• Bottom-up (Bas vers le haut)
Calculer D(i,j) pour des i,j petits Et calculer les valeurs de D(i,j) sur la
base de valeurs “plus petites” calculées précédemment
04/11/23 32
04/11/23 Speech and Language Processing - Jurafsky and Martin 33
N 9
O 8
I 7
T 6
N 5
E 4
T 3
N 2
I 1
# 0 1 2 3 4 5 6 7 8 9
# E X E C U T I O N
Table/Matrice de Distances d’Edition
04/11/23 Speech and Language Processing - Jurafsky and Martin 34
N 9
O 8
I 7
T 6
N 5
E 4
T 3
N 2
I 1
# 0 1 2 3 4 5 6 7 8 9
# E X E C U T I O N
04/11/23 Speech and Language Processing - Jurafsky and Martin 35
N 9 8 9 10 11 12 11 10 9 8
O 8 7 8 9 10 11 10 9 8 9
I 7 6 7 8 9 10 9 8 9 10
T 6 5 6 7 8 9 8 9 10 11
N 5 4 5 6 7 8 9 10 11 10
E 4 3 4 5 6 7 8 9 10 9
T 3 4 5 6 7 8 7 8 9 8
N 2 3 4 5 6 7 8 7 8 7
I 1 2 3 4 5 6 7 6 7 8
# 0 1 2 3 4 5 6 7 8 9
# E X E C U T I O N
04/11/23 Speech and Language Processing - Jurafsky and Martin 36
Distance Min Edit
• Le résultat n’est pas très expressif (informatif) Pour une paire de chaînes de caractères
nous obtenons un nombre Le nombre minimum d’éditions pour passer
de l’une à l’autre
• Un peu comme un programme de routage qui vous indique la distance minimale d'ici à Timmimoun, mais ne vous dit pas comment y aller
04/11/23 Speech and Language Processing - Jurafsky and Martin 37
Alignement
• Un alignement est un appariement 1-1 de chaque élément dans une séquence avec un élément correspondant dans l'autre séquence ou avec un écart...
-AGGCTATCACCTGACCTCCAGGCCGA--TGCCC---TAG-CTATCAC--GACCGC--GGTCGATTTGCCCGAC
04/11/23 Speech and Language Processing - Jurafsky and Martin 38
Chemins/Alignements
• Garder un pointeur arrière Chaque fois qu’une cellule est remplie
ajouter un pointeur vers la cellule qui a été utilisée pour la créer (la cellule min qui y a conduit)
Pour obtenir la séquence d’opérations, suivre le pointeur arrière partant de la cellule finale
C'est la même chose que l'alignement
04/11/23 Speech and Language Processing - Jurafsky and Martin 39
N 9 8 9 10
11 12
11
10
9 8
O 8 7 8 9 10 11
10
9 8 9
I 7 6 7 8 9 10
9 8 9 10
T 6 5 6 7 8 9 8 9 10
11
N 5 4 5 6 7 8 9 10
11
10
E 4 3 4 5 6 7 8 9 10
9
T 3 4 5 6 7 8 7 8 9 8
N 2 3 4 5 6 7 8 7 8 7
I 1 2 3 4 5 6 7 6 7 8
# 0 1 2 3 4 5 6 7 8 9
# E X E C U T I O N
Backtrace
04/11/23 Speech and Language Processing - Jurafsky and Martin 40
Ajouter le Backtrace à EditMin
• Conditions de Base : D(i,0) = i D(0,j) = j
• Relation de Récurrence : D(i-1,j) + 1 D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + 2; if S1(i) ≠ S2(j)
0; if S1(i) = S2(j)
LEFTptr(i,j) DOWN DIAG
04/11/23 40
Cas 1
Cas 2
Cas 3
Cas 1
Cas 2
Cas 3
04/11/23 Speech and Language Processing - Jurafsky and Martin 41
Complexité
• Temps:O(nm)
• Espace:O(nm)
• Trace Arrière (Backtrace)O(n+m)
04/11/23 Speech and Language Processing - Jurafsky and Martin 42
Distance d’Edition Pondérée
• Pourquoi voudrions-nous ajouter des poids au calcul de distance d’édition minimale?
04/11/23 Speech and Language Processing - Jurafsky and Martin 43
Matrice de Confusion
04/11/23 43
04/11/23 Speech and Language Processing - Jurafsky and Martin 44
Why “Dynamic Programming”“I spent the Fall quarter (of 1950) at RAND. My first task was to find a name for multistage decision processes.
An interesting question is, Where did the name, dynamic programming, come from? The 1950s were not good years for mathematical research. We had a very interesting gentleman in Washington named Wilson. He was Secretary of Defense, and he actually had a pathological fear and hatred of the word, research. I’m not using the term lightly; I’m using it precisely. His face would suffuse, he would turn red, and he would get violent if people used the term, research, in his presence. You can imagine how he felt, then, about the term, mathematical. The RAND Corporation was employed by the Air Force, and the Air Force had Wilson as its boss, essentially. Hence, I felt I had to do something to shield Wilson and the Air Force from the fact that I was really doing mathematics inside the RAND Corporation. What title, what name, could I choose? In the first place I was interested in planning, in decision making, in thinking. But planning, is not a good word for various reasons. I decided therefore to use the word, “programming” I wanted to get across the idea that this was dynamic, this was multistage, this was time-varying I thought, lets kill two birds with one stone. Lets take a word that has an absolutely precise meaning, namely dynamic, in the classical physical sense. It also has a very interesting property as an adjective, and that is its impossible to use the word, dynamic, in a pejorative sense. Try thinking of some combination that will possibly give it a pejorative meaning. It’s impossible. Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities.”
Richard Bellman, “Eye of the Hurricane: an autobiography” 1984.
04/11/23 Speech and Language Processing - Jurafsky and Martin 45
Recherche par Programmation Dynamique• Dans le cadre du traitement du
langage (et de traitement du signal) ce genre d'algorithme est souvent désigné comme une recherche par Programmation Dynamique Distance Min Edit (correction d’erreur
d’ortho.) Viterbi et “Forward algorithms”
(reconnaissance de la parole) CKY and Earley (analyse syntaxique)
Top Related