Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique...

29
Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence

Transcript of Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique...

Page 1: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Cours 10

Réseaux sémantiques

Relations sémantiques

WordNet

Parcours d'un réseau sémantique

Levée d'ambiguïtés

Cooccurrence

Page 2: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

AmbiguïtésQuand un mot est ambigu, ses utilisations correspondent à des sens

différentsLuc a perdu la première mancheLa chemise a perdu sa manche gaucheLa pioche a perdu son mancheChaque utilisation correspond à un sens précisVienne est la capitale de l'AutricheVienne est près de ValenceLa Vienne fait partie de la région Poitou-CharentesLa Vienne se jette dans la LoireIl faut absolument qu'il vienne

Page 3: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Synonymes

C'est un gros avion C'est un grand avion

C'est un gros achat ?C'est un grand achat

Luc est trop gros Luc est trop grand

Critère

Possibilité de remplacer un mot par l'autre dans au moins un contexte sans "trop" changer le sens

Page 4: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

GranularitéLes étiquettes lexicales (catégorie grammaticale, genre, nombre)

permettent déjà de distinguer 2 des 3 sens

Luc a perdu la première manche N:fs

La chemise a perdu sa manche gauche N:fs

La pioche a perdu son manche N:ms

mais cela ne distingue pas les 2 premiers qui sont pourtant très différents

La granularité n'est pas suffisante

Page 5: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Réseau sémantiqueComme un lexique mais- plusieurs entrées différentes pour un mot ambigu- une seule entrée pour plusieurs synonymes

Exemples d'entrées1. couillon - gogo - naïf - pigeon2. bar - loup - loup de mer - perche de mer3. bar - bistro - brasserie - café - estaminetUne entrée = un ensemble de synonymes (synset)Membres d'un synset- lemmes et non formes fléchies- mots et non tokens (loup de mer : mot composé)

Page 6: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Relations sémantiques

Relations entre synsets

X est une sorte de Ybar - loup - loup de mer - perche de mer X

poisson - poiscaille Yanimal - bête Z

Y est une sorte de Xbar - bistro - brasserie - café - estaminet X

bar à vins Y

Page 7: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Relations sémantiques

X est une partie de Y

mets - plat

repas

Y est une partie de X

poiscaille - poisson

écaille

nageoire

ligne latérale

ouïe

Page 8: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Relations sémantiques

contraire

gagnant - vainqueur

perdant

Page 9: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

WordNet

Anglais

Version 3.0 : 120 000 synsets

Miller, 1995 - Fellbaum, 1998

Le réseau sémantique le plus utilisé au monde

Développement à partir de 1985 - Première version 1991

4 sous-réseaux : noms, verbes, adjectifs, adverbes

La granularité de WordNet est beaucoup plus fine, parfois trop

Ex. : 4 sens pour tribe "tribu"

Page 10: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

WordNet

Principales relations entre synsets

est un V/V exhale/breathe; inhale/breathe

est un N/N cat/feline

instance N/N Eiffel Tower/tower

partie N/N France/Europe

membre N/N France/European Union

similaire A/A dying/moribund

Page 11: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

WordNet

Principales relations entre lemmes

contraire A/A good/bad

appartenance A/N academic/academia

appartenance Adv/A boastfully/boastful

dérivé N/V killing/kill

dérivé A/N dark/darkness

Page 12: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Hyperonymes

Le synset de breathe est un hyperonyme de ceux de exhale et inhale

Le synset de feline est un hyperonyme de celui de cat

Un synset a souvent un seul synset hyperonyme, mais peut en avoir plusieurs

Exemple

eat "manger" a deux hyperonymes :

eat "prendre un repas" (contestable)

et consume/ingest/take in/take/have

Le synset de cat est un hyponyme de celui de feline

Page 13: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Hyperonymes

timepiece/timekeeper/horologe

atomic clock

clock

sandglasssundial

timer

watch/ticker

ammonia clock

caesium clock

alarm clock/alarmegg timer

hourglass

chronograph

parking meter

stopwatch/stopo watch

...

...

Page 14: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Coordonnés

Coordonnés d'un synset : les synsets qui ont un même hyperonyme

Coordonnés de watch/ticker

atomic clock

clock

sandglass

sundial

timer

Les coordonnés d'un synset ne sont pas directement accessibles par les fonctions NLTK d'accès à WordNet

Rechercher les hyperonymes puis les hyponymes

Page 15: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Autres WordNets

EuroWordNetFrançais (23 000 synsets), anglais, néerlandais, italien, espagnol,

allemand, tchèque, estonienLiens entre langues et avec l'anglaisBalkaNetTchèque, roumain, grec, turc, bulgare, serbeOntologiesRéseaux sémantiques plus structurésLes noeuds ne sont pas forcément des synsets, ex.

AlcoholicBeverageContiennent des connaissances formalisées, ex. toute boisson est un

liquide, tout ce que quelqu'un boit est une boisson...

Page 16: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Parcours d'un réseau sémantique

Entrée : un synset

Sorties : des ensembles de lemmes "associés" au synset d'entrée

synset.assoc(1) = les hyponymes de synset

synset.assoc(2) = les hyperonymes de synset

synset.assoc(3) = les coordonnés de synset

synset.assoc(4) = les hyponymes des éléments de synset.assoc(3)

pour i de 1 à 4

synset.assocLemmas(i) = union des éléments de synset.assoc(i)

Page 17: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

ExempleEntrée : sandglass

synset.assoc(1) = egg timer, hourglasssynset.assoc(2) = timepiece/timekeeper/horologesynset.assoc(3) = atomic clock, clock, sundial, timer, watch/tickersynset.assoc(4) = ammonia clock, caesium clock, alarm clock/alarm,

chronograph, parking meter, stopwatch/stopo watch...

synset.assocLemmas(1) = egg timer, hourglasssynset.assocLemmas(2) = timepiece, timekeeper, horologesynset.assocLemmas(3) = atomic clock, clock, sundial, timer, watch,

tickersynset.assocLemmas(4) = ammonia clock, caesium clock, alarm clock,

alarm, chronograph, parking meter, stopwatch, stopo watch...

Page 18: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Levée d'ambiguïtés

Pour chaque mot ambigu, pour chaque occurrence, déterminer le sens précis

ObjectifsRecherche d'informations, traduction...Le sens précis sera représenté par un synsetHypothèseBeaucoup de voisins d'un mot sont des hyponymes, des

hyperonymes ou des coordonnésMéthodePour chaque synset contenant le mot ambigu, compter les

hyponymes, hyperonymes et coordonnés dans le voisinage

Page 19: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Cooccurrence

Cooccurrence du premier ordre

Deux mots sont cooccurrents du premier ordre s'ils sont souvent voisins

Exemple : vendre/produit

Cooccurrence du second ordre

Deux mots sont cooccurrents du second ordre s'ils ont souvent les mêmes voisins

Exemple : vendre/acheter

Voisins communs : produit, prix, fournisseur, client...

Page 20: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Cooccurrence du premier ordre

On utilise un corpus de référence qui peut être lemmatisé

Deux mots m1 et m2

On calcule nb_occ(m1), nb_occ(m2)

nb_occ(m1, m2) : nombre d'occurrences de m1 et m2 dans le même paragraphe ou dans le même document ou à une distance inférieure à un seuil (5 à 10 tokens)

nb_occ(m1, m2)/nb_occ(m1) x nb_occ(m2)

valeur comprise entre 0 et 1

Plus m1 et m2 apparaissent souvent ensemble, plus cette valeur se rapproche de 1

Page 21: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Cooccurrence du second ordre

On utilise un corpus de référence qui peut être lemmatisé

Deux mots m1 et m2

On calcule voisins(m1) et voisins(m2), sacs de motsCritères :

- paragraphe ou distance

- différents de m1 ou m2

- catégorie nom ou pertinence D/d(v)On calcule la similarité entre les deux vecteurs (cosinus de l'angle)

Plus m1 et m2 apparaissent avec les mêmes voisins, plus cette valeur est élevée

Page 22: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Levée d'ambiguïtés avec WordNetEntrée : un texte étiqueté et lemmatisé ; WordNet ; un corpus de référence

Sortie : pour chaque mot ambigu du texte, un synset

pour chaque mot du texte

si mot appartient à plusieurs synsets

sélectionner des voisins v de mot dans le texte (critères :

- paragraphe ou distance

- différents de mot

- catégorie nom ou pertinence D/d(v))

pour chaque synset

synset.assoc = union synset.assoc(i) pour i de 1 à 4

synset.score = nombre de v dans synset.assoc

mot.synset = le synset dont synset.score est maximal

Page 23: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Apprentissage supervisé de la levée d'ambiguïtés

On utilise un corpus d'apprentissage dans lequel on a indiqué à la main pour chaque mot ambigu le synset pertinent

Après l'apprentissage, le système appliqué à un nouveau texte choisit pour chaque mot ambigu un des synsets correspondants

Informations utilisées par le système pour choisir

- les nombres d'occurrences de certains mots dans le voisinage (les mots les plus fréquents et pertinents proches du mot ambigu dans le corpus)

- le lemme et la catégorie grammaticale de 2 mots avant et après le mot ambigu

Pour chaque synset possible s, on recueille les informations o ci-dessus

P(s|o) : probabilité que le synset pertinent soit s connaissant o

Page 24: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Rappel : la formule de Bayes

P(s|o)valeur : entre 0 et 1

argmaxsS P(s|o)la valeur de sS pour laquelle P(s|o) est maximal

P(s|o) P(o) = P(o|s) P(s)formule de Bayes

argmaxsS P(s|o) = argmaxsS P(o|s) P(s) /P(o)

= argmaxsS P(o|s) P(s)car P(o) ne dépend pas de s

Page 25: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Application

o est un vecteur à n composantes o1 ... on

argmaxsS P(s|o) = argmaxsS P(o|s) P(s)

argmaxsS P(s) 1inP(oi|s)

On estime ces valeurs à l'aide du corpus d'apprentissage :P(s) = nb_occ(s, mot)/nb_occ(mot)nb_occ(s, mot) : nombre d'occurrences de mot avec le sens s

P(oi|s) = nb_occ(oi, s)/nb_occ(s)

nb_occ(oi, s) : nombre d'occurrences du sens s où la ie composante du vecteur vaut oi

Page 26: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Apprentissage non supervisé

On n'utilise pas de réseau sémantique

Apprentissage

On associe à chaque occurrence du mot dans un corpus d'apprentissage un vecteur qui représente ses voisins (critères :

- paragraphe ou distance

- différents du mot

- catégorie nom ou pertinence D/d(v))

On met chaque vecteur dans un groupe-singleton

Itérativement, on fusionne les deux groupes les plus proches si leur similarité (cosinus de l'angle entre les vecteurs) est supérieure à un seuil

On s'arrête quand toutes les similarités sont inférieures au seuil

Page 27: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Apprentissage non supervisé

Chaque groupe représente un sens

Levée d'ambiguïtés

Pour une occurrence du mot dans un nouveau texte

- on représente ses voisins par un vecteur (comme pour l'apprentissage)

- on compare le vecteur à chacun des groupes

On choisit le sens correspondant au groupe le plus similaire au vecteur

Page 28: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Apprentissage non supervisé et WordNet

Graphe de similarité

Noeuds : les mots

Arcs : relient les paires de mots dont la similarité (cooccurrence du second ordre dans le corpus de référence) est supérieure à un seuil

Les arcs sont étiquetés par ces similarités

Classes dans le texte

Sélectionner des mots du texte à traiter (catégorie nom, ou fréquence, ou pertinence)

Relier ces mots par les mêmes arcs que dans le graphe de similarité

Chaque composante connexe du graphe obtenu définit un groupe

Page 29: Cours 10 Réseaux sémantiques Relations sémantiques WordNet Parcours d'un réseau sémantique Levée d'ambiguïtés Cooccurrence.

Apprentissage non supervisé et WordNet

Comparaison à WordNet

Pour chaque groupe, sélectionner les synsets dont la similarité avec la classe (similarité des vecteurs) est inférieure à un seuil

Si un seul synset est sélectionné, on associe au synset tous les mots qui appartiennent à la fois au groupe et au synset