représentation des connaissances cours 2. réseaux sémantiques réseaux sémantiques systèmes de...
TRANSCRIPT
Représentation des connaissancesCours 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é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
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é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 (noeud du réseau)
Systèmes de représentation des connaissances
Méthodes symboliquesOn 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 symbolesLes symboles forment un système de représentation des connaissances
Méthodes non symboliquesOn utilise les symboles uniquement pour l'entrée et la sortie des
programmes de résolution de problèmesLes 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 connaissances
Les connaissances et le logiciel de raisonnementLes langages Prolog et Lisp permettent de mélanger la
représentation des connaissances dans le logiciel
Représentation des connaissances Experts du domaineExpliciteDé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
TesterCohérence, non-régression
ConsulterQuelles sont les propositions compatibles avec les connaissances ?Une proposition donnée est-elle compatible ?
Réseau sémantiqueOrigineRéflexion sur la mémoire associative humaine, le langage
NoeudsLes concepts : plusieurs noeuds différents pour un mot ambigu,un seul noeud pour plusieurs synonymes
Exemples de noeuds1. couillon - gogo - naïf - pigeon2. bar - loup - loup de mer - perche de mer3. bar - bistro - brasserie - café - estaminet
Réseau sémantique
ArcsRelations entre concepts
Exemples d'arcs
humain, personne
cheveux, tifs,
chevelure
a
Luc Marieaime
Relations sémantiques
Relations permettant des classifications
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
Relations sémantiques
Relations permettant des classifications
X est un YLuc X
personne - humain Y
X est un YTour Eiffel X
monument 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, gars
femme, nana
est un est un
sorte de sorte de
WordNetCélèbre réseau sémantiqueNoeuds : « synsets »1. 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é)Définitions informellesAny 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
sandglasssundial
timer
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
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...
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)
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...
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
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...
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)
2 . nb_occ(m1, m2)/(nb_occ(m1) + nb_occ(m2))
valeur comprise entre 0 et 1
Plus m1 et m2 apparaissent souvent ensemble, plus cette valeur se rapproche de 1
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(m)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
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
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))