Représentation des connaissances Cours 2. Réseaux sémantiques
Transcript of Représentation des connaissances Cours 2. Réseaux sémantiques
Représentation des connaissances
Cours 2. Réseaux sémantiques
Réseaux sémantiques
Systèmes de représentation des connaissances
Relations sémantiques
WordNet
Parcours d'un réseau sémantique
Levée d'ambiguïtés
Cadres ou Frames
Ambiguïtés
Quand un mot est ambigu, ses utilisations correspondent à des sens différents
Luc a perdu la première manche
La chemise a perdu sa manche gauche
La pioche a perdu son manche
Chaque utilisation correspond à un sens précis
Vienne est la capitale de l'Autriche
Vienne est près de Valence
La Vienne fait partie de la région Poitou-Charentes
La Vienne se jette dans la Loire
Il faut absolument qu'il vienne
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
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
Réseau sémantique
Comme un lexique mais
- plusieurs entrées différentes pour un mot ambigu
- une seule entrée pour plusieurs synonymes
Exemples d'entrées
1. couillon - gogo - naïf - pigeon
2. bar - loup - loup de mer - perche de mer
3. bar - bistro - brasserie - café - estaminet
Une entrée = un ensemble de synonymes (noeud du réseau)
Systèmes de représentation des
connaissancesMéthodes symboliques
On représente les concepts et propositions par des symboles formels : prédicats, formules, noeuds du réseau...
On manipule les symboles pour produire des résultats sous la forme de nouveaux symboles
Les symboles forment un système de représentation des connaissances
Méthodes non symboliques
On utilise les symboles uniquement pour l'entrée et la sortie des programmes de résolution de problèmes
Les programmes eux-mêmes utilisent des statistiques, des probabilités, des réseaux de neurones, des algorithmes génétiques...
Systèmes de représentation des
connaissancesLes connaissances et le logiciel de raisonnement
Les langages Prolog et Lisp permettent de mélanger la représentation des connaissances dans le logiciel
Représentation des connaissances
Experts du domaine
Explicite
Déclaratif
Logiciel de raisonnement
Développeurs
Ce sont des métiers différents : mieux vaut séparer
Systèmes de représentation des
connaissances
Éditer
Ajouter, supprimer, modifier des éléments
Tester
Cohérence, non-régression
Consulter
Quelles sont les propositions compatibles avec les connaissances ?
Une proposition donnée est-elle compatible ?
Réseau sémantique
Origine
Réflexion sur la mémoire associative humaine, le langage
Noeuds
Les concepts : plusieurs noeuds différents pour un mot ambigu,
un seul noeud pour plusieurs synonymes
Exemples de noeuds
1. couillon - gogo - naïf - pigeon
2. bar - loup - loup de mer - perche de mer
3. bar - bistro - brasserie - café - estaminet
Réseau sémantique
Arcs
Relations entre concepts
Exemples d'arcs
humain,
personne
cheveux,
tifs,
chevelure
a
enfant sucreaime
Réseau sémantique
Instances
Individus uniques
Classes
La plupart des concepts peuvent correspondre à plusieurs individus
humain,
personne
cheveux,
tifs,
chevelure
a
Luc Marieaime
a
Relations sémantiques
Relation instance/classe
X est un Y
Luc X
personne - humain Y
X est un Y
Tour Eiffel X
monument Y
Relations sémantiques
Relation instance/classe
Pour les personnes, certains lieux... les instances ont des noms
Luc la Tour Eiffel
Pour d'autres types d'entités, les instances n'ont pas de noms
les cheveux de Luc
Pour certains concepts, il n'y a pas d'instances
bleu
rapide
air
Relations sémantiques
Relations permettant des classifications : entre classes
X est une sorte de Y
bar - loup - loup de mer - perche de mer X
poisson - poiscaille Y
animal - bête Z
Y est une sorte de X
bar - bistro - brasserie - café - estaminet X
bar à vins Y
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
Relations sémantiques
contraire
gagnant - vainqueur
perdant
Réseau sémantique
Classification
Héritage de propriétés
humain,
personne
cheveux,
tifs,
chevelurea
Luc Marieaime
homme,
mec, garsfemme,
nana
est un est un
sorte desorte de
WordNetCélèbre réseau sémantique
Noeuds : « synsets »
1. couillon - gogo - naïf - pigeon
2. bar - loup - loup de mer - perche de mer
3. bar - bistro - brasserie - café - estaminet
Une 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é)
Définitions informelles
Any of various mostly cold-blooded aquatic vertebrates usually having scales and breathing through gills
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"
WordNet
Principales relations entre synsets
sorte de V/V exhale/breathe; inhale/breathe
sorte de N/N cat/feline
est un N/N Eiffel Tower/tower
partie N/N France/Europe
membre N/N France/European Union
similaire A/A dying/moribund
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
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
Hyperonymes
timepiece/timekeeper/horologe
atomic clock
clock
sandglass
sundialtimer
watch/ticker
ammonia clock
caesium clock
alarm clock/alarmegg timer
hourglass
chronograph
parking meter
stopwatch/stopo watch
...
...
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
Autres WordNets
EuroWordNet
Français (23 000 synsets), anglais, néerlandais, italien, espagnol, allemand, tchèque, estonien
Liens entre langues et avec l'anglais
BalkaNet
Tchèque, roumain, grec, turc, bulgare, serbe
Ontologies
Réseaux sémantiques plus structurés
Les noeuds ne sont pas forcément des synsets, ex. AlcoholicBeverage
Contiennent des connaissances formalisées, ex. toute boisson est un liquide, tout ce que quelqu'un boit est une boisson...
Voisins dans 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)
ExempleEntrée : sandglass
synset.assoc(1) = egg timer, hourglass
synset.assoc(2) = timepiece/timekeeper/horologe
synset.assoc(3) = atomic clock, clock, sundial, timer, watch/ticker
synset.assoc(4) = ammonia clock, caesium clock, alarm clock/alarm,chronograph, parking meter, stopwatch/stopo watch...
synset.assocLemmas(1) = egg timer, hourglass
synset.assocLemmas(2) = timepiece, timekeeper, horologe
synset.assocLemmas(3) = atomic clock, clock, sundial, timer, watch, ticker
synset.assocLemmas(4) = ammonia clock, caesium clock, alarm clock, alarm, chronograph, parking meter, stopwatch, stopo watch...
Levée d'ambiguïtés
Problème
Objets ambigus : des occurrences de mots dans des documents
Pour chaque occurrence, déterminer le sens précis et le représenter par un objet informatique
Objectifs
Recherche d'informations, traduction...
Méthodes
On utilise le contexte de l'occurrence (mots voisins dans le document) : cooccurrents
Taille du contexte : nombre de mots, phrase, paragraphe...
Levée d'ambiguïtés par réseau
Chaque occurrence a des voisins dans le document : cooccurrents
Chaque synset a des voisins dans le réseau : lemmes membres et lemmes associés
Similarité entre une occurrence et un synset
On compare l'ensemble des cooccurrents et l'ensemble des lemmes associés
Le sens précis sera représenté par un synset
Hypothèse
Beaucoup de voisins d'un mot sont des hyponymes, des hyperonymes ou des coordonnés
Levée d'ambiguïtés avec WordNet
Entré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
Levée d'ambiguïtés sans réseau
Chaque occurrence a des voisins dans le document : cooccurrents
Similarité entre deux occurrences
On compare les ensembles de cooccurrents
Le sens précis sera représenté par un ensemble de cooccurrents
Hypothèse
Deux occurrences ont les mêmes voisins si et seulement si ils sont employés dans le même sens
Cooccurrence du second ordre
On utilise un corpus de référence qui peut être lemmatisé
Cooccurrence
Cooccurrence (du premier ordre)
Deux mots sont cooccurrents (du premier ordre) s'ils sont
voisins
Exemple : vendre/produit
Cooccurrence du second ordre
Deux mots sont cooccurrents du second ordre s'ils ont les
mêmes voisins
Exemple : vendre/acheter
Voisins communs : produit, prix, fournisseur, client...
Levée d'ambiguïtés sans réseau
Similarité entre deux occurrences
On compare les ensembles de cooccurrents
Chaque ensemble de cooccurrents est un vecteur dans un espace multidimensionnel
Coordonnées des vecteurs :
- nombre d'occurrences dans le contexte
- ou 0 ou 1
Similarité entre deux vecteurs
Produit scalaire : Σaibi nul si les vecteurs n'ont jamais de coordonnées non nulles dans une même dimension
Cosinus de l'angle : (Σaibi)/(║a║║b║)
Levée d'ambiguïtés sans réseau
Apprentissage non supervisé
Corpus d'apprentissage
Regroupement (clustering) de vecteurs dans un espace
On regroupe les vecteurs les plus similaires
Pour chaque groupe, un vecteur moyen
Apprentissage supervisé
On marque les sens des occurrences de mots ambigus
Pour chaque sens, un vecteur moyen
Levée d'ambiguïtés
Similarité entre le vecteur contexte et chaque vecteur moyen
Cadres ou Frames
Origine
Marvin Minsky, années 1970
Un cadre représente un concept
Il a un nom et des attributs ou propriétés
Chaque attribut est décrit par un nom et des paires facette/valeur
Luc
(est-un (valeur personne))
(s'appelle (valeur Luc))
(fils-de (valeur Jean))
Cadres ou Frames
Un cadre représente une personne ou un concept concret ou abstrait
Facettes
valeur, défaut
types : doit-être, possibilité, liste-de, intervalle...
attachements procéduraux : si-besoin, si-ajout, si-modif, si-
supprime
Personne
(âge (doit-être entier) (si-besoin (compter ...)))
Planète
(a-atmosphère (doit-être booléen) (défaut faux))
FrameNet
Cadres
Relations entre cadres
1 000
Entrées lexicales
Relations avec les cadres
12 000
Occurrences
Tirées de textes préexistants et annotées
150 000 phrases
Projet de l'université de Berkeley