330 likes | 582 Views
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.
E N D
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é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 grosLuc 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 connaissances Mé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 connaissances Les 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 cheveux, tifs, chevelure humain, personne a aime Luc Marie
Relations sémantiques Relations permettant des classifications 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 Relations permettant des classifications X est un Y Luc X personne - humain Y X est un Y Tour 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 cheveux, tifs, chevelure Classification Héritage de propriétés humain, personne a sorte de sorte de homme, mec, gars femme, nana est un est un aime Luc Marie
WordNet Cé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 watch/ticker ammonia clock sandglass sundial ... caesium clock timer hourglass clock egg timer alarm clock/alarm chronograph stopwatch/stopo watch ... parking meter
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...
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)
Exemple Entré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 Pour chaque mot ambigu, pour chaque occurrence, déterminer le sens précis Objectifs Recherche d'informations, traduction... 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 Méthode Pour 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 mots Critè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 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
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))