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

Upload: estelle-delpech

Post on 15-Apr-2017

1.655 views

Category:

Science


0 download

TRANSCRIPT

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-