Conférence donnée dans le cadre du meet-up "Toulouse Data Science".
L'exposé est une introduction du domaine du traitement automatique des langues (aussi connu comme TAL, text mining, ou NLP, fouille de texte, analyse sémantique...). L'exposé est à destination de tout public (informaticien, statisticien, linguiste, manageur, curieux).
4. Plan
4
1. Introduction au TAL : domaine,
problématiques
2. Chaîne d’analyse linguistique
3. Trois techniques essentielles
4. Ressources logicielles et
linguistiques
5. Introduction
● Qu’est-ce que le TAL ?
● Apprentissage automatique
● Linguistique
● Particularités de la donnée
“langue”
5
10. Apprentissage automatique
Rendre une machine capable de :
● prendre des décisions,
● produire des analyses,
● avoir des comportements adéquats,
après analyse de données empiriques.
10
17. Choix des “traits”
ou “variables explicatives”, “variables prédictives”, “features” :
● fréquence du mot “super”
● présence du smiley☺
● longueur du commentaire
● nombre de mots positifs
● ...
17
31. Unités lexicales, entités nommées
● mot : unité graphique, suite de caractères entre deux espaces
● unité lexicale :
○ plusieurs mots : pomme de terre, pied-à-terre, jusque là
○ partie du discours : adverbe, nom, adjectif
● entité nommée :
○ référent unique
○ invariable
○ Nom propre : Epitech, numérique : date, prix, longueur...
● collocations :
○ association privilégiée entre deux unités lexicales : mettre de l’ordre, travailleur indépendant
31
32. Syntaxe
● Agencement des mots/groupes de mots
○ Groupe / Syntagme nominal : le petit chat → unités de sens pertinentes pour le TAL
● Relations entre les groupes et sens qui en découle :
○ Sujet, Objet, Complément…
● Nombreux formalismes et théories:
32
33. Sémantique lexicale
● Relations de sens entre les mots
○ Polysémie : pl. sens liés
○ Homonyme : 1 forme graphique, sens
différent
○ Antonyme : contraire
○ Synonyme
○ Hypernonyme
○ Hyponyme
○ Meronyme
● TAL : rapprochement sémantiques
pertinents
33
34. Sémantique distributionnelle
● Distributionnalisme : les unités de la langue sont commutables
34
a fait son nid.Le
pinson
merle
oiseau
moineau
pic-vert
* chien
* chat
même classe
classe différente
⇒ Les unités apparaissant dans des contextes similaires sont
sémantiquement proches.
35. Textométrie
● Exploration quantitative des textes
● Détermination des marqueurs
linguistiques d’un auteur, genre,
époque
● Étude des fréquences, répartition des
vocables selon les textes
● Loi de Zipf :
○ vocabulaire formé à partir de peu de mots
● Ratio forme:occurrence
○ variété d’un texte
35
39. Ambiguïté : une forme → plusieurs sens
Un bon repas, un très beau cadre, pas cher : c’était parfait !
Loin d’être parfait : bon d’achat refusé, cher. Bref, un beau bordel !
Le serveur m’a apporté le repas rapidement mais...
… il était froid → “repas froid”
… il était peu souriant → “serveur peu souriant”
… il y avait beaucoup de bruit → “bruyant”
39
40. Paraphrase : un sens → plusieurs formes
La soupe était délicieuse.
Le potage était savoureux.
L’attente fut vraiment longue.
Nous avons attendu très longtemps.
40
41. Des unités continues
galette
entremets
baba au rhum
tarte aux pommes
gateau de Simon
41
intégré - figé
libre
mot, unité lexicale simple
mot composé, lexie complexe
expression, locution
collocation
groupe grammatical, syntagme
42. Des unités continues
mesure, nom fém.
● action de mesurer : la mesure du temps
● quantité servant à mesurer : le mètre est une
mesure de surface
● récipient servant à mesurer : une mesure en
étain
● [MUSIQUE] division d’un morceau en parties
égales
● [POÉSIE] quantité de syllabe dans un vers
● modération : agir avec mesure
● moyen : mettre en œuvre une mesure
42
monosémie
homonymie
polysémie
43. Instabilité
● temps
○ selfie, zadiste, souris
● contexte
○ quoi vs koi
○ maman vs mère
● géographique
○ abreuvoir (CA) vs fontaine (FR)
○ chocolatine vs pain au chocolat
● domaine
○ licorne [économie] vs licorne [général]
○ extrêmités digitales [médecine] vs le bout des doigts [général]
○ assimilation [sociologie] vs assimilation [médecine] vs assimilation [linguistique]
43
45. Subjectivité
● Nombreux cas de désacords
○ entre humains
○ pour 1 même humain (sur le temps)
● analyse d’opinion : 20%
● compatibilité sémantique : 12%
● traduction de termes : 18%
45
FR : L'histoire du TAL commence dans les années 1950, bien que l'on puisse trouver des travaux
antérieurs.
EN1 : The history of the NLP began in the 1950s, although one can find previous work.
EN 2 : NLP history started in the 50’s, some former work can be found.
47. Objectifs de l’analyse linguistique
● Gérer les difficultés inhérentes au langage
○ Délimitation les unités linguistiques
○ Identification de leurs relations
○ Attribution d’un sens
47
48. 48
TOKENIZATION
PARSING
CHUNKING
STEMMING
“Mon amie a absolument adoré le baba au rhum.”
DETp NOM VERpres ADV VERper DETa NOM SENT
mon ami avoir absolument adorer le <unknown> .
mon ami a absolu ador le baba_au_rhum .
Mon amie a absolument adoré le baba_au_rhum .
LEMMATIZATION
POS TAGGING
Synt. nominal Syntagme verbal Syntagme nominal
SUJET OBJET
49. Tokenisation : découper en mot
● relativement trival
● liste d’exceptions
○ apostrophe : entr’ouverte vs l’arbre
○ virgule : 8,2 %
○ smileys : :-)
○ trait d’union : est-il vs anti-givre
○ point : M. Dupont, S.N.C.F.
○ espace : baba au rhum , 3 200 €, jusque là, s’il vous plaît
○ données numériques : 01/06/1980, 37°C
● adaptation au domaine
● désambiguïsation
○ pomme vs pomme de terre
49
50. Stemming : enlever les suffixes
● pas de la racinisation !
○ racinisation : anticonstitutionnellement → consitution
○ stemming : anticonstitutionnellement → anticonsitutionnel-
● généralisation
○ fin, fine, fins, fines → fin-
○ dériver, dérivation, dérivable → dériv-
● pas précis
○ portes, porté, porter, porte → port-
○ longtemps → longtemps- ; longuement, longue → longu- ; long → long-
● Intérêt :
○ recherche d’information
○ similarité thématique gros volumes
○ apprentissage : réduction du nombre de traits
50
51. Lemmatisation : forme “neutre”
● Ôter les flexions
○ verbe infinitif
○ nom, adjectif masculin singulier
● Généralisation : retrouver toutes les occurrences
○ Recherche d’information : “recette de crêpe” → recettes de crêpes
○ Extraction de traits : “adorer” → j’ai adoré le repas, j’adore ce restaurant
● Réduction du nombre d’éléments traités
51
52. POS tagging : catégories grammaticales
● Désambiguïsation
○ Il porte un beau costard. vs Elle ouvre la porte.
○ La belle ferme le voile. vs La belle ferme le voile.
● Extraction de patrons, sélection des mots pertinents
○ NOM/dessert ADV ? ADJ
■ desserts délicieux
■ dessert vraiment excellent
● Limite : ambiguïté des suites de POS
○ ADJ NOM PREP DET NOM
■ Ils servent un excellent vin au verre.
■ J’ai demandé un excellent vin au serveur.
52
53. Chunking : groupes syntaxiques
● Unités correctement délimitées
○ [J’] [ai demandé] [un verre de vin] [au serveur].
● Traits plus pertinents et précis
○ tarte : tarte aux pommes vs tarte aux pommes
○ [je] [n’ai pas aimé] → pas aimer
● Attribution de descripteurs :
53
ventes d’Iphone
baisse des ventes
économie chinoise
recul des revenus
54. Parsing : relations longue distance
54
Le cuisinier de ce restau est particulièrement doué.
SUJET
OBJET
NOM ÊTRE ADJ
cuisinier doué
58. Représenter la “sémantique” d’un document
● Pourquoi ?
○ lui attribuer une classe
○ trouver des documents similaires
○ l’indexer dans un moteur de recherche
● Technique : le “sac de mots”, “vectorisation”
○ sélection des mots pertinents
○ attribution de poids
○ perte d’information de position, structure
58
59. Constitution du sac de mots
● Élimination de certains mots
○ mots outils : stop list ou PREP, DET, CONJ, PRO
○ mots trop ou pas assez fréquents
● Généralisation
○ casse, accents
○ stemming, lemmatisation
● Ajout de groupes de mots
○ n-grammes fréquents : suite de n mots
bigrammes :
○ syntagmes : 8 ans d’expérience, développement logiciel
59
passionnée de nouvelles technologies et d’innovation
60. Poids des mots
● Présence / absence
● Fréquence dans le document
● Fréquence dans le document vs dans la collection
○ TF.IDF, information mutuelle, taux de vraisemblance…
● Résultat : “sac de mots”, “vecteur”
60
java C# licence toulouse hausse ca web text mining
CV #1 ◾ ◾ ◾ ◾ ◼ ◼ ◾
63. Représenter le sens d’un mot
● Pourquoi ?
○ identifier des synonymes : réduction taille vecteurs
○ généraliser :
■ développement logiciel ↔ développement informatique
○ détecter des proximités sémantiques
■ aide à la saisie : HTML, CSS → Javascript ?
■ nettoyage de données : logiciel, informatique, développement, cuisine
○ identifier des traductions
■ logiciel ↔ software
63
64. Représenter le sens d’un mot
● Approche “statique”
○ Projection d’une ressource existante, exemple : WordNet
○ Proximité sémantique : distance dans le réseau
○ Limites : variation temps, domaine, contexte
64
65. Représenter le sens d’un mot
● Approche “distributionnelle” : le sens d’un mot est défini par son contexte
linguistique
● Exemple : tous les adjectifs régis par un nom
○ politique : commun, volontariste, nataliste, agressif, laxiste, cohérent
○ stratégie : fluctuant, attentiste, agressif, offensif, défensif, volontariste, cohérent
● Autres mots proches :
○ action, gestion, programme, mesure
65
66. Collecter le contexte d’un mot
● Relations syntaxiques :
○ verbe : tous les noms objets, sujets
○ nom : tous les adjectifs, noms, verbes
● Fenêtre
○ tous les mots dans la même phrase, paragraphe
○ tous les mots
● Calcul d’association :
○ Jaccard, Information Mutuelle, Taux de vraisemblance...
66
volontariste agressif commun nataliste agressif laxiste
politique ◾ ◾ ◾ ◾ ◼ ◼
67. Rapprocher les mots
67
● Similarité :
○ cosine
○ jaccard
● Obtention d’un graphe
○ extraction de cliques, etc.
69. Identifier les structures linguistiques
● Pourquoi ?
○ analyse fine
○ tagging, chunking, parsing
○ extraction d’information
69
Nom = ?
Contact = ?
Expérience = ?
Domaine = ?
Where do I buy fresh almonds ?
70. Reconnaissance de patrons
70
Spécialiste J2EE et passionnée par mon métier, je possède 10 années d’expérience au sein de…
spécialiste de? [NP] [NB] an|années d’expérience
Domaine = J2EE Expérience = 10 ans
le petit chat dort dans son panier .
DET ADJ NOM VB PREP DET NOM SENT
[DET ADV ? ADJ ? NOM] VB|SENT [DET ADV ? ADJ ? NOM] VB|SENT
GN= le petit chat GN= son panier
71. Approche empirique (apprentissage)
● Méthodes s’appuyant sur le contexte : CRF, HMM
● Exemples : corpus annoté… à la main !
○ bootstrapping
71
MODÈLE
10 000 phrases
80. Gros Volume
● Classification, Espaces vectoriels :
○ Deeplearning4j
● Parallélisation chaîne d’analyse
○ Apache UIMA
■ wrappers, gestion de conf pénible, pas de traitement en flux
■ communauté FR, format commun, parallélisation ++, communauté et algos++
○ KNIME - équivalent commercial
■ parallélisation compliquée, communauté et algos++, convivialité
80
81. Ressources linguistiques
● Modèles FR Open NLP : N. Hernandez, Nantes
● LEFF - lexique formes fléchies : B. Sagot, Inria
● WOLF - WordNet français : B. Sagot, Inria
● Ress. morphologiques : N. Hathout, ERSS
● Morphalou, Prolex - CNRL
● Jeu de mots : M. Lafourcade, LIRMM
● French TreeBank - corpus arboré : A. Abeillé, LLF
● MeSH - Meta Thesaurus médical
● Agence de distribution ELRA
81