570 likes | 755 Views
Sémantique lexicale et TALN Vecteur conceptuels et apprentissage. Mathieu Lafourcade LIRMM - France www.lirmm.fr/~lafourca. Objectifs. Analyse sémantique Désambiguïsation de Sens Indexation de Textes en RI Transfert Lexical en TA Modèle de Vecteurs Conceptuels (MVC) Réminiscences
E N D
Sémantique lexicale et TALN Vecteur conceptuelset apprentissage Mathieu Lafourcade LIRMM - France www.lirmm.fr/~lafourca
Objectifs Analyse sémantique Désambiguïsation de Sens Indexation de Textes en RI Transfert Lexical en TA Modèle de Vecteurs Conceptuels (MVC) Réminiscences Modèles vectoriels lexicaux (Salton) Modèles conceptuels (Sowa) Concepts (et non des termes) Ensemble E choisi a priori (petit) / par émergence (grand) Concepts interdépendants Propagation sur arbre d’analyse morpho-syntaxique (pas d’analyse de surface)
Vecteurs conceptuels Une idée = combinaison linéaire de concepts = un vecteur L’espace des idées = espace vectoriel (que l’on ne connaît pas a priori - dont on se moque a posteriori--> pas de réduction de dimension) Un concept = une idée = un vecteur = combinaison de lui-même + voisinage Comment choisir les concepts ?
Vecteurs conceptuels Ensemble de k concepts Thesaurus Larousse = 873 concepts --> Un vecteur = 873 uplet Thesaurus Rodget = 1047 concepts --> Un vecteur = 1047 uplet EDR (Japon) --> 40000 concepts Espace des sens = espace vectoriel + ensemble de vecteurs
Vecteurs conceptuels Exemple : ‘chat’ Noyau dont l’indexation est manuelle c:mammifère, c:caresse <… mammifère … caresse …> <… 0,8 … 0,8 … > Augmenté c: mammifère, c:caresse, c:zoologie, c:amour … <… zoologie … mammifère… caresse … amour …> <… 0,5 … 0,75 … 0,75 … 0,5 … > itération --> affinage des vecteurs selon le voisinage Vecteurs sans aucun zéro --> danger ! Avoir des vecteurs trop plats
Espace vectoriel Les concepts Ne sont pas indépendants Espace des sens = Espace générateur d’un espace V de dim k’ (inconnue) = k’ <= k Suffisant Position relative des points V V’
Expérience TH873 Thesaurus Larousse H : hiérarchie des concepts — K concepts feuilles (K = 873) C0 = racine , c1, c2 , c3, c4 = feuilles V(Ci) : <a1, …, ai, … , a873> aj = 1/ (2 ^ Dum(H, i, j)) Dum= distance ultramétrique 1/16 1/16 1/4 1 1/4 1/4 1/64 1/64 4 2 6
Vecteurs conceptuels TH873 Conceptc4:PAIX c4:Paix C3:‘Relations de conflit’ C2:’Relation hiérarchiques’ C1:‘La Société’ C1:‘Le Monde’ , C1:‘L’Homme’
échange profit finance
Distance entre VCangulaire (ou encore dite de magnitude) Distance Angulaire DA(x, y) = angle (x, y) 0 <= DA(x, y) <= si 0 alors colinéaire - même idée si /2 alors rien en commun si alors DA(x, -x) avec -x (anti-idée de x) x’ x y
Distance entre VCangulaire (ou encore dite de magnitude) DA(x, x) = 0 DA(x, y) = DA(y, x) DA(x, y) + DA(y, z) DA(x, z) DA(0, 0) = 0 and DA(x, 0) = /2 par def. DA(x, y) = DA(x, y) avec . 0 DA(x, y) = - DA(x, y) avec .< 0 DA(x+x, x+y) = DA(x, x+y) DA(x, y)
Conceptual vector distance Example DA(sparrow, sparrow) = 0 DA(sparrow, passerine) = 0.4 DA(sparrow, bird) = 0.7 DA(sparrow, train) = 1.14 DA(sparrow, insect) = 0.62 sparrow = kind of insectivorous passerine …
Distance entre VC Exemple DA(moineau, moineau) = 0 DA(moineau, passereau) = 0.4 DA(moineau, oiseau) = 0.7 DA(moineau, train) = 1.14 DA(moineau, insecte) = 0.62 moineau = espèce de passereau insectivore …
définitions du noyau (clous) - vecteurs invariants définitions de dictionnaires - vecteurs modifiés lors des révisions plante.1K scarabéeD plante.1D insecteK plante.2D insecteD plante.2K T
Lexique de vecteurs conceptuels Ensemble de (terme, vecteur) = (w, )* Terme monosème ? Terme monodéfini --> 1 sens (acception) --> 1 vecteur (w, ) moineau
Lexique de vecteurs conceptuelsConstruction pour les polysèmes • bâtiment • exploitation • fermage • élément de charpente Terme polysème ? Terme polydéfini --> n sens (acceptions) --> n vecteurs {(w, ), (w.1, 1) … (w.n, n) } Ferme (NF)
Lexique de vecteurs conceptuels Construction pour les polysèmes (w) = (w.i) ferme • bâtiment (agricole) • exploitation (agricole) • fermage • élément de charpente Danger : les sens minoritaires sont trop affaiblis
1:DA(3,4) & (3+2) 3: DA(4,5) & (4+5) 2:(ferme4) 5: DA(6,7)& (6+7) 4:(ferme3) 6:(ferme1) 7:(ferme2) Lexique de vecteurs conceptuels Construction pour les polysèmes (w) = classification(w.i) aggregation ascendante binaire ferme
1:D(3,4), (3+2) 3:D(4,5), (4+5) 2:4 4:3 5:D(6,7), (6+7) 6:1 7:2 Portée du champ sémantique (w) = LS(w) = LSt((w)) LSt((w)) = 1 si est une feuille LSt((w)) = (LS(1) + LS(2)) /(2-sin2(D((w))) sinon (w) = t((w)) t((w)) = (w) si est une feuille t((w)) = LS(1)t(1) + LS(2)t(2) sinon Permet de gérer les définitions multiples (redondantes)
1:D(3,4) & (3+2) 3:D(4,5) & (4+5) 2:(ferme4) 5:D(6,7)& (6+7) 4:(ferme3) 6:(ferme1) 7:(ferme2) Pondération / Sélection Descente récursive sur t(w) comme arbre de décision DA(’, i) Arrêt sur une feuille Arrêt sur un nœud interne
Stats sur les vecteurs Norm () [0 , 1] * C (215=32768) Intensity () Norme / C Généralement = 1 (sauf pour les fonctions syntaxiques) Écart type (ET) ET2 = variance variance = 1/n * (xi - moy)2
Stats sur les vecteurs Coefficient de variation (CV) CV = ET / moy Pas d’unité - indépendant de la norme Force conceptuelle (pour les concepts sous l’horizon) si A Hyperonyme B CV(A) > CV(B) (on a pas ) vector « jus de fruit » (N) --> Moy = 527, ET = 973 CV = 1.88 vector « boisson » (N) --> Moy = 443, ET = 1014 CV = 2.28 Pour les concepts au-dessus de l’horizon, si A Hyperonyme B CV(A) < CV(B) (on a pas )
Opérations sur les vecteurs Somme V = X Y vi = xi + yi Element neutre : 0 X 0 = X Généralisation à n termes : V = Vi Normalisation de la somme : vi /|V|* c Sorte de moyenne - barycentre - centroïde
Opérations sur les vecteurs Produit terme à terme normé (pttn) V = X Y --> vi = xi * yi Element neutre : 1 X 1 = X Généralisation à n termes V = Vi Intersection
Opérations sur les vecteurs Amplification V = X ^ n --> vi = signe(vi) * |vi|^ n V = V ^ 1/2 et n V = V ^ 1/n V V = V ^ 2 si vi 0 Normalisation du ptt àn termes V = nVi
Opérations sur les vecteurs Contextualisation : somme + ppt (non normée) (A, B) = A(AB) Utilisée pour le calcul (simple) de vecteurs requête en RI (A, A) = A(AA) = AA = A (A, 0) = A(A0) = A0 = A (A, 1) = A(A1) = AA = A Ex : (frégate, frégate) bof ! (frégate, oiseau) ah oui !
Opérations sur les vecteurs Soustraction V = X - Y --> vi = xi- yi Soustraction pointée V = X Y --> vi = max (xi- yi, 0) Complémentaire V = C(X) --> vi = (1 - xi/c) * c … Opérations ensemblistes
Autres distancesDistance d’intensité Intensité (norme) du ptt non normé 0 ( (X Y)) 1 si |x| = |y| = 1 DI(X, Y) = acos(( X Y)) DI(X, X) = 0 et DI(X, 0) = /2 DI(moineau, moineau) = 0 (DA = 0) DI(moineau, passereau) = 0.25 (DA = 0.4) DI(moineau, oiseau) = 0.58 (DA = 0.7) DI(moineau, train) = 0.89 (DA = 1.14) DI(moineau, insecte) = 0.50 (DA = 0.62)
Autres distancesDistance de profil et généralisation Profil Dp : Comparaison de la forme des vecteurs (sans tenir compte de la magnitude) Généralisation DG : magnitude + profil V ’ V Dp(V,V ’) = 0 DG(X,Y) = DA(X,Y) + ( -1)DP(X,Y)
Fonction Lexicale vectorielleSynonymie relative SynR(A, B, C) — C est l’axe de projection Rappel : (A, B) = A(AB) SynR(A, B, C) = DA((A, C) , (B, C)) DA(charbon,nuit) = 0.9 SynR(charbon, nuit, couleur) = 0.4 SynR(charbon, nuit, noir) = 0.35
Synonymie relative SynR(A, B, C) = SynR(B, A, C) SynR(A, A, C) = DA(A(AC), A(AC)) = 0 SynR(A, B, 0) = DA(A, B) SynR(A, B, 1) = DA(A, B) SynR(A, 0, C) = /2 SynR(A, B, A) = DA(A(AA), B(BA)) = DA(A, B(BA))
Analyse « sémantique » Propagation de vecteurs sur l’arbre (d’analyse morpho-syntaxique — Application SYGMART — J. Chauché) P GN GVA Les termites GV rapidement GNP attaquent les fermes GN du toit Les termites attaquent les fermes du toit rapidement 68
Analyse sémantique P GN GVA Les termites GV rapidement GNP attaquent les fermes GN agresser commencer critiquer du toit Exploitation agricole bâtiment Élément de charpente (d’une) maison Terme d ’anatomie au-dessus
Analyse sémantique Initialisation les vecteurs sont attachés aux cerises puis propagés aux termes P GN GVA Les termites GV rapidement 1 5 GNP attaquent 2 les fermes GN 3 du toit poids 4 1 1 1 1 1 1 1 1 1
Analyse sémantique Propagation vers le haut (montée) (Ni ) = (Ni 1) … (Ni k) P GN GVA Les termites GV rapidement GNP attaquent les fermes GN du toit
Analyse sémantique Descente = contextualisation faible (Ni j) = (Ni j, Ni ) = (Ni j) ((Ni j) (Ni)) P GN GVA Les termites GV rapidement • 1’ • 5’ GNP attaquent • 2’ les fermes GN • 3’ du toit 0.1 0.8 0.1 • 4’ Contextualisation forte 0.5 0.3 0.2 0.2 0.1 0.7
Analyse sémantique Pondération/sélection de sens P GN GVA GV Les termites rapidement GNP attaquent les fermes GN commencer attaquer critiquer du toit exploitation bâtiment élément de charpente d ’une maison anatomie au-dessus
Schémas syntaxiques Où est la tête (gouverneur) ? S: NP(ART,N) (NP) = V(N) S: NP1(NP2,N) (NP1) = (NP1) (N) 0<<1 (bateau à voile) = (bateau) 1/2 (voile) (voile de bateau) = (voile) 1/2 (bateau)
Iteration et convergence convergence? (ou nb de cycles max) Local D(i, i+1) pour racine Global D(i, i+1) pour tout Local : Bons résultats et rapide Global : Meilleurs résultats mais coûteux et converge rarement (oscillations)
Construction et affinage de la base de VC Dico à usage humain (multisources) Définitions Base de Vecteurs Conceptuels SYGMART Analyse morphosyntaxique (Sygmart)
Construction et affinage de la base de VC Noyau manuel (nécessaire pour l’amorçage) Analyses de définitions (dico, encyclo, etc. en ligne et hors ligne) Boucle infinie --> apprentissage permanent Supervision --> ajustements manuels(nouvelles def, plus précises, moins ambiguës, etc.) synonymes Mots inconnus des définitions itérations noyau
charançon : n (un) petit insecte qui détruit les grains . PH VPH NP REL PUNCT V=VREL (VREL ,VPH ) V=V1 2V2 ART VP ANP PR GN ADJ N V ART N GOV un petit insecte qui détruit les grains . V1 V3 V4 V2= V2,1 V2.2
charançon : n (un) petit insecte qui détruit le grain . PH VPH NP REL PUNCT V=VREL (VREL ,VPH ) Analyse partielle V=V1 2V2 ART VP ANP PR GN ADJ N V ART N GOV un petit insecte qui détruit les grains . Mot inconnu V1 V3 V4 = 0 V2= V2,1 V2.2
Mot inconnu V4 = 0
ÉmergenceExpérience EMER873 • Pas de thésaurus - pas de noyau • On fixe juste la dimension de E (la taille des vecteurs) Mot inconnu On tire le vecteur au hasard V4 = 0 On révisera au moment de l’apprentissage de ce mot Amplification pour éviter une convergence globale vers le vecteur 1 (effet bouillie)
T Espace T Maille fixe - densité lexicale variable
E Espace E Maille variable - densité lexicale plus ou moins constante
E Points de test 1/2 Les n vecteurs booléens (dans TH873 et EMER873 on a n = 873) Écart type de la densité lexicale (test 1) ET(DL(E)) < ET(DL(T))
E Points de test 2/2 Les p premiers termes en fréquence d’usage (dans TH873 et EMER873 on a p = 1000) Écart type de la densité lexicale (test 2) ET(DL(E)) < ET(DL(T))