Découverte du Traitement Automatique des Langues

82
Introduction au traitement automatique des langues Meet up TOULOUSE DATA SCIENCE Estelle Delpech Epitech, 28 janvier 2016

Transcript of Découverte du Traitement Automatique des Langues

Page 1: Découverte du Traitement Automatique des Langues

Introduction autraitement automatique des

langues

Meet up TOULOUSE DATA SCIENCEEstelle Delpech

Epitech, 28 janvier 2016

Page 2: Découverte du Traitement Automatique des Langues

Objectifs● Découvrir le TAL

○ Qu’est-ce que c’est ?

○ Quelles difficultés

● Adressé à tout public○ apprentissage automatique

○ linguistique

● Compréhension de techniques essentielles

● Pointeurs ressources logicielles, linguistiques, humaines

2

Page 3: Découverte du Traitement Automatique des Langues

IRIT

Extraction d’information

Lingua et Machina

Traduction automatique

Nomao

Génération de texteAgrégation de données

Commission Européenne

Expertise réponses appels à projet

Estelle DelpechThèse Informatique, spécialité Traitement Automatique des Langues

3

SynomiaCFH

Analyse syntaxique Extraction de termes

Page 4: Découverte du Traitement Automatique des Langues

Plan

4

1. Introduction au TAL : domaine, problématiques

2. Chaîne d’analyse linguistique

3. Trois techniques essentielles

4. Ressources logicielles et linguistiques

Page 5: Découverte du Traitement Automatique des Langues

Introduction

● Qu’est-ce que le TAL ?

● Apprentissage automatique

● Linguistique

● Particularités de la donnée “langue”

5

Page 6: Découverte du Traitement Automatique des Langues

“TAL” aka...

6

Page 7: Découverte du Traitement Automatique des Langues

Rendre le langage intelligible aux machines

● Traduction automatique● Analyse d’opinion● Correction orthographique● Reconnaissance vocale (SIRI)● Génération de résumés● Moteurs de recherche

7

Page 8: Découverte du Traitement Automatique des Langues

TAL

8

Multi-disciplinarité

Page 9: Découverte du Traitement Automatique des Langues

Apprentissage automatique

9

Page 10: Découverte du Traitement Automatique des Langues

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

Page 11: Découverte du Traitement Automatique des Langues

Applications

11

Page 12: Découverte du Traitement Automatique des Langues

Classifier des textes

SPORT

SCIENCE

PEOPLE

12

?

Page 13: Découverte du Traitement Automatique des Langues

Associer des mots

13

Page 14: Découverte du Traitement Automatique des Langues

Reconnaître des structures

14

Page 15: Découverte du Traitement Automatique des Langues

Produire du texte

15

Page 16: Découverte du Traitement Automatique des Langues

Classification de textes à partir d’exemples

POSITIF ?

16

Page 17: Découverte du Traitement Automatique des Langues

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

Page 18: Découverte du Traitement Automatique des Langues

Extraction et décompte des traits

super délicieux moyen bof

#1 positif ◾ ◾ ◼ ◼

#2 positif ◾ ◾ ◼ ◼

#3 négatif ◼ ◼ ◾ ◾

#4 négatif ◼ ◼ ◾ ◾

18

Page 19: Découverte du Traitement Automatique des Langues

Matrice des observations

super délicieux moyen bof

#1 positif ◾ ◾ ◼ ◼

#2 positif ◾ ◾ ◼ ◼

#3 négatif ◼ ◼ ◾ ◾

#4 négatif ◼ ◼ ◾ ◾

traits descriptifs

exemples de commentaires

classe

19

Page 20: Découverte du Traitement Automatique des Langues

Apprentissage

super délicieux moyen bof

#1 positif ◾ ◾ ◼ ◼

#2 positif ◾ ◾ ◼ ◼

#3 négatif ◼ ◼ ◾ ◾

#4 négatif ◼ ◼ ◾ ◾

méthode CART, SVM, Bayes, ...

MODÈLE

20

Page 21: Découverte du Traitement Automatique des Langues

Application du modèle

POSITIF

MODÈLE

super délicieux moyen bof

◼ ◾ ◼ ◼

21

Page 22: Découverte du Traitement Automatique des Langues

Arbre de décision

¬ supersuper

délicieux ¬ délicieux

NÉGATIFPOSITIF

POSITIF22

super délicieux moyen bof

◼ ◾ ◼ ◼

Page 23: Découverte du Traitement Automatique des Langues

Classifieur linéaire

poids valeur dutrait

biaisclasse

Page 24: Découverte du Traitement Automatique des Langues

Classifieur linéaire

super délicieux moyen bof

0.7 0.8 0.3 0.15

super délicieux moyen bof w0

1.02 1.27 -0.77 -0.29 -0.17

24

POSITIF1,27signe()

poids et biais appris

décompte traits du texte à classer

Page 25: Découverte du Traitement Automatique des Langues

Modèle probabiliste

25

probabilité classe a priori

probabilité classe sachant mot i

probabilité classe sachant les n mots du texte

Page 26: Découverte du Traitement Automatique des Langues

Modèle probabiliste

26

super délicieux moyen bof A priori

POSITIF 0.7 0.8 0.3 0.15 0.6

NÉGATIF 0.2 0.1 0.6 0.65 0.4

super délicieux moyen bof

◼ ◾ ◼ ◾

Pr(POS|délicieux, bof) = Pr(POS) x Pr(délicieux|POS) x Pr(bof|POS) = 0.6 x 0.8 x 0.15 = 0.072Pr(NÉG|délicieux, bof) = 0.026

probabilités apprises

mots présents dans texte à classer

Page 27: Découverte du Traitement Automatique des Langues

Linguistique

27

Page 28: Découverte du Traitement Automatique des Langues

Linguistique

● Étudier le fonctionnement des langues○ ≠ parler plusieurs langues

● Approche descriptive○ ≠ grammaire, prescription d’un bon usage

● Description formelle et modélisation des phénomènes linguistiques

○ ≠ études littéraires, stylisitique….

28

Page 29: Découverte du Traitement Automatique des Langues

Morphologie● Études des “morphèmes” : plus petite unité de sens● Identification par supression/substitution :

○ possible ≠impossible○ “im-” = /contraire de/

● Morphèmes flexionnels :○ pluriel : impossibles○ féminin : grande○ conjugaison : partageraient

● Morphèmes dérivationnels○ impossible○ absolument

29

Page 30: Découverte du Traitement Automatique des Langues

Morphologie● Retrouver le lemme :

○ serveuses, serveurs, serveuse, serveur → serveur○ mange, manger, manges, mangeait, mangé → manger

● Retrouver la racine : ○ dérive, dérivait, dérivation, dériveur, indérivable → -dériv-

● TAL : ○ généralisation○ relations sémantiques

30

Page 31: Découverte du Traitement Automatique des Langues

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

Page 32: Découverte du Traitement Automatique des Langues

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

Page 33: Découverte du Traitement Automatique des Langues

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

Page 34: Découverte du Traitement Automatique des Langues

Sémantique distributionnelle● Distributionnalisme : les unités de la langue sont commutables

34

a fait son nid.Le

pinsonmerleoiseaumoineaupic-vert

* chien* chat

même classe

classe différente

⇒ Les unités apparaissant dans des contextes similaires sont sémantiquement proches.

Page 35: Découverte du Traitement Automatique des Langues

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

Page 36: Découverte du Traitement Automatique des Langues

Une donnée “humaine”

36

Page 37: Découverte du Traitement Automatique des Langues

37source : http://www.synomia.fr/fr/vision-et-techno/big-data-et-entreprises

Page 38: Découverte du Traitement Automatique des Langues

Pas de bijection forme ⟷ sens

38

toile

film

Page 39: Découverte du Traitement Automatique des Langues

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

Page 40: Découverte du Traitement Automatique des Langues

Paraphrase : un sens → plusieurs formesLa soupe était délicieuse.

Le potage était savoureux.

L’attente fut vraiment longue.

Nous avons attendu très longtemps.

40

Page 41: Découverte du Traitement Automatique des Langues

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

Page 42: Découverte du Traitement Automatique des Langues

Des unités continuesmesure, 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

Page 43: Découverte du Traitement Automatique des Langues

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

Page 44: Découverte du Traitement Automatique des Langues

Multilinguisme

4444

film

picture

film

movie

pellicule

photo

● boite aux lettres ↔ letter box● lampe de poche ↔ torch ● faire la bringue ↔ paint the town red

Page 45: Découverte du Traitement Automatique des Langues

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.

Page 46: Découverte du Traitement Automatique des Langues

Chaîne d’analyse linguistique

● Mots● Catégories grammaticales● Lemmes● Groupes syntaxiques● Analyse syntaxique profonde

46

Page 47: Découverte du Traitement Automatique des Langues

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

Page 48: Découverte du Traitement Automatique des Langues

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

Page 49: Découverte du Traitement Automatique des Langues

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

Page 50: Découverte du Traitement Automatique des Langues

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

Page 51: Découverte du Traitement Automatique des Langues

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

Page 52: Découverte du Traitement Automatique des Langues

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

Page 53: Découverte du Traitement Automatique des Langues

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’Iphonebaisse des venteséconomie chinoiserecul des revenus

Page 54: Découverte du Traitement Automatique des Langues

Parsing : relations longue distance

54

Le cuisinier de ce restau est particulièrement doué.

SUJETOBJET

NOM ÊTRE ADJ

cuisinier doué

Page 55: Découverte du Traitement Automatique des Langues

Parsing : relations longue distance

55

● Correction grammaticale : accords sujet-verbe

● Traduction automatique : réordonnancement

OBJETSUJET VERBE

SUJET VERBE OBJET

Page 56: Découverte du Traitement Automatique des Langues

Trois techniquesessentielles

1. représenter la “sémantique” d’un document

2. représenter le sens d’un mot3. annoter un texte

56

Page 57: Découverte du Traitement Automatique des Langues

“Sémantique” d’un document

57

Page 58: Découverte du Traitement Automatique des Langues

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

Page 59: Découverte du Traitement Automatique des Langues

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

Page 60: Découverte du Traitement Automatique des Langues

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 ◾ ◾ ◾ ◾ ◼ ◼ ◾

Page 61: Découverte du Traitement Automatique des Langues

Utilisation

61

java C# licence toulouse hausse ca web text mining

CV #1 ◾ ◾ ◾ ◾ ◼ ◼ ◾

MODÈLEtechnicien informatique

requête

offre d’emploi

Similarité

● Similarité :○ cosine

○ jaccard

Page 62: Découverte du Traitement Automatique des Langues

Le sens des mots

62

Page 63: Découverte du Traitement Automatique des Langues

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

Page 64: Découverte du Traitement Automatique des Langues

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

Page 65: Découverte du Traitement Automatique des Langues

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

Page 66: Découverte du Traitement Automatique des Langues

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 ◾ ◾ ◾ ◾ ◼ ◼

Page 67: Découverte du Traitement Automatique des Langues

Rapprocher les mots

67

● Similarité :○ cosine

○ jaccard

● Obtention d’un graphe○ extraction de cliques, etc.

Page 68: Découverte du Traitement Automatique des Langues

Annoter un texte

68

Page 69: Découverte du Traitement Automatique des Langues

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 ?

Page 70: Découverte du Traitement Automatique des Langues

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

Page 71: Découverte du Traitement Automatique des Langues

Approche empirique (apprentissage)● Méthodes s’appuyant sur le contexte : CRF, HMM● Exemples : corpus annoté… à la main !

○ bootstrapping

71

MODÈLE

10 000 phrases

Page 72: Découverte du Traitement Automatique des Langues

Approche symbolique procédurale● Codage direct

○ matching expressions régulières○ if-then-else○ transducteurs à états finis

72

Page 73: Découverte du Traitement Automatique des Langues

Approche symbolique déclarative● Description des règles linguistiques● Application par un moteur d’analyse

73

Link parser

Page 74: Découverte du Traitement Automatique des Langues

Approche hybride● Ambiguïté rattachement préposition :

74

J’ai demandé du vin au serveur. ?? demander au serveur ? vin au serveur ?

● Solution : probabilités apprises sur exemples : ○ Pr(demander | au, serveur) = 0.7○ Pr(vin | au, serveur) = 0.001

● Approches hybrides courantes : traduction, parsing, chunking, extraction entités

Page 75: Découverte du Traitement Automatique des Langues

Ressources logicielles et linguistiques

75

Page 76: Découverte du Traitement Automatique des Langues

Librairies open source

76

POS Lem Stem EN Chunk Parse Class Opin Coref Autre

Java ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ n-grammes

StanfordCoreNLP

Java ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱

NLTKPython ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱

traduction, corpus, vecteurs, distance wordNet

✱ modèles FR existant✱ pas de modèle FR

Page 77: Découverte du Traitement Automatique des Langues

Logiciels open source FR

● Porter Stemmer : diverses implémentations C++, Python, Perl, Java…● Lemmatisation : http://staffwww.dcs.shef.ac.uk/people/A.Aker/ ● Parser : MaltParser ● Tagger + Parser : Talismane● Extracteur de termes : YaTeA, Acabit● Analyseur morphologique : Flemm

77

Page 78: Découverte du Traitement Automatique des Langues

Logiciels propriétaires FR

● Univ. Stuttgart - TreeTagger ● Synapse - Cordial ● Témis/Xerox - Xelda

78

POS Tagging + Lemmatisation + Chunking :

Page 79: Découverte du Traitement Automatique des Langues

Classification & annotation ● Approches empiriques

○ Scikit-learn : vectorisation○ Weka : HMM○ Mallet : CRF, HMM, Entités nommées, Tokénisation, Vectorisation

● Approches symboliques○ UNITEX , Nooj : description et application de transducteurs, gestion m○ JFLEX : générateur d’analyseurs lexicaux (compilation)

79

Page 80: Découverte du Traitement Automatique des Langues

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

Page 81: Découverte du Traitement Automatique des Langues

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

Page 82: Découverte du Traitement Automatique des Langues

Merci pour votre attention

http://www.uima-fr.org/

82

http://www.atala.org/-Liste-LN-