Traitement Automatique des Langues Naturelles
(TALN)
Natural Language Processing
(NLP)
1
Pr Arsalane ZARGHILI
2
Introduction
TAL: Introduction
3
Ensemble des méthodes permettant de rendre le langage
humain accessible aux ordinateurs.
Conception de systèmes et techniques informatiques permettant
de manipuler le langage humain dans tous ses aspects.
Un domaine multidisciplinaire qui inclut:
Linguistique : étude de la langue.
Informatique
Intelligence artificielle
TAL: Introduction
4
Objets d’étude:
Parole : Onde sonore
Analyse par des méthodes statistiques afin de :
identifier le locuteur
transcrire les paroles en texte
Image:
Extraire le texte à partir d’image: OCR (Optical Character Recognition)
Texte : Une suite de caractères
TAL: Introduction
5
Motivations:
Texte : Données non structurées ;
Quantités massives de données textuelles non structurées stockées sous forme
électronique nécessitent de :
Classer/évaluer les documents textes
Découvrir des modèles (jusque-là inconnus)
TAL: Introduction
6
Test de Turing (Alain Turing 1950)
Le test de Turing permet de déceler si un ordinateur
est intelligent.
Un humain est placé est dans une pièce et discute
par clavier et interposé avec une personne et un
ordinateur.
Le test est considéré comme réussi si l’humain
n’arrive pas à déterminer qui est l’autre humain et
qui est l’ordinateur.
Le TAL étudie la composante langagière de l’intelligence artificielle
une caractéristique les plus distinctives de l’intelligence humaine est sa capacité à
comprendre/utiliser des langues complexes
C’est une composante primordiale derrière le test de Turing
TAL: Introduction
7
Test de Turing (Alain Turing 1950)
Le test de Turing permet de savoir si le comportement de la machine est semblable à
celui d’un être humain. On évalue le comportement extérieur de la machine, ce qui ne
garantit pas forcément la présence d’intelligence ou une compréhension de la langue.
Exemple:
ELIZA – simulation d’entretien avec un psychothérapeute : http://elizia.net/
Voir le lien « la supervision » en bas de la page :
ici on peut voir la liste des règles qui constituent l’ « intelligence » d’Elize :
Dans la première colonne on a des mots-clés ou des situations,
et dans la deuxième colonne on a les réactions possibles d’Elize.
le programme suit des règles simples, sans vraiment comprendre le discours humain.
TAL: Introduction
8
Test de Turing (Alain Turing 1950)
Au-delà d’imiter un comportement humain, un système devrait être capable de
« comprendre » partiellement un texte : pouvoir identifier certains éléments
textuels afin de les associer à des significations.
Pas de théorie linguistique opératoire
Deux approches :
Linguistique informatique : partir de la langue, étudier les exemples (échantillons
observables), modéliser et concevoir des algorithmes pour un traitement
automatique.
Informatique linguistique : partir de l’informatique et des mathématiques, appliquer
les modèles existants à la langue, puis observer le résultat en espérant que ça
marche.
TAL: Introduction
9
Histoire: Naissance de l’IA et âge d’or : Les années 195x
1951 : Shannon a exploité les modèles probabilistes des langages naturels
1954 : Expérimentation Georgetown-IBM pour traduire automatiquement 60
phrases du russe vers l’anglais.
1956 : Chomsky a développé les modèles formels de syntaxe.
1958 : Luhn (IBM) a expérimenté sur le résumé automatiquement du texte
TAL: Introduction
10
Histoire: Naissance de l’IA et âge d’or : Les années 196x
1961 : Développement du premier analyseur syntaxique automatique à
l’Université de Pennsylvanie. [Joshi, 1961, Harris, 1962]
1964 : Weizenbaum a mis au point ELIZA, une simulation d’un psychothérapeute
au sein du laboratoire MIT AI.
1964 : Bobrow a mis au point STUDENT, conçu pour lire et résoudre des
problèmes de mots trouvés dans les livres d’algèbre de lycée [Bobrow, 1964].
1967 : Brown corpus, le premier corpus électronique.
TAL: Introduction
11
Histoire: Hiver de l’IA : Les années 197x
1971 : Winograd (MIT) a développé SHRDLU, un programme de compréhension
du langage naturel
1972 : Colby (Stanford) a créé PARRY un chatbot qui simule une personne avec
la schizophrénie paranoïde.
1975 : MARGIE un système qui fait des inférences et des paraphrases à partir des
phrases en utilisant la représentation conceptuelle du langage.
1975 : DRAGON, un système pour la reconnaissance automatique de la parole
en utilisant les modèles de Markov cachés
TAL: Introduction
12
Histoire: Hiver de l’IA : Les années 198x
1980 : KL-One, représentation de connaissance pour le traitement de la syntaxe
et la sémantique [Bobrow and Webber, 1980].
1986 : TRUMP, analyseur de langage en utilisant une base lexicale [Jacobs,
1986].
1987 : HPSG (grammaire syntagmatique guidée) [Sag and Pollard, 1987].
1988 : Utilisation des modèles de Markov cachés dans l’étiquetage
morphosyntaxique [Church, 1988].
Solutions symboliques sur le traitement du discours et la génération du langage
naturel
TAL: Introduction
13
Histoire: Printemps de l’IA : Les années 199x
1990 : Une approche statistique pour la traduction automatique [Brown et
al., 1990].
1993 : Pen Treebank, un corpus annoté de l’anglais [Marcus et al., 1993].
1995 : Wordnet, une base lexicale pour l’anglais [Miller, 1995].
1996 : SPATTER, un analyseur lexical statistique basé sur les arbres de décision
[Magerman, 1996].
Popularité des méthodes statistiques et de l’évaluation empirique.
TAL: Introduction
14
Histoire: Printemps de l’IA : Les années 200x
2003 : Les modèles probabilistes de langues en utilisant les réseaux de
neurones [Bengio et al., 2003].
2006 : Watson (IBM), un système de question/réponse.
Utilisation de l’apprentissage non supervisé comme alternatives à
l’apprentissage purement supervisé.
Déplacer le focus sur les tâches sémantiques.
TAL: Introduction
15
Histoire: Printemps de l’IA : Les années 200x
2011 : Siri (Apple) un assistant numérique personnel. Il a été suivi par Alexa
(Amazon, 2014) et Google Assistant (2016).
2014 : Word embedding [Lebret and Collobert, 2014].
2018 : Apparition des représentations contextuelles (des modèles de langue
pré-entraînés) :
ULMfit (fast.AI) [Howard and Ruder, 2018],
ELMO (AllenNLP) [Peters et al., 2018],
GPT (OpenAI) [Radford et al., 2018],
BERT (Google) [Devlin et al., 2018],
XLM (Facebook) [Lample and Conneau, 2019].
TAL: Introduction
16
Exemples d’utilisation
Traduction automatique:
Depuis ses débuts dans les années 50, la traduction automatique a parcouru un long
chemin.
Une traduction efficace ne se limite pas à remplacer les mots, elle doit saisir avec
précision le sens de la langue source pour pouvoir retranscrire le texte dans une autre
langue et conserver son sens d’origine.
Les services de traduction automatique, tels que Google Translate ou DeepL,
exploitent la puissance du traitement du langage naturel pour comprendre et
produire une traduction précise dans plusieurs langues, sous forme textuelle ou
même vocale.
TAL: Introduction
17
Exemples d’utilisation
Agents virtuels et chatbots:
Grâce à la technologie du traitement du langage naturel, les chatbots ressemblent
davantage aux humains.
Les chatbots intelligents alimentés par l’IA, utilisent le traitement du langage naturel
pour comprendre le sens des questions de l’utilisateur et y répondre de manière
précise.
Les chatbots ont de nombreuses applications dans différents secteurs, car ils
facilitent les échanges avec les clients et automatisent diverses tâches basées sur
des règles, comme
les réponses aux FAQ, la réservation de vols, l’e-commerce, éducation, santé ……etc.
Ils peuvent même présenter des capacités transactionnelles, permettant
de trouver les produits que les utilisateurs recherchent,
de suggérer des produits similaires,
de promouvoir des offres,
de conclure des ventes sans avoir à quitter le chatbot.
TAL: Introduction
18
Exemples d’utilisation
Analyse des sentiments:
Vise à évaluer le caractère général d’un texte ou d’un document, en analysant le
langage utilisé dans son contenu.
Elle peut être utilisée pour les publications sur les réseaux sociaux, les réponses, les
critiques, etc. afin d’identifier le sentiment, l’opinion ou la croyance suscités par un
énoncé.
Elle fournit ainsi de nombreuses informations concernant les choix des clients et leurs
critères de décision.
Avis sur l’utilisation des Chatbots
TAL: Introduction
19
Exemples d’utilisation
Classification des e-mails:
Les e-mails entrants sont automatiquement classés dans la boîte de réception
principale, les promotions et les spams.
L’IA est programmée pour identifier et classer les messages dans ces catégories
grâce à sa compréhension du contenu des messages.
le courrier indésirable a tendance à contenir des messages peu clairs et des liens
sortants peu pertinents.
les e-mails promotionnels utilisent un langage spécifique et présentent
généralement un contenu à caractère commercial, comme des coupons ou des
offres à prix réduit.
Les notifications des réseaux sociaux
Les emails à caractère professionnels
Etc.
TAL: Introduction
20
Exemples d’utilisation
Outils de correction grammaticale:
Les outils de correction grammaticale, tels que Grammarly, utilisent les techniques
de traitement du langage naturel afin d’analyser un texte, de vérifier les erreurs
linguistiques et de suggérer les corrections à apporter.
D’après Grammarly, le logiciel est alimenté par des données relatives aux règles de
grammaire et d’orthographe par son équipe de linguistes et d’ingénieurs en deep
Learning.
Ceux-ci ont conçu des algorithmes capables d’apprendre les règles et les modèles
de bonne écriture, en analysant des millions de phrases issues de textes de
recherche.
Le logiciel évolue également grâce aux données: chaque fois qu’un utilisateur
accepte ou ignore une suggestion donnée par Grammarly, l’IA devient plus
intelligente.
Grâce à ces connaissances, l’outil sait faire la différence entre un usage correct et
incorrect et peut ainsi suggérer des modifications ou des corrections.
TAL: Introduction
21
Exemples d’utilisation
Résumés de texte:
Le résumé de texte consiste à raccourcir un texte et à en générer un
résumé concis, tout en conservant l’idée principale et le message véhiculé
par le document d’origine.
Objectif est :
« absorber » d’énormes volumes de textes numériques,
en comprendre le contenu,
en extraire les idées principales,
tout en ignorant les informations non pertinentes,
et créer un texte plus court contenant tous les points essentiels.
TAL: Introduction
22
Exemples d’utilisation
CV parsing:
Le parsing CV analyse les CV grâce à l’IA
Il intervient entre la phase de réception des CVs et de la préqualification des
candidats.
Cette technique va donc permettre une lecture automatique des CV envoyés par
les candidats.
Le parsing va ainsi analyser le CV et en extraire les données de façon automatisée.
Cela permet d’utiliser les données du CV pour les insérer dans un tableur de type
Excel ou dans un logiciel personnalisé afin de les structurer et de procéder à leur
classement.
TAL: Introduction
23
Approches en TAL
Approche statistique
Elle s’appuient sur un formalisme mathématique.
Applicable à des corpus de très grande taille.
Indépendantes de la langue.
Ne nécessitent pas de connaissances linguistiques
Les méthodes permettent d’observer la suite de caractères et des mots afin d’en
trouver des régularités et pouvoir prédire certaines propriétés.
Ne permettent pas de comprendre les phénomènes linguistiques.
Méthodes : N-grammes, apprentissage automatique.
Les résultats du système, notamment les erreurs, sont difficiles à expliquer et corriger.
TAL: Introduction
24
Approches en TAL
Approche utilisant des ressources linguistiques
Il s’agit de modéliser une certaine partie de la connaissance linguistique afin de la
rendre exploitable par la machine
Exemple : dans un analyseur morphosyntaxique, on peut introduire la règle :
SI on trouve une occurrence de « un » ou « une »,
ALORS c’est un article et le mot suivant est un nom
Dépendantes de la langue
Plus difficiles à mettre en place : obligent une conceptualisation des phénomènes
linguistiques
Nécessitent plus de temps et plus de travail (par des linguistes)
Les résultats du système, notamment les erreurs, peuvent être expliqués et corrigés
facilement.
TAL: Introduction
25
Niveaux de traitement
Phonétique
Etude des sons ou phones produits par l’appareil phonatoire humain.
Les branches de la phonétique :
Phonétique articulatoire (la division la plus anatomique et physiologique) décrit
comment les voyelles et les consonnes sont produites ou ≪articulées≫ dans diverses
parties de la bouche et de la gorge.
Phonétique acoustique (la branche qui a les affinités les plus étroites avec la
physique) étudie les ondes sonores qui transmettent les voyelles et les consonnes
dans l’air du locuteur à l’auditeur.
Phonétique auditive (la branche qui intéresse le plus les psychologues) examine la
manière dont le cerveau de l’auditeur décode les ondes sonores en voyelles et
consonnes initialement prévues par le locuteur.
TAL: Introduction
26
Niveaux de traitement
Phonétique: Etude des sons ou phones
produits par l’appareil phonatoire humain.
Labial à l’aide des lèvres.
Exemple: [b], [p], [m], [f], [v]
Apicale avec la pointe de la langue ou sa
partie antérieure.
Exemple: [t], [d], [n]
Dorsal avec la partie postérieure de la langue.
Exemple, [c], [k], [g], [q]
Pharyngale au niveau du pharynx.
Exemple: غ, ح
Voie Orale
…….Etc.
TAL: Introduction
27
Niveaux de traitement
Phonologie:
Etude des sons ou phonèmes d’une langue donnée.
s’intéresse aux sons en tant qu’éléments d’un système.
Exemple:
phonème /i/ : il ;
phonème /e/ : blé ;
phonème /ɛ/ : colère ;
phonème /a/ : platte ;
phonème /ɑ/ : pâte ;
phonème /ɔ/ : mort ;
phonème /o/ : chaud ;
phonème /u/ : genou ;
mot « Phonème »: phonème \fɔnɛm\
TAL: Introduction
28
Niveaux de traitement
Orthographe:
Etude des types et de la forme des lemmes
Système d’écriture:
logographique : logogrammes, chacun est un graphème unique notant un lemme
(mot). Exemple: le Japonais日, 本, 語
alphabétique : lettres, chacune d’elles représente un phonème. Exemple: Le latin :
A, B, C
Ponctuation
Règles d’écriture
TAL: Introduction
29
Niveaux de traitement
Morphologie:
Etude de la formation des mots, y compris la façon dont les nouveaux mots sont
inventés dans les langues du monde.
Etude de la façon dont les formes des mots varient en fonction de leurs utilisations
dans les phrases.
Morphème : la plus petite unité du langage qui a sa propre signification: les noms
propres, les suffixes, etc.
Lexème: Morphème lexical libre (mot), ou lié (élément, racine).
Lemme : un mot choisi parmi ces formes pour représenter le lexème.
Les catégories grammaticales : adjectif, nom, verbe, adverbe, article, conjonction,
interjection, préposition, pronom
TAL: Introduction
30
Niveaux de traitement
Syntaxe: ou grammaire
Structure des phrases : comment les mots se combinent pour former des phrases.
Catégories grammaticales ou parties du discours (verbe, Nom, Adjectif, etc) des mots
de la phrase ( étiquetage morphosyntaxique).
Ordre des mots selon le sujet (S), le Verbe (V) et l’Objet (O).
Fonctions grammaticales : Sujet, COD, COI, etc.
Une phrase est constituée de plusieurs syntagmes qui sont constitués des mots et
d’autres syntagmes.
Un syntagme contient un noyau qui est l’élément central.
Selon le noyau, le syntagme peut être : nominal (NP), adjectival (AP), verbal (VP) ou
prépositionnel (PP).
Le système formel le plus utilisé pour modéliser la structure des constituants d’une
phrase est la grammaire hors-contexte
TAL: Introduction
31
Niveaux de traitement
Syntaxe: ou grammaire
Exemple: la phrase « le petit chat mange le poisson »
La grammaire qui a généré cet arbre syntaxique peut être écrite:
1. P → NP VP
2. NP → DET NP’
3. NP → DET N
4. NP’ → ADJ N
5. VP → V NP
La règle (2) n’est pas écrite (NP → DET NP)
sinon on peut avoir plusieurs déterminants à un nom
TAL: Introduction
32
Niveaux de traitement
Sémantique:
Etude du sens dans les langages.
Sémantique lexicale : sens des mots.
Sémantique propositionnelle : sens des phrases.
Un mot peut avoir plusieurs sens (Polysémie).
Exemple de différents sens: Le terme poulet a plusieurs sens selon la phrase
J’écoute les piaulements des poulets. “Petit du coq et de la poule, plus âgé
que le poussin, avant d’être adulte.”
Je mange du poulet. “Viande de jeune poule ou jeune coq.”
Mon petit poulet. “Terme d’affection, que l’on adresse généralement aux
enfants.”
TAL: Introduction
33
Niveaux de traitement
Sémantique:
Sème: une unité minimale de signification (trait sémantique minimal).
Sémème: un faisceau de sèmes correspondant à une unité lexicale.
Les mots ayant un ou plusieurs sèmes positifs en commun
appartiennent au même champ sémantique.
Exemple de l’analyse sémique
TAL: Introduction
34
Niveaux de traitement
Sémantique: relations sémantiques
Synonyme: si on substitue un mot par un autre dans une phrase sans changer le
sens, donc les mots sont des synonymes.
Antonyme: le sens opposé. Les deux mots doivent exprimer deux valeurs d’une
même propriété. Exemple, grand et petit expriment la propriété taille.
Hyponyme: un mot ayant un sens plus spécifique qu’un autre. Exemple, chat est
l’hyponyme de félin hyponyme de animal.
Hyperonyme: un mot avec un sens plus générique. Exemple, félin est
l’hyperonyme de chat.
Méronyme: un mot qui désigne une partie d’un autre. Exemple, roue est un
méronyme de voiture.
TAL: Introduction
35
Niveaux de traitement
Pragmatique:
Imaginer qu’on est dans un anniversaire: Une personne a créé : ”Les bougies!”
On peut directement comprendre qu’il n’y a pas des bougies sur la tarte.
Question : comment peut-on déduire ca ?
Réponse : du contexte.
TAL: Introduction
36
Défis du TAL:
Ressources
Manque des outils et des Datasets pour les langues moins parlées.
Annotation manuelle des corpus d’entraînement et de test.
Traitement des documents larges : l’apprentissage automatique est
limité lorsqu’il s’agit de représenter des contextes longs.
TAL: Introduction
37
Défis du TAL: Compréhension de la langue
Interpréter une phrase correctement est une tâche très complexe
à automatiser
pour un être humain, c’est une tâche qui requière souvent aucun effort
mais même pour l’être humain, certains cas peuvent être une casse-tête
Voici quelques sources de difficultés à surmonter par les méthodes
de TAL
TAL: Introduction
38
Défis du TAL: Compréhension de la langue
Ambiguïté
Il est possible qu’une phrase puisse être interprétée de plusieurs façons différentes
Les indicateurs syntagmatiques permettent la distinction entre des phrases de même
structure mais sont syntaxiquement et sémantiquement différentes
TAL: Introduction
39
Défis du TAL: Compréhension de la langue
Ambiguïté
Soit la phrase suivante : « cet artiste peint la nuit » peut signifier que:
Cet artiste peint un tableau dont le sujet est la nuit Cet artiste peint un tableau pendant la nuit
TAL: Introduction
40
Défis du TAL: Compréhension de la langue
Ambiguïté
Soit la phrase suivante : « Our company is training workers » :
TAL: Introduction
41
Défis du TAL: Compréhension de la langue
Métaphores
C’est une phrase ou un mot où les termes y sont pris au sens figuré.
Certains mots sont parfois utilisés de façon métaphorique (sens figuré)
Exemple : « La marée de la nuit a progressivement envahi la
campagne »
Exemple: « The supernova swallowed the planet” : on s’attend à ce
que le mot swallow ait comme sujet une entité vivante
TAL: Introduction
42
Défis du TAL: Compréhension de la langue
Variations dans le temps
l’utilisation des mots peut varier dans le temps
Exemple1: Embarquer
Au départ, ce verbe n’était utilisé que pour désigner l’action de monter à bord d’un navire,
d’une embarcation.
Puis son sens s’est élargi et on a commencé à « embarquer » dans les avions et les trains.
Aujourd’hui, on peut également employer le verbe « embarquer » lorsqu’il est question de
voitures ou d’autres véhicules routiers. On l’entend fréquemment, au Canada, dans des
expressions familières comme « embarquer dans une auto, un taxi ou un autobus ».
Actuellement il est utilisé dans le domaine de l’électronique « Systèmes Embarqués »
Exemple2: « »السيارةsens actuel (voiture) et celui de l’époque médiévale (convoi de
voyageurs)
TAL: Introduction
43
Défis du TAL: Compréhension de la langue
Autres défis:
Polysémie : un mot ayant plusieurs sens.
Exemple: Indien : de l’Inde ou bien indigène des Amériques.
Enantiosémie : un terme polysémique ayant deux sens antonymes.
Exemple: Regret, désigne la plainte ou la nostalgie : “Je regrette mon enfance”.
Personnalité : comment modéliser une personnalité ? comment la personnalité affecte
le discours ?
Variations et communication non standard : les utilisateurs ne respectent pas les
standards d’écriture d’une langue.
Exemple: langue de chat, arabizi, franglais, etc.
Intention : il existe des phrases qui ne veulent pas dire ce qu’on comprenne
directement ; elles veulent dire une autres chose (expression idiomatique « Avoir une
langue de vipère »).
Emotions : les phrases peuvent changer de sens selon les émotions accompagnées.
TAL: Introduction
44
Propriétés statistiques de données textuelles
L’approche statistique permet d’attaquer naturellement les difficultés (cités
précédemment) par:
Définition des modèles probabilistes du langage
Estimation, de façon automatisée, des paramètres du modèle probabiliste à partir de
données
Les probabilités permettent de gérer notre incertitude sur l’interprétation
(ambiguïté)
La bonne exploitation de données permet d’adapter automatiquement les
modèles (métaphore, variations dans le temps)
TAL: Introduction
45 Propriétés statistiques de données textuelles
Données:
Le point de départ du TAL statistique, c’est les données
Corpus : collection de textes / documents
Certaines structures/propriétés sont typiques de données
textuelles
un corpus n’est jamais une combinaison arbitraire de mots
TAL: Introduction
46 Propriétés statistiques de données textuelles
Fréquence:
Exemple : statistiques des mots du roman Tom Sawyer
Word Frequency : nombre d’apparitions
Frequency of Frequency: nombre de mots
peu de mots fréquents, beaucoup de mots rares
TAL: Introduction
47 Propriétés statistiques de données textuelles
Classe fermée: Common Word
les mots fréquents proviennent surtout des
classes de mots fermées
ce sont les classes pour lesquelles des mots
ne sont jamais inventés
déterminants (un, le, son, etc.)
pronoms (je, tu, il, etc.)
conjonctions (mais, ou et, donc, etc.)
prépositions (pour, de, etc.)
TAL: Introduction
48 Propriétés statistiques de données textuelles
Loi de Zipf
Une propriété qu’on observe toujours dans la majorité les données textuelles
Loi de Zipf : la fréquence d’un mot est(approximativement) inversement
proportionnelle à son rang :
où est une constante
Rang du mot : ordre du mot dans l’ordre des fréquences des mots
TAL: Introduction
49 Propriétés statistiques de données textuelles
Loi de Zipf: Roman Tom Sawyer
TAL: Introduction
50 Propriétés statistiques de données textuelles
Loi de Zipf: Roman Tom Sawyer
La variation de la fréquence est (approximativement) linéaire en fonction du rang
TAL: Introduction
51 Propriétés statistiques de données textuelles
Collocations
Phrases courtes dont le sens va «au-delà» de la combinaison des sens de ses
mots
Peut être incluses dans un dictionnaire
Si un mot apparaît dans une collocation, il pourrait être traduit différent
Exemples :
disk drive
make up
New York
TAL: Introduction
52 Propriétés statistiques de données textuelles
Collocations
Exemple (Corpus New York Times)
sélections des paires nom-nom
et adjectif-nom les plus fréquentes
53
Traitement Basique du Texte
Traitement Basique du Texte
54
Manipulation du Texte
Avant d’appliquer une méthode statistique, on doit définir la forme que doit
prendre nos données
la forme désirée va souvent varier selon l’application
le choix de la forme peut avoir un impact significatif sur les résultats
Transformer nos données sous la forme désirée nécessitera de définir certaines
règles de transformation qui sont inspirées par des connaissances linguistiques
Dans ce qui suit, on supposera que nos données sont déjà dans un document
qui a un format électronique purement textuel
Un document sera une longue chaîne de caractères
Traitement Basique du Texte
55
Manipulation du Texte
Un texte est structuré en paragraphes, phrases, mots et caractères.
Certaines tâches exploitent cette structure.
Plusieurs tâches se basent sur les mots comme unité de traitement.
Avant de procéder à un traitement, il faut d’abord exécuter une phase de
prétraitement :
Segmenter le texte ;
Filtrer les données non nécessaires ;
Normaliser les mots pour limiter les variations à traiter.
Traitement Basique du Texte
56 Manipulation du Texte
Caractères
Utilisation des Expressions régulières
Calcul de la Distance d’édition
Segmentation
Délimitation de la phrase
Séparation des mots
Normalisation et filtrage
Normaliser les mots pour limiter les variations à traiter
Filtrage du texte
Analyse Morphologique
Formation des mots
Réduction des formes
Traitement Basique du Texte
57
Manipulation du Texte: les caractères
Expressions régulières
utilisées pour chercher des chaînes de caractères dans un texte.
reconnaissent des langages réguliers.
utiles pour l’analyse lexicale (séparation des mots).
Distance d’édition
utilisée pour mesurer la différence entre deux chaînes de caractères.
utile pour la recherche approximative.
Traitement Basique du Texte: Les Caractères
58 Expressions Régulières
Une expression régulière (ER) est une façon simple de caractériser un ensemble
de chaînes de caractères, de façon compacte.
C’est un formalisme utile pour faire de l’extraction d’information dans des
données textuelles.
Les ERs permettent de rechercher des mots ayant certaines propriétés dans un
texte.
Elle sont utiles pour l’Analyse Lexicale (séparation des mots).
Elles sont utilisées pour mesurer la différence entre deux chaînes de caractères.
Elles sont utiles pour la recherche approximative.
On peut les retrouver dans de nombreux langages (PHP, Javascript, python,...) ou
encore dans des logiciels d'édition de code(Notepad++,….)
Traitement Basique du Texte: Les Caractères
59 Expressions Régulières: Règles
Les caractères de début et de fin de chaîne, respectivement ^ et $,
représentent, comme leur nom l'indique, le début et la fin de la chaîne.
^Bonjour
Bonjour$
pour le groupement, utiliser ( )
(bla)
pour la disjonction (ou), utiliser |
^(jour|nuit|matin|soir)$ : exactement les quatre mots “jour” ou “nuit” ou “matin”
ou “soir” (permet de rechercher une liste de mots)
Un ensemble de caractère est délimité par des crochets [ ] dans lesquels se
trouvent les caractères faisant partie du OU.
mots|mats|mits est équivalent à m[oai]ts
Traitement Basique du Texte: Les Caractères
60 Expressions Régulières: Règles
Les Quantificateurs
Ce sont des caractères qui indiquent le nombre de répétition du caractère ou de la suite
de caractère qui les précèdent. Le quantificateur, peut s'écrire de 4 façons :
{min,max} : le nombre de répétition varie entre la valeur minimale et la valeur
maximale
{min,} : le nombre de répétition varie entre la valeur minimale incluse et l'infini
{,max} : le nombre de répétition varie entre 0 et la valeur maximale incluse
{nombre} : le nombre de répétition correspond au nombre marqué entre les
accolades
Traitement Basique du Texte: Les Caractères
61 Expressions Régulières: Règles
Les Quantificateurs:
Il Quantificateur
existe aussi des quantificateurs préconçus. En voici la liste:Équivalent
Traduction
* 0 ou plusieurs répétitions {0,}
+ 1 ou plusieurs répétitions {1,}
? 0 ou 1 répétition {,1}
Exemple:
Traitement Basique du Texte: Les Caractères
62 Expressions Régulières: Règles
un moyen plus simple existe pour écrire des ERs moins longues, à l’aide des intervalles
Intervalle Equivalent Traduction
[a-z] [abcdefghijklmonpqrstuvwxyz] Lettres minuscules de a à z
[ABCDEFGHIJKLMNOPQRSTUVWXY
[A-Z] Lettres majuscules de A à Z
Z]
[0-9] [0123456789] Chiffres de 0 à 9
[abcdefghijklmonpqrstuvwxyz0123 Lettres minuscules de a à z ou
[a-z0-9]
456789] chiffres de 0 à 9
Traitement Basique du Texte: Les Caractères
63 Expressions Régulières: Règles
Un ensemble préconçu est une façon très simple de représenter plusieurs
intervalles. Voici quelques exemples :
Ensemble Equivalent
. Absolument n'importe quel caractère
\w [a-zA-Z0-9_]
\W [^\w]
\d [0-9]
\D [^0-9]
\n Un retour à la ligne
\t Une tabulation
\f Un saut de page
\s [\n\r\t\f]
\S [^\s]
Traitement Basique du Texte: Les Caractères
64 Expressions Régulières: Règles
Le backslash \
Pour faire comprendre qu’un caractère parmi « ^ $ \ | { } [ ] ( ) ? # ! . + * » présent dans
l’ER est bien un caractère et non pas un caractère de l’ER ou bien pour capturer un
groupe de caractère, il faut l’échapper avec le caractère d'échappement le backslash \
Exemple1 : Pour sélectionner les noms de domaine des adresses email
[email protected] et
[email protected], on utilise:
yahoo\.[a-z]{2,3} au lieu de yahoo.[a-z]{2,3}
Exemple2 : \(1er)
Traitement Basique du Texte: Les Caractères
65 Expressions Régulières: Exemples
ion : recherche les mots qui contiennent la chaine “ion”, dans n’importe
quelle position
ion$ : mots se terminant par “ion” ($=fin de mot)
^anti : recherche tous les mots commençant par “anti” (^=début de mot)
^maison$ : recherche exactement le mot “maison”
p.t : recherche les mots qui contiennent un “p”, suivi d’une lettre quelconque,
puis d’un “t” (le point correspond à n’importe quel caractère)
^p…r$ : mots commençant par “p”, suivi de trois lettres quelconques, et
finissant par “r”
Traitement Basique du Texte: Les Caractères
66 Expressions Régulières: Exemples
[aeiou][aeiou] : mots contenant (au moins) 2 voyelles successives ([ ] = classe de
caractères: [abc] signifie la même chose que (a|b|c))
^[aeiou] : mots commençant par une voyelle
^[^aeiou] : mots ne commençant pas par une voyelle
m[^oai]ts: mots commençant par un m, suivi d'une lettre qui n'est ni o, ni a, ni i, , suivi
d'un t, suivi d'un s
oid|ion|ein : recherche les mots qui contiennent (au moins) une des trois chaînes
“oid”, “ion” ou “ein”
Traitement Basique du Texte: Les Caractères
67 Expressions Régulières: Exercices
Donner l’ER qui cherche les mots “il” (singulier et pluriel).
Comme par exemple : « Il a passé par son lieu de travail et il a dit : “je suis devenu vieil ; ils n’ont
plus besoin de moi”
(i|I)ls?
Les nombres à virgule flottante
^(+|-)?[0-9]+\.[0-9]+ ou bien ^(+|-)?\d+\.\d+
Soit le texte suivant: chercher les couleurs en hexadécimal à 24 bits
24 bit:
AliceBlue #F0F8FF
AntiqueWhite #FAEBD7
Aqua #00FFFF
Aquamarine #7FFFD4 #(\d|[A-F]){6}
Azure #F0FFFF
12 bit:
White #FFF
Red #F00
Green #0F0
Blue #00F
Traitement Basique du Texte: Les Caractères
68 Expressions Régulières: Exercices
ER qui recherche les lignes ayant au moins 30 caractères
This line is way too loooooooooooong.
^.{30,}
This one is fine.
This one is fine too.
This line is also too long................
ER pour vérifier si un numéro de téléphone marocain est correct
(0|(\+|00) 212)[5-7]([0-9]{2}){4}
ER pour détecter les liens HyperText
https?://[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}(/\S*)?
Traitement Basique du Texte: Les Caractères
69 Expressions Régulières: Lookahead et Lookbehind
Parfois on a juste besoin de trouver les mots précédent ou suivant un autre mot.
Il existe pour cela des syntaxes spéciales, appelées “lookahead” et “lookbehind”
Exemple:
Trouvons le prix à partir d’une chaîne de caractères comme :1 dindes coûte 30DH.
C’est un nombre suivi par le signe DH
Lookahead
La syntaxe X(?=Y) : veut dire "recherche X, mais renvoie une correspondance
seulement si il est suivi de Y".
Tous les motifs peuvent être utilisés au lieu de X et Y.
Pour un nombre entier suivi de DH, l’expression régulière sera \d+(?=DH)
La syntaxe X(?!Y) : veut dire "X, mais seulement si il n’est pas suivi de Y".
Traitement Basique du Texte: Les Caractères
70 Expressions Régulières: Lookahead et Lookbehind
Lookbehind
(?<=Y)X, correspond à X, mais seulement si il y a Y avant lui.
(?<!Y)X, correspond à X, mais seulement si il n’y a pas Y avant lui.
Par exemple, changeons le prix en dollars US. Le signe dollar est généralement placé
avant le chiffre, donc pour récupérer $30 nous utiliserons (?<=\$)\d+
Traitement Basique du Texte: Les Caractères
71 Expressions Régulières: Regroupement des correspondances et remplacement
On peut regrouper les pièces de correspondance en les mettant entre ().
Ensuite, on référence les groupes dans ER par \1, \2, etc.
On peut utiliser des groupes pour les remplacer, en les référençant par des
nombres : $1, $2, .. dans l'expression de remplacement
Pour changer le formatage du nom ci-dessous de
« Ali Alaoui » à « Alaoui, Ali » en remplaçant (\w+)\s(\w+) par $2, $1
Ali Alaoui Alaoui, Ali
Sara Kamal Kamal, Sara
Khalid Lahlou Lahlou, Khalid
Traitement Basique du Texte: Les Caractères
72 Expressions Régulières: Backreference
Les Backreferences offrent un moyen pratique d’identifier un caractère répété ou une sous-
chaîne répétée dans une chaîne. une ER identifie un groupe précédemment mis en
correspondance et recherche à nouveau exactement le même texte
Par exemple, si la chaîne d’entrée contient plusieurs occurrences d’une sous-chaîne arbitraire,
vous pouvez faire correspondre la première occurrence à un groupe de capture, puis utiliser une
référence arrière pour faire correspondre les occurrences suivantes de la sous-chaîne.
On peut référencer la même séquence de symboles par référence arrière.
\1 représentera le premier groupe correspondant,
\2 le second, etc.
Exemple: (\d)\1 pour faire correspondre deux chiffres égaux consécutifs.
3679027856362882322728927929378923538045296622
Traitement Basique du Texte: Les Caractères
73 Distance d’Edition:
utilisée pour mesurer la différence entre deux chaînes de
caractères
Correcteurs orthographiques
Utile pour la recherche approximative
Opérations d’édition
Insertion: insertion d’un caractère dans une chaîne
Suppression: suppression d’un caractère d’une chaîne
Substitution: substitution d’un caractère par un autre
Transposition: changement de l’ordre de deux caractères
Traitement Basique du Texte: Les Caractères
74 Distance d’Edition:
Distances
Hamming: permet seulement la substitution
Levenshtein: permet l’insertion, la suppression et la substitution
Jaro: permet la transposition
Damerau–Levenshtein: permet l’insertion, la suppression, la substitution et la
transposition entre deux caractères adjacents
Traitement Basique du Texte: Les Caractères
75 Distance d’Edition: Distance de Hamming
X : chaîne source de longueur n.
Y : chaîne destinataire de longueur m.
Exemples des distances de Hamming
D(100100, 101001) = 3
D(abdelkrim, abderahim) = 3
Traitement Basique du Texte: Les Caractères
76 Distance d’Edition: Distance de Levenshtein
Calcule le plus petit nombre d'opérations d'édition nécessaires (insertion, suppression,
substitution) pour modifier une chaîne afin d'obtenir une autre chaîne.
La méthode de calcul la plus courante consiste à utiliser l'approche de programmation
dynamique.
X : chaîne source de longueur n.
Y : chaîne destinataire de longueur m.
D : une matrice où D[i, j] est la distance d’édition entre les sous-chaînes X[1..i] et Y[1..j].
pour calculer D[n,m], on utilise la programmation dynamique D[0,0] = 0
1
//Substitution
Traitement Basique du Texte: Les Caractères
77 Distance d’Edition: Distance de Levenshtein
Exemple: panorama paronomase
En allant jusqu'à la dernière case tout en choisissant à chaque pas la case
suivante la moins coûteuse, on trouve un ensemble minimal d'opérations :
un saut de colonne (de gauche à droite): correspond à une insertion,
par exemple de D[8, 8] = 3 à D[8, 9] = 4, ici l'ajout d'un "s" ;
un saut de ligne (de haut en bas), correspond à une suppression ;
un saut de ligne et de colonne (case juste en bas à droite): correspond à
une substitution
par exemple de D[2, 2] = 0 à D[3, 3] = 1, ici la substitution de "n" en "r".
Traitement Basique du Texte: Les Caractères
78 Distance d’Edition: Distance de Levenshtein
D e s t i n a t i o n
# P A R O N O M A S E
# 0 1 2 3 4 5 6 7 8 9 10 Insertion
S P 1 0 1 2 3 4 5 6 7 8 9
o A 2 1 0 1 2 3 4 5 6 7 8
u N 3 2 1 1 2 2 3 4 5 6 7 Suppression
r O 4 3 2 2 1 2 2 3 4 5 6
R 5 4 3 2 2 2 3 3 4 5 6
c A 6 5 4 3 3 3 3 4 3 4 5 Subtitution
e M 7 6 5 4 4 4 4 3 4 4 5
A 8 7 6 5 5 5 5 4 3 4 5
Distance de Levenshtein = 5
1
Traitement Basique du Texte: Les Caractères
79 Distance d’Edition: Distance de Levenshtein
On peut retrouver la transformation de la chaîne "panorama" en la chaine "paronomase"
à l'aide des cinq opérations de coût minimal avec l'algorithme de Levenshtein et vérifier
qu'il s'agit bien d'une transformation .
panorama parorama : substitution de "n" en "r"
parorama paronama : substitution de "r" en "n"
paronama paronoma : substitution de "a" en "o"
paronoma paronomas : ajout d'un "s"
paronomas paronomase : ajout d'un "e"
Le chemin mis en exergue dans la matrice correspond aux opérations proposées
intuitivement plus haut. Cependant, d'autres chemins de même distance sont possibles.
Traitement Basique du Texte: Les Caractères
80 Distance d’Edition: Distance de Levenshtein
Exercices:
calculer les distances de Levenshtein pour les transformations
suivantes :
niche chien
intention exécution
amibe immature
Traitement Basique du Texte: Les Caractères
81 Distance d’Edition: Quelques Applications
Révision des fichiers : par exemple, la commande Unix diff qui compare
entre deux fichiers.
Correction d’orthographe : suggérer des corrections possibles d’une faute
Détection du plagiat : ici, on utilise des mots à la place des caractères.
Filtrage de spam : parfois, les spammeurs commettent des fautes
d’orthographe intentionnellement pour tromper l’outil de détection de
spam.
Bio-informatique : quantification de la similarité entre deux séquences
d’ADN.
Traitement Basique du Texte: Les Caractères
82 Manipulation du texte: Segmentation
Problématique: Segmentation en paragraphes, mots, expressions particulières
Tokenisation Détection et dénombrement des mots (ou parfois N-grams)
Parfois simple -> ponctuation
Parfois impossible selon la langue
Un nouveau paragraphe est marqué par un retour à la ligne ou en utilisant la balise <p>
en HTML.
Lorsqu’on utilise un outil pour extraire du texte à partir des pdfs, on aura plusieurs
retours à la ligne.
Une nouvelle phrase est marquée par un point (ou une autre marque).
Le point n’est pas seulement utilisé pour marquer une phrase.
Un mot est délimité par un espace.
Pas toujours!
Traitement Basique du Texte: Les Caractères
83 Manipulation du texte: Segmentation
Problématique: Segmentation en paragraphes, mots, expressions particulières
Le point est utilisé dans les nombres :
123,456.78 (style américain), 123.456,78 (style européen)
Les abréviations contiennent des points. (etc., Mr., ….)
Des phrases longues sont difficiles à traiter ; il vaut mieux les séparer.
Les phrases entre guillemets.
Des langues, comme le chinois, le japonais, n’utilisent pas des marqueurs pour séparer les
phrases. (今年は本当に忙しかったです)
Les mots composés : par attachement
(“يختبرونهم, ils les testent”)
ou par trait d’union (va-t-il, c-à-dire).
Confusion entre des caractères : l’apostrophe est utilisée pour la citation, la contraction
(She’s, J’ai)
Traitement Basique du Texte: Les Caractères
84 Manipulation du texte: Segmentation
Facteurs de segmentation de phrase
La casse : les phrases commencent par une lettre en majuscule.
Catégorie grammaticale : les catégories des mots avant le point peuvent aider la
décision (limite ou non).
Longueur du mot : les abréviations sont moins longues.
Préfixes et suffixes : les mots avec des infixes sont moins probables d’être des
abréviations.
Noms propres : les noms propres commencent par une lettre en majuscule et ils peuvent
ne pas être le début d’une phrase.
Traitement Basique du Texte: Les Caractères
85 Manipulation du texte: Segmentation
Approches de Séparation des mots
Approche par règles : en utilisant des expressions régulières.
https://www.nltk.org/api/nltk.tokenize.html
https://nlp.stanford.edu/software/tokenizer.shtml
https://spacy.io/
Pas toujours simple
Approche Statistique : en utilisant un modèle de langue pour calculer la probabilité
qu’un caractère marque la fin d’un mot.
https://nlp.stanford.edu/software/segmenter.html
https://opennlp.apache.org/
Traitement Basique du Texte: Les Caractères
86 Manipulation du texte: Normalisation et Filtrage
Normalisation du texte
PROBLEMATIQUE:
Un texte peut contenir des variations du même terme (lemmatisation).
Aussi, dans des tâches comme la recherche d’information, on n’a pas besoin
d’avoir le contenu exacte du texte.
SOLUTION: transformer le texte à une forme canonique
Filtrage du texte
PROBLEMATIQUE : le texte peut contenir des caractères, des mots et des
expressions qui peuvent entraver son traitement.
SOLUTION : suppression.
Traitement Basique du Texte: Les Caractères
87 Manipulation du texte: Normalisation et Filtrage
Normalisation : (Tokenization)
Tokenization découpage en token
Acronymes et les abréviations ;
forme standard : US → USA, U.S.A. → USA
version longue : M. → Monsieur
Formater les valeurs comme les dates et les nombres de la même façon;
conversion à la forme textuelle : 1500 MAD → Mille cinq cent dirhams
marocain
format spécifique : 12 Janvier 1986, 12.01.86 → 1986-01-12.
remplacement par le type : 12 Janvier 1986 → DATE,
[email protected] → EMAIL.
Traitement Basique du Texte: Les Caractères
88 Manipulation du texte: Normalisation et Filtrage
Normalisation :
Transformer les majuscules en minuscules ;
Texte → texte
Des fois, il faut laisser la casse telle qu’elle est, comme dans les noms propres (Ali)
Contractions ;
you’ll → you will, s’il → si il
Diacritiques
désaccentuation : système → systeme
dévocalisation : ُس
ُ يدرس → يَد ُْرSauf dans les cas où on a besoin des diacritiques
(poèmes)
Traitement Basique du Texte: Les Caractères
89 Manipulation du texte: Normalisation et Filtrage
Normalisation : Exemple
Tokenization découpage en token
Plus complexe
Traitement Basique du Texte: Les Caractères
90 Manipulation du texte: Normalisation et Filtrage
Filtrage : (Filtering)
Les caractères spéciaux comme les caractères non imprimables ;
peuvent mener à des traitements erronés.
Les mots clés dans les formats textuelles ;
les balises HTML, XML, etc.
Les mots vides : les mots non significatifs comme les prépositions, articles et les
pronoms.
en anglais : stop words.
dans la recherche d’information, il est inutile de les indexer.
dans le résumé automatique, ces mots peuvent dégrader les scores des phrases.
Traitement Basique du Texte: Les Caractères
91 Manipulation du texte: Normalisation et Filtrage
Exemple:
Traitement Basique du Texte: Les Caractères
92 Manipulation du texte: Morphologie
La morphologie étudie la façon dont les mots sont construits
exemple : on obtient le pluriel de voiture en ajoutant un s à la fin
Le morphème est l’unité de base dans la construction d’un mot en morphologie
ce sont les sous-chaînes les plus petites d’un mot, telles que chacune de ces sous-
chaînes porte quand même une partie de la signification d’un mot (contrairement
aux lettres)
Exemple : chanteurs
chant (chant)
eur (celui qui fait)
s (pluriel)
Traitement Basique du Texte: Les Caractères
93 Manipulation du texte: Morphologie
Trois procédés morphologiques principaux, utilisés dans de
nombreuses langues, peuvent être distingués:
Flexion إلصاق
Dérivation اشتقاق
Composition تركيب
Traitement Basique du Texte: Les Caractères
94 Manipulation du texte: Morphologie
Flexion إلصاق
modifie un radical afin de modifier sa forme linguistique (changement de
nombre, genre, temps, personne, mode et cas).
Enfant Enfants
Intéressant Intéressante Intéressantes
Monter Remonter montent
قرأ سيقرأه قرأه
مدرسة بالمدرسة بمدرستهم
أكفي فسأكفيكهم
Traitement Basique du Texte: Les Caractères
95 Manipulation du texte: Morphologie
Flexion إلصاق
La flexion n’induit pas de changement de catégorie grammaticale.
Les différents mots liés par la flexion (ou formes fléchies) sont, représentés par le
lemme qui est une forme unique et correspond pour la langue française à
l’infinitif des verbes, au masculin singulier des adjectifs, et au singulier pour les
noms
Traitement Basique du Texte: Les Caractères
96 Manipulation du texte: Morphologie
Flexion إلصاق
Pour la langue arabe, le stem représente le mot dépourvu de l’enclitique et du
proclitique, et le lemme correspond au singulier masculin du stem pour les noms
et pour les verbes à la forme de leurs stems conjuguée au passé à la troisième
personne du singulier.
Traitement Basique du Texte: Les Caractères
97 Manipulation du texte: Morphologie
Dérivation اشتقاق
Formation de nouveaux mots grâce à l’adjonction d’affixes au radical.
En français, on peut distinguer trois opérations dérivationnelles:
Dérivation par préfixation (relire = [re + lire])
Dérivation par suffixation (cancéreux = [cancer + eux])
Formation parasynthétique (intraveineuse = [intra + vein +euse]).
La dérivation peut induire un changement de catégorie grammaticale.
Traitement Basique du Texte: Les Caractères
98 Manipulation du texte: Morphologie
Dérivation اشتقاق
En langue arabe, la dérivation se fait en appliquant des modèles ) ) األوزانaux
racines ( )الجذور
Exemples:
Traitement Basique du Texte: Les Caractères
99 Manipulation du texte: Morphologie
COMPOSITION : تركيب
Combinaison de deux ou plusieurs bases pour former un nouveau mot.
On peut par exemple ajouter un morphème libre à un autre morphème libre
(ex:cellulecible).
En langue arabe, la composition est présente essentiellement dans les noms propres
Exemples:
عبد هللا – عبد الرحيم – حضرموت – ساحل العاج – المغرب العربي
doghouse
cerf-volant
Traitement Basique du Texte: Les Caractères
100 Manipulation du texte: Morphologie – Stemming - الجذع
On distingue deux types de morphèmes:
Radical ou racine (stem) : le morphème «principal»
affixes :
morphèmes ajoutant à la signification de la racine.
Il crée un nouveau mot tout en modifiant le sens ou la fonction
Exemple : chanteurs
chant (chant): radical ou stem
-eur (celui qui fait) affixes
-s (pluriel)affixes
Traitement Basique du Texte: Les Caractères
101 Manipulation du texte: Morphologie- Stemming
On distingue différents types d’affixes
Préfixe ) (السابق: se place avant le radical: يطالعون, incapable, unlucky
Suffixe ) (الالحق: se place après le radical : يطالعون, commencement, happiness
Infixe )(الداخل: se place à l’intérieur du radical: طالع, boitiller, Passersby
Circonfixe : peut se placer avant ou après le radical (spécifique pour certaines
langues)
Un mot a normalement un seul radical mais peut avoir plusieurs affixes
Rewrites, unbelievably, فسيطالعونه
l’ajout d’un suffixe peut modifier les lettres sur la frontière entre le radical et le suffixe:
Tries, begging
Certaines langues (Turque) ont des mots avec jusqu’à 9 ou 10 affixes
on appelle de telles langues des langues agglutinantes
Traitement Basique du Texte: Les Caractères
102 Manipulation du texte: Morphologie- Stemming
Cliticisation, Clitique
Un clitique est une unité à mi-chemin entre un mot et un affixe
La cliticisation est l’ajout en affixe d’un clitique
Traitement Basique du Texte: Les Caractères
103 Manipulation du texte: Morphologie- Stemming
proclitique, enclitique
Les proclitiques) (قبلُالسابقprécèdent le mot
exemples : l’opéra, je m’asseois, فسيطالعونه
Les enclitiques )(بعدُالالحقsuivent le mot
exemples : he’d, she’s, فسيطالعونه
À noter que leur utilisation peut être ambiguë
en anglais:
she’s peut être she is ou she has
Traitement Basique du Texte: Les Caractères
104 Manipulation du texte: Morphologie – Stemming
Algorithmes:
Stemmers pour l’Arabe:
ISRIStemmer
Arabicstemmer
AlKhalil-Stemmer
Tashaphyne, etc.
Traitement Basique du Texte: Les Caractères
105 Manipulation du texte: Morphologie- Lemmatization
Réduction de formes pour chercher la forme canonique d’un mot appelé le
lemme (anglais : lemma)
La lemmatisation est similaire au stemming mais elle apporte un contexte aux
mots.
Ainsi, il relie des mots ayant des significations similaires à un seul mot (Lemme).
Exemples:
Comprennent → comprendre,
Better → good
On doit avoir le contexte du mot: saw → (V) see (voir)
ou saw → (N) saw (scie)
Traitement Basique du Texte: Les Caractères
106 Manipulation du texte: Morphologie
Traitement Basique du Texte: Les Caractères
107 Manipulation du texte: Morphologie
Conclusion:
La morphologie est le niveau le plus simple dans le traitement d’un langage.
Les tâches dans ce niveau sont beaucoup plus basées sur le caractère (graphème) qui
est l’unité la plus basique dans le système d’écriture.
La plupart des problèmes peuvent être résolus avec des expressions régulières. Ces
dernières peuvent être utilisées pour rechercher des mots, extraire les phrases et les mots,
extraire des parties du mot (racine), etc.
Toutes ces tâches reviennent à la recherche d’un segment dans le texte.
Pour une recherche approximative, des méthodes de comparaison dans le niveau
caractère (distance d’édition) sont utilisées.
Etiquettage Morpho-syntaxique
108
Etiquetage: Définition
But : affecter des étiquettes à des éléments d’une séquence.
Exemple : affecter des catégories grammaticales à des mots dans une
phrase.
Formulation du problème
Soit w = w1, . . . ,wn : une séquence d’entrée
Et t = t1, . . . , tn : une séquence des étiquettes
argmax P(t|w)
argmax: la fonction argument maximum représente la valeur de la variable
pour laquelle la valeur de la fonction concernée atteint son maximum
Etiquettage Morpho-syntaxique
109
Etiquetage: Applications
Exemple de Reconnaissance d’entités nommées
Trouver les personnes, les organisations, les places, les nombres, etc dans une
phrase.
Exemple de la reconnaissance d’Entités Nommées (mots propres)
DH Fez, Morocco
Exemple d’étiquetage morpho-syntaxique sur : https://corenlp.run/
DH Fez , Morocco .
Etiquettage Morpho-syntaxique
110
Définition
Trouver les catégories grammaticales de chaque mot dans une
phrase
Définir les catégories grammaticales:
Nature, catégorie grammaticale, catégorie lexicale, classe grammaticale,
espèce grammaticale, partie du discours
Anglais : Part of speech (POS)
Il y a donc intérêt à automatiser l’extraction et l’ajout de cette
information à des corpus
on appelle cette tâche en TAL: Etiquetage Morphosyntaxique
En Anglais: Part-Of-Speech Tagging: POS Tagging
Etiquettage Morpho-syntaxique
111 Définition :Part-Of-Speech (POS)
Connaître le POS d’un mot est souvent très utile
les affixes applicables à un nom ou à un verbe sont différents
peut influencer la traduction d’un mot
Exemple : drink peut être boisson (nom) ou boire (verbe)
peut influencer la façon de prononcer un mot
Exemple : OBject (nom) vs. obJECT (verbe)
Etiquettage Morpho-syntaxique
112 Définition: classe ouverte, classe fermée
Généralement, une classe regroupe les mots qui s’utilisent de la
même façon, sans égard à leur sens
En Anglais: Il existe deux grandes catégories de classes
les classes ouvertes : des mots sont régulièrement ajoutés à ces classes
les classes fermées : des mots sont jamais (rarement) ajoutés à ces classes et
sont surtout des mots-outils
Voir: https://universaldependencies.org/u/pos/
Etiquettage Morpho-syntaxique
113 Définition: Classes ouvertes
Les classes ouvertes principales sont
noms (ship, relationship, IBM)
verbes (draw, provide, eating)
adjectifs (good, bad, beautiful)
adverbes (here, downhill, slowly, yesterday)
D’un corpus à l’autre, les mots de classe ouverte peuvent changer
Etiquettage Morpho-syntaxique
114 Définition: Classes ouvertes
Les noms couvrent normalement les personnes, endroits et choses
les noms sont les mots qui peuvent être attachés à un déterminant (a ball) ou
prendre une forme possessive (IBM’s annual revenue)
ils forment le mot principal des sujets ou objets des verbes
On distingue les noms propres des noms communs
les noms propres correspondent à des noms donnés de personnes, endroits,
etc. (Colorado, IBM)
les noms propres débutent souvent par une lettre majuscule
Etiquettage Morpho-syntaxique
115 Définition: Classes ouvertes
On distingue les noms propres des noms communs
Parmi les noms communs on distingue les count nouns des mass nouns
les count nouns peuvent être au pluriel (ball/balls) et être comptés (one ball, two
balls, etc.)
les mass nouns représentent un concept plus homogène qui ne se compte pas
(snow, salt, communism) et peuvent ne pas être précédés d’un article
“Snow is white” vs “The ball is red”
Etiquettage Morpho-syntaxique
116 Définition: Classes ouvertes
Verbes, Auxiliaires
Les verbes font normalement référence à des actions
plusieurs formes morphologiques leur sont applicables
en anglais : eat
troisième personne : eats
forme progressive : eating
participe passé : eaten
les auxiliaires (have, is, can, may, should) sont une sous-famille des verbes, qui se
combinent à d’autres verbes considérés comme une classe fermée
Toutes les langues ont des noms et des verbes
Etiquettage Morpho-syntaxique
117 Définition: Classes ouvertes
Adjectifs
Les adjectifs décrivent normalement des propriétés ou qualités
la plupart des langues ont des adjectifs décrivant les concepts de
couleur (while, black), d’âge (old, young) et valeur (good, bad)
il existe tout de même des langues sans adjectifs (Coréen)
Adverbes
Les adverbes mot invariant ajoutant une détermination à un verbe ou à un
adjectif ou à un autre adverbe pour en préciser le sens
tous les mots soulignés ci-dessous sont des adverbes
“Unfortunately, John walked home extremely slowly yesterday”
Etiquettage Morpho-syntaxique
118 Définition: Classes ouvertes
Adverbes
On distingue différents types d’adverbe
directional adverbs (home, here,)
degree adverbs (extremely, very, minor)
manner adverbs (slowly, delicately)
temporal adverbs (yesterday, Monday)
Certains adverbes sont parfois étiquetés comme des noms
(Monday)
Etiquettage Morpho-syntaxique
119 Définition: Classes fermées
Les classes fermées varient d’une langue à l’autre
Les principales en Anglais :
préprosition (on, under, over, near, by, at, from, to, with)
déterminants (a, an, the)
pronoms (she, who, I, others)
conjonctions (and, but, or, as, if, when)
auxiliaires (can, may, should, are)
particules (up, down, on, off, in, out, at, by)
adjectifs numéraux ou numerals (one, two, three, first, second, third)
Etiquettage Morpho-syntaxique
120 Définition: Classes fermées
Les prépositions marquent généralement des relations spatiales ou
temporelles
Exemple : on it, before then, by the house, on time, beside herself
Elles sont utilisées devant un syntagme nominal (noun phrase)
un syntagme nominal est un nom ainsi que les mots qui l’entourent, décrivant
normalement l’objet ou le sujet d’un verbe
Etiquettage Morpho-syntaxique
121 Définition: Classes fermées
Les particules ressemblent à une préposition ou à un adverbe et
sont utilisées en combinaison avec un verbe
Exemple : He arose slowly and brushed himself off.
Exemple : she had turned the paper over.
La combinaison d’un verbe et d’une particule est appelée un
verbe à particule (phrasal verb)
la particule peut changer significativement la signification du verbe
Exemple : turn down dans le sens de rejeter
Etiquettage Morpho-syntaxique
122 Définition: Classes fermées
Les déterminants sont utilisés avec les noms ou syntagmes
nominaux
Exemple : this chapter, that page
Les articles sont un sous-ensemble des déterminants
il n’y en a que 3 en anglais : a, an et the
Les conjonctions combinent des segments de phrase
il y a les conjonctions de coordination : but, and, or
il y a les conjonctions de subordination
Exemple : I thought that you might like some milk
Etiquettage Morpho-syntaxique
123 Définition: Classes fermées
Les pronoms sont des mots courts faisant normalement référence à
un syntagme nominal
les pronoms personnels (you, she, I, it, me, etc.) font référence à une
personne ou entité
les pronoms possessifs (my, your, his, her, its, one’s, our, their) marque
la possession d’un objet à une personne
les wh-pronouns (what, who, whom, whoever) sont normalement
utilisés dans des questions
Etiquettage Morpho-syntaxique
124 Définition: Classes fermées
Les auxiliaires sont des verbes qui se combinent avec d’autres verbes
(be, do, have, can, may, must, etc.)
peut marquer le temps du verbe (I have gone, We were robbed, We are
leaving)
peut marquer la possibilité (I can sing) ou nécessité (I must work) d’une
action
Etiquettage Morpho-syntaxique
125 Définition: Autres Classes
D’autres classes existent
interjection (oh, ah, hey, man)
négation (no, not)
marqueurs de politesse (please, thank you)
symboles
etc.
Etiquettage Morpho-syntaxique
126 Ensemble d’étiquettes: Tagset
Dans un corpus, on représente les classes grammaticales à partir d’ensembles
d’étiquettes ou tagset
le choix du tagset détermine quelles classes grammaticales on va distinguer dans nos
données
Exemples :
Etiquettage Morpho-syntaxique
127 Ensemble d’étiquettes: Tagset
Penn Treebank Tagset (université de Pennsylvanie): Le Tagset le plus populaire
(45 étiquettes)
Etiquettage Morpho-syntaxique
128 Ensemble d’étiquettes: Tagset
Penn Treebank Tagset:
Exemple
Etiquettage Morpho-syntaxique
129 Ensemble d’étiquettes: Tagset
Brown Tagset:
Il existe d’autres Tagsets, plus exhaustifs
le Brown tagset contient 87 étiquettes
le Penn Treebank est inspiré en partie du Brown tagset et en est une
version simplifiée
Etiquettage Morpho-syntaxique
130 Ensemble d’étiquettes:
POST TAGGER pour la langue Arabe
Stanford POS TAGGER (disponible en pyhton)
Aramorph
Khoja
Alkhalil (Université Oujda)
Xerox
TAGGAR
Etc
Text document modeling
131 Problématique:
Un problème avec la modélisation du texte est que le texte est une donnée non
structurée
Des techniques telles que les algorithmes d'apprentissage automatique
préfèrent des entrées et des sorties bien définies.
Les algorithmes d'apprentissage automatique ne peuvent pas fonctionner
directement avec du texte brut ;
Le texte doit être converti en chiffres: vecteurs de nombres.
Dans le traitement du langage, les vecteurs sont dérivés de données textuelles,
afin de refléter diverses propriétés linguistiques du texte.
C'est ce qu'on appelle l‘extraction de caractéristiques (Feature Extraction).
Text document modeling
r
132 Bag of words Model (BoW)
La façon la plus courante de traiter les documents textes, est d'abord de les
transformer en vecteurs numériques creux (Sparse Vector), puis de les traiter
avec des opérations d'algèbre linéaire
Par conséquent, on oublie tout de la structure linguistique à l'intérieur du texte
Bag-of-Words (sac de mots) est l'une des méthodes les plus fondamentales pour
transformer les Tokens en un ensemble de caractéristiques (Features).
Ces caractéristiques peuvent être utilisées pour entraîner des algorithmes
d'apprentissage automatique.
Text document modeling
r
133 Bag of words Model (BoW)
Un morceau de texte/document est représenté comme un sac de
mots (BoW), sans tenir compte de la grammaire et de l'ordre des
mots.
Exemple:
Document: “Three midterm exams in a week, and I love exams!
Can we have another midterm exam this week please?“
Bag of words: {three:1, midterm:2, exam:3, week:2, I:1, love:1,
can:1, we:1, have:1, another:1, this:1,please:1}
Text document modeling
r
134 Bag of words Model (BoW)
BoW pour 1 document (Uni-gram)
Text document modeling
r
135 Bag of words Model (BoW)
TRUMP MAKES BID FOR CONTROL OF RESORTS Casino owner and real estate
Donald Trump has offered to acquire all Class B common shares of Resorts
International Inc, a spokesman for Trump said. The estate of late Resorts chairman
James M. Crosby owns 340,783 of the 752,297 Class B shares. Resorts also has Original text
about 6,432,000 Class A common shares outstanding. Each Class B share has 100
times the voting power of a Class A share, giving the Class B stock about 93 pct of
Resorts' voting power.
[RESORTS:0.624] [CLASS:0.487] [TRUMP:0.367] [VOTING:0.171] [ESTATE:0.166]
[POWER:0.134] [CROSBY:0.134] [CASINO:0.119] [DEVELOPER:0.118] [SHARES:0.117] Bag-of-Words
[OWNER:0.102] [DONALD:0.097] [COMMON:0.093] [GIVING:0.081] [OWNS:0.080] representation
[MAKES:0.078] [TIMES:0.075] [SHARE:0.072] [JAMES:0.070] [REAL:0.068]
[CONTROL:0.065] [ACQUIRE:0.064] [OFFERED:0.063] [BID:0.063] [LATE:0.062]
[OUTSTANDING:0.056] [SPOKESMAN:0.049] [CHAIRMAN:0.049]
[INTERNATIONAL:0.041] [STOCK:0.035] [YORK:0.035] [PCT:0.022] [MARCH:0.011]
Text document modeling
r
136 N-grams Model
Représenter les relations spatiales entre les mots .
Généralisation du BoW.
Example:
Document: “Three midterm exams in a week, and I love exams! Can we
have another midterm exam this week please?“
Bigrams: {threemidterm:1, midtermexam:2, examweek:2, …}
Text document modeling
r
137 Document-Term Matrix
Un Document-Term est une matrice dont les éléments représentent le nombre ou la fréquence
des termes (c'est-à-dire des mots ou des n-grammes) qui apparaissent dans une collection de
documents (corpus).
Dans une matrice Document-terme, les lignes correspondent aux documents et les colonnes
correspondent aux termes.
Document ids nova galaxy heat h’wood film role diet fur
1 10 5 3
2 5 10
3 10 8 7
4 9 10 5
5 10 10
6 9 10
7 5 7 9
8 6 10 2 8
9 7 5 1 3
Text document modeling
r
138
Document-Term Matrix
• La matrice Document-Term A(ti, dj) contient le nombre
d’apparition du term i dans le document j.
D1 = "I like data mining"
D2 = "I hate data mining, data engineering is interesting“
I like hate data mining engineering is interesting
D1 1 1 0 1 1 0 0 0
D2 1 0 1 2 1 1 1 1
Term frequency:
I like hate data mining engineering is interesting
D1 0.25 0.25 0 0.25 0.25 0 0 0
D2 0.125 0 0.125 0.25 0.125 0.125 0.125 0.125
Text document modeling
r
139
Term Frequency–Inverse Document Frequency Model: (TF-IDF)
Un problème avec la fréquence des mots est que les mots très
fréquents commencent à dominer dans le document
mais peuvent ne pas contenir autant de "contenu informationnel" pour
le modèle que des mots plus rares mais peut-être spécifiques à un
domaine.
Une approche consiste à redimensionner la fréquence des mots en
fonction de leur fréquence d'apparition dans tous les documents, de
sorte que les scores des mots fréquents comme « le » qui sont
également fréquents dans tous les documents soient pénalisés.
Text document modeling
r
140
Term Frequency–Inverse Document Frequency Model: (TF-IDF)
Cette approche de la notation s'appelle Term Frequency - Inverse Document
Frequency, (TF-IDF) où :
Fréquence du terme : est une notation de la fréquence du mot dans le document
actuel.
Inverse Document Frequency : est une notation de la rareté du mot dans les
documents.
TF-IDF est un schéma de pondération pour réduire l'importance des termes
fréquemment rencontrés dans le corpus.
Mesure statistique utilisée pour évaluer la représentativité d'un mot pour un
document particulier dans une collection de documents
Text document modeling
r
141
Term Frequency–Inverse Document Frequency Model: (TF-IDF)
Représenter chaque document sous forme de vecteur
TF-IDF= 𝒕𝒇𝟏 ∗ 𝒊𝒅𝒇𝟏 , 𝒕𝒇𝟐 ∗ 𝒊𝒅𝒇𝟐 , … , 𝒕𝒇𝒏 ∗ 𝒊𝒅𝒇𝒏
Term frequency
𝒕𝒇𝒊 est la fréquence du ième terme dans le document..
Inverse document frequency
𝑵
𝒊𝒅𝒇𝒊 = 𝒍𝒐𝒈
𝒅𝒇𝒊
où:
N est le nombre de documents dans le corpus
dfi (Document Frequency) est le nombre de documents qui contiennent le ième
terme
Text document modeling
r
142 Term Frequency–Inverse Document Frequency Model: (TF-IDF)
Exemple:
Document 1 Document 2
Term Term
Term Term
Frequency Frequency
this 0.2 this 0.25
apple 0.01 weather 0.1
music 0.05 rain 0.05
computer 0.1 forecast 0.15
… … … …
𝑡𝑓 𝑡ℎ𝑖𝑠, 𝐷1 = 0.2 𝑡𝑓 𝑡ℎ𝑖𝑠, 𝐷2 = 0.25
2
𝑖𝑑𝑓 𝑡ℎ𝑖𝑠 = log =0
2
2
𝑖𝑑𝑓 𝑎𝑝𝑝𝑙𝑒 = log ≈ 0.3
1
Text document modeling
r
143 Limitations des modèles à base de Bag-of-Words
Les modèles à base de BOW sont utilisés avec beaucoup de succès sur des
problèmes de prédiction tels que la modélisation du langage et la classification de
la documentation.
Néanmoins, il souffre de quelques défauts, tels que :
Les représentations en vecteur Creux sont parfois plus difficiles à modéliser à la fois pour
des raisons de calcul et également pour des raisons d'information, où le défi consiste à
exploiter peu d'informations dans un grand espace représentatif.
Ignorer l'ordre des mots, ignore le contexte et, par conséquent, la signification des mots
dans le document (sémantique).
Le contexte et la signification peuvent être utiles dans beaucoup de modèle,
pourrait faire la différence entre les mêmes mots disposés différemment
("c'est intéressant" vs "est-ce intéressant?"), les synonymes ("vieux vélo" vs "vélo d'occasion") ,
Text document modeling
r
144 Word Embedding
Nous avons vu une première manière de représenter nos documents comme: BoW,
NGram et les méthodes de comptage direct (FD ou TF-IDF).
Représentation de chaque document par un vecteur de fréquences du dictionnaire de
mots que l’on avait à disposition et Traitement des données (Vecteurs) creuses ( sparse).
TF-IDF: comptages déterministes représentatifs des données, en l’occurrence la
fréquence du mot et la fréquence inverse du document.
Une autre famille de techniques (Circa 2013) a permis de repenser ce modèle
Nouvelle représentation des mots dans un espace avec une forme de similarité entre eux
(probabiliste), dans lequel:
le sens des mots les rapproche dans cet espace, en terme de distances statistiques.
C’est un plongement (Embedding) dans un espace de dimension inférieur : Word2Vec.
Text document modeling
r
145 Word Embedding
Word embedding est une classe de techniques de vectorisation de données (BoW,N-Gram,
TF-IDF) qui représentent le vocabulaire d'un document sous forme de vecteurs de nombres
réels tout en capturant les relations entre les termes.
Word embedding est un type de représentation de mots qui permet à des mots ayant une
signification similaire d'avoir une représentation similaire.
Les termes qui ont une relation sémantique sont présentés par des vecteurs proches les uns
des autres.
Text document modeling
r
146 Word Embedding
L’hypothèse principale de ces méthodes étant de prendre en compte le
“contexte” dans lequel le mot a été trouvé, c’est à dire les mots avec lesquels il
est souvent utilisé.
Ce contexte permet de créer un espace qui rapproche des mots qui ne se sont
pas forcément trouvés les uns à côté des autres dans un corpus
Ces méthodes de représentation vectorielles ont aussi permis d’entraîner des
modèles de représentation des mots sur des corpus beaucoup plus grands (des
centaines de milliards de mots par exemple...)
Word Embedding peuvent être générées à l'aide de diverses méthodes telles
que les réseaux de neurones, la matrice de cooccurrence, les modèles
probabilistes, etc.
Text document modeling
r
147 Word Embedding
Ces représentations possèdent des capacités surprenantes.
Par exemple, on peut retrouver beaucoup de régularités linguistiques simplement en
effectuant des translations linéaires dans cet espace de représentation.
Par exemple le résultat de vec(“Madrid”) - vec(“Spain”) , vec(“France”) donne une
position dont le vecteur le plus proche est vec(“Paris”) !
Text document modeling
r
148 Word Embedding
Apprentissage de « représentations contextuelles » des mots
Un vecteur qui représente le lien sémantique entre les mots
1 mot (ou phrase) 1 vecteur (dense)
2 mots se trouvant dans un même contexte ont une proximité sémantique et syntaxique
Exemple:
Grande similarité sémantique entre ORANGE et POMME (tous les deux sont
des fruits)
Ils ont tendance à apparaître dans un contexte similaire dans les textes.
Text document modeling
r
149 Word Embedding
Soustraction vectorielle dans l'espace de projection
Proximité syntaxique: Vectapple - Vectapples ≈ Vectcar - Vectcars ≈ Vectfamily - Vectfamilies
Proximité sémantique: Vectshirt - Vectclothing ≈ Vectchair - Vectfurniture
Vectking – Vectman ≈ Vectqueen - Vectwoman
Afin de calculer les vecteurs qui représentent les mots, les méthodes word2vec utilisent
des perceptrons linéaires simples.
L’idée est de compresser notre corpus vers un dictionnaire de vecteurs denses de
dimension bien inférieure choisie.
Text document modeling
r
150 Word Embedding: Matrice de Co-Occurences
Cooccurrence-Matrix C(i , j ) = nombre d'occurrences du mot i à côté de mot j
Définition d’une fenêtre de taille n (5-10 mots plutôt que par phrase)
Matrice C symétrique N x N où N est la taille du vocabulaire
Capte à la fois les informations syntaxiques et sémantiques
1 embedding = 1 colonne ∈ RN
Augmente en taille avec le vocabulaire
nécessite beaucoup de stockage
Sparsité faible robustesse
Exemple: la matrice de Co-Occurrence
du corpus et l’embedding de like
I like deep learning.
I like NLP.
I enjoy flying.
Text document modeling
r
151 Word Embedding: Matrice de Co-Occurences
On veut un vecteur dense (de dimension assez faible entre 25-1000)
Réduction de la dimensionnalité possible en utilisant la décomposition en valeurs
singulières de C (k valeurs / vecteurs propres )
Problèmes
Coût de calcul
Sparsité partiellement résolue
Difficile d'intégrer de nouveaux mots
Nouvelles méthodes
Apprendre à prédire les mots voisins plutôt que de compter des cooccurrences
Apprendre directement des vecteurs de faible dimension
Utilisation de Réseaux de Neurones de type MLP (Multi Layer Perceptron)
Text document modeling
r
152 Word Embedding: Word2Vec
Il a été développé en 2013 par une équipe Google sous la supervision de Tomas
Mikolov.
Il peut être mis en œuvre selon 2 modèles différents :
CBOW (Continous Bag Of Words) prédire la target en fonction du contexte
Skip-gram prédire le contexte en fonction de la target
Basées sur une architecture MLP
Text document modeling
r
153 Word Embedding: Word2Vec
One-hot encoding
Exemple: Corpus
He went back to the hallway.
Showers are located in the hallway.
1. Attribuez à chaque mot unique une valeur entière unique.
(he : 1), (went : 2), (back : 3), (to : 4), (the : 5), (hallway : 6), (showers : 7),
(are : 8), (located : 9), (in : 10)
2. Représenter chaque mot comme un vecteur de taille n, où n est le nombre total
de mots uniques dans la base de données.
Text document modeling
r
154 Word Embedding: Word2Vec
One-hot encoding Vecteur « one-hot encoding » du mot Went
he Went Back To The Hallway Showers Are Located in
He 1 1 0 0 0 0 0 0 0 0 0
Went 2 0 1 0 0 0 0 0 0 0 0
Back 3 0 0 1 0 0 0 0 0 0 0
To 4 0 0 0 1 0 0 0 0 0 0
The 5 0 0 0 0 1 0 0 0 0 0
Hallway 6 0 0 0 0 0 1 0 0 0 0
Showers 7 0 0 0 0 0 0 1 0 0 0
Are 8 0 0 0 0 0 0 0 1 0 0
Located 9 0 0 0 0 0 0 0 0 1 0
In 10 0 0 0 0 0 0 0 0 0 1
Text document modeling
r
155 Word Embedding: Word2Vec (Etapes de Fonctionnement)
1ère étape 2ème étape 3ème étape
Il s'agit d'un problème qui Il résout ce problème en Le modèle final entraîné
consiste: utilisant un réseau sur ce problème sera utilisé
neuronal superficiel. pour calculer les
soit à compléter un mot
manquant dans une phrase, plongements (Embedding)
soit à trouver les mots qui des mots dans la base de
entourent un terme dans données.
une phrase (le contexte).
Text document modeling
r
156 Word Embedding: Word2Vec
Modèle CBOW (Continuous Bag Of Word)
Le modèle CBOW tente de prédire un mot w(t) en
fonction de son contexte w(t-2), w(t-1), w(t+1), w(t+2).
Dans un premier temps, tous les mots sont transformés
en vecteurs one-hot.
Ensuite, le modèle additionne les vecteurs de
contexte et essaie ensuite de prédire le mot au milieu
du contexte w(t), qui est appelé le mot cible (Target).
Text document modeling
r
157 Word Embedding: Word2Vec
Modèle CBOW (Continuous Bag Of Word)
MLP à 2 couches + sortie
Apprendre W et W’ pour obtenir:
Input = {April, 1959, recorded, what}
Output = {Davis}
Les mots sont représentés par des vecteurs "one-hot" Xi
Xi ∈ Rv avec V = taille du vocabulaire
r Text document modeling
158 Word Embedding: Word2Vec
Modèle CBOW (Continuous Bag Of Word)
Dataset: ‘I love ice cream’
I love ___ cream ice
V= {‘I’, ‘love’, ‘ice’, ‘cream’}
I : [1,0,0,0] love : [0,1,0,0] ice : [0,0,1,0] cream : [0,0,0,1]
r Text document modeling
159 Word Embedding: Word2Vec
Modèle CBOW (Continuous Bag Of Word)
0 Output
Input layer Hidden layer
One-hot 1
Love 0 0 0
𝒉𝟏
0 1 0
Sum 𝒉𝟐
0 1
𝒉𝟑
0 1 0
One-hot 0
Cream
0
1
r Text document modeling
160 Word Embedding: Word2Vec
Modèle CBOW (Continuous Bag Of Word)
Apprentissage:
Entrée : les one-hot vecteurs des mots du contexte (xc-m;…; xc-1; xc+1;…; xc+m)
V = taille du vocabulaire
Sorties souhaitées du réseau : ^y = un one-hot vecteur correspondant au mot cible
Les matrices W et W' correspondent à des
Embeddings en entrée et en sortie
* En entrée: la jème colonne de W est le vecteur
d‘embeddings du mot dj
* En sortie: la ième ligne de W' est le vecteur
d’embedding pour le mot di (target)
* Nous apprenons en fait deux vecteurs pour chaque mot.
r Text document modeling
161 Word Embedding: Word2Vec
Modèle Skip-Gram
Le skip-gram consiste à prédire les mots voisins
w(t-2), w(t-1), w(t+1), w(t+2), à partir du mot
courant w(t).
Le modèle reçoit en entrée le mot courant et il
doit prédire ses mots de contexte.
Il utilise l'algorithme de rétropropagation pour
entraîner un réseau de neurones, et qui consiste
à mettre à jour les poids de chaque neurone de
la dernière couche vers la première.
r Text document modeling
162 Word Embedding: Préparation des vecteurs pour les phrases
Word2Vec
CBoW fonctionne bien pour les mots fréquents
Skip gram pour les mots rares
Les bases de données contiennent des phrases et pas seulement des mots.
Nous devrons utiliser les vecteurs de mots du modèle word2vec pour créer une
représentation vectorielle pour un document entier.
Le plus simple est de calculer la moyenne de tous les vecteurs de mots présents
dans le texte
Exemple:
Tweet : 𝒘𝟏 , 𝒘𝟐 , 𝒘𝟑
𝒘𝟏 : [0.95 1.02 -0.45] Moyenne
𝒘𝟐 : [-1.25 0.28 0.14] [-0.14 0.09 -0.06]
𝒘𝟑 : [-0.13 -1.01 0.12]
Text document modeling
r
163 Word Embedding
Plusieurs extensions de Word2vec ont été mises en œuvre telles que:
FastText: Facebook
GloVe
BERT
etc.
Applications de Word Embedding :
Sentiment Analysis
Speech Recognition
Information Retrieval
Question Answering
r Text document modeling
164 Word Embedding: FastText
FastText est l'une des méthodes de vectorisation pour implémenter
le Word Embedding.
Il a été développé et publié pour la première fois en 2015 par
l'équipe de recherche sur l'intelligence artificielle de Facebook.
Il est essentiellement considéré comme une amélioration ou une
extension du Word2Vec.
Les unités de données est N-gram de caractères.
r Text document modeling
165 Word Embedding: FastText vs Word2Vec
Word2Vec fonctionne au niveau du mot, tandis que FastText fonctionne sur
les N-gram de caractères.
Word2Vec ne peut pas fournir le word Embedding hors vocabulaire (OOV),
tandis que FastText peut fournir des Embedding pour les mots OOV.
FastText peut fournir de meilleurs embedding pour les langues
morphologiquement riches par rapport à word2vec.
FastText est plus rapide que word2vec.
r Text document modeling
166 Word Embedding:
Commencer par la démonstration de Gensim pour le Word Embedding
Voir le lien :
https://www.nltk.org/howto/gensim.html?highlight=sample+usage+gensim
Text document modeling
167 Similarité
Information
Collections
need
Pre-process
text input
Parse Query Index
Rank
Evaluate
Text document modeling
r
168 Mesures de similarité:
Simple matching |QD|
|QD|
Dice’s Coefficient 2
|Q|| D|
Jaccard’s Coefficient
|QD|
|QD|
Cosine Coefficient |QD|
1 1
|Q | | D |
2 2
Overlap Coefficient |QD|
min(| Q |, | D |)
Text document modeling
r
169 Cosine Similarity:
Cosine Similarity est une méthode qui calcule la distance entre deux
vecteurs.
Il est utilisé pour déterminer la similarité entre deux vecteurs dans un
espace produit interne.
σ𝑛𝑖=1 𝐴𝑖 ∗ 𝐵𝑖
𝐶𝑜𝑠𝑖𝑛𝑒𝑆𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 𝐴,𝐵 = cos 𝜃 =
σ𝑛𝑖=1 𝐴𝑖² ∗ σ𝑛𝑖=1 𝐵𝑖²
Text document modeling
r
170 Cosine Similarity:
A1 (0.8, 0.3)
A2 (0.2, 0.7)
1.0 B (0.4, 0.8)
B
A2 cos 1 0.74
0.8
cos 2 0.98
0.6 2
0.4
1 A1
0.2
0.2 0.4 0.6 0.8 1.0
Text document modeling
171 Evaluation de Perfomance
Information
Collections
need
Pre-process
text input
Parse Query Index
Rank
Evaluate
Text document modeling
172 Evaluation de Performance
Soit un classifieur pour des articles de nouvelles politiques
Comment mesurer sa performance ?
On peut distinguer 4 situations différentes
on appelle ce type de tableau un tableau de contingence
Text document modeling
173 Evaluation de Performance
On s’intéresse entre autre :
à la précision : vp / (vp + fp)
au rappel : vp / (vp + fn)
Il y a un compromis à faire entre la précision et le rappel
dépend du seuil appliqué pour déterminer la classe prédite
plus le seuil est élevé, plus la précision sera élevée mais le rappel sera bas
plus le seuil est bas, plus la précision sera basse mais le rappel sera élevé
Text document modeling
174
Evaluation de Performance: F-mesure
La F-mesure (F-measure, F1 score) est souvent utilisée comme
combinaison de la précision et du rappel :
C’est la moyenne harmonique de la précision et du rappel
F1 Score Interpretation
> 0.9 Very good
0.8 - 0.9 Good
0.5 - 0.8 OK
< 0.5 Not good