• Aucun résultat trouvé

Chapitre II Gestion des documents multimédia : Etat de l’art

III.3. Démarche de classification des documents

III.3.2. Comparaison de structures

Nous considérons une structure (générique ou spécifique, logique ou de métadonnées) comme une arborescence ordonnée et étiquetée [Mbarki M. et al., 2005a] dans laquelle chaque nœud représente :

- soit un élément de la structure logique ; - soit un composant de cet élément ;

- soit une métadonnée qui décrit un composant.

Il s’agit d’une arborescence dans la mesure où les arcs reliant les différents nœuds sont orientés et où elle possède un élément racine relié à tous les autres éléments par un chemin unique dont il est l’origine. Cette arborescence est ordonnée car il existe une relation d’ordre entre les éléments fils d’un même élément père. Elle est étiquetée car tout élément possède un label (étiquette). La comparaison de deux structures consiste ainsi à comparer leurs arborescences respectives.

Cette relation d’ordre est primordiale au niveau de l’organisation des éléments et des composants, afin de respecter l’organisation structurelle choisie par l’auteur du document. Contrairement aux travaux de la littérature ([Cruz I.F. et al. 1998] et [Bertino E. et al. 2004] par exemple), nous pensons donc qu’il est important, au niveau de la comparaison des structures, de tenir compte de l’ordre des éléments et des composants en largeur et en profondeur.

En revanche, au niveau des attributs et des métadonnées, le non respect n’est pas pénalisant car ne modifie pas la sémantique du contenu des balises.

De plus, dans notre approche, deux structures sémantiques différentes peuvent partager : - la même structure logique ;

- une ou plusieurs structures de métadonnées.

Pour gérer ce partage de structures et conformément à l’organisation dichotomique de notre modèle, nous comparons séparément les structures logiques et les structures de métadonnées. Ceci revient à construire une classification d’une part des structures logiques, d’autre part des structures des métadonnées. Dans ce qui suit, le processus de comparaison est présenté indépendamment de la nature de la structure.

III.3.2.1. Notions de base

Soient les concepts utilisés dans le processus de comparaison : T = (V, E) une arborescence ordonnée et étiquetée,

avec : V = {υ1, …, υn} l’ensemble des nœuds de T

E = {e1, … , em} l’ensemble des arcs de T ;

νo est un nœud unique n’appartenant à aucune arborescence appelé nœud vide ;

T[υ] est la sous-arborescence de T enracinée au nœud υ de T. C’est l’arborescence de racine υ, que nous obtenons en effaçant l’arc qui pointe sur le nœud υ dans T et en conservant l’arbre connexe issu de υ ;

fils[υ] est la liste des fils du nœud υ. Le nombre de fils du nœud υ est noté nυ ;

anc[υ] est l’ensemble des ancêtres du nœud υ dans T, υ non inclus. Cette fonction sera utilisée notamment dans la formule 2 (cf. Page 116) ;

chm[υ] est la liste des nœuds qui composent le chemin allant de la racine r vers υ de T, υ inclus (chm[υ] = {υ}+anc[υ]),

des[υ] est l’ensemble des descendants du nœud υ dans T. Ce sont des nœuds ayant υ comme ancêtre, υ non inclus ;

pere[υ] est un nœud représentant le père du nœud υ ;

etiq[υ] est l’étiquette associée au nœud υ. Les étiquettes sont les noms des balises ; card(X) : le nombre de nœuds appartenant à X. X est une arborescence.

La phase de comparaison proposée est décomposée en cinq étapes schématisées dans la figure III.27. L’algorithme détaillant l’enchaînement de ces étapes est présenté dans l’annexe 2.

Figure III.27. Phase de comparaison

Dans ce qui suit, nous détaillons ces cinq étapes, à savoir : filtrage, pondération, conservation d’ordre, ajout de nœuds et calcul de similarité.

III.3.2.2. Filtrage

‰ Principe

Afin de minimiser l’espace de comparaison, un filtrage des structures génériques nous permettra de sélectionner un ensemble de structures génériques candidates à la comparaison. Les structures génériques candidates sont les structures ayant un certain degré de ressemblance avec la structure spécifique à intégrer. Le degré de ressemblance entre une structure spécifique et une structure générique est évalué sur la base d’un pourcentage de nœuds communs aux deux structures comparées (fonction Cf). Pour qu’une structure générique puisse être candidate, il faut que son degré de ressemblance avec la structure spécifique soit supérieur à un seuil Sf (seuil de filtrage) dont la valeur est déterminée a priori par expérimentations.

Pour rendre la comparaison des nœuds (et des étiquettes) plus flexible, nous proposons d’utiliser un dictionnaire de synonymie. Ainsi nous pouvons, par exemple, considérer identiques les éléments (ou composants) : 'nom' et 'name', 'Locuteur', 'Speaker', 'Spk' et 'loc', etc. Ce dictionnaire sera maintenu dynamiquement en fonction des nouvelles structures ajoutées dans la base et selon les préférences et les connaissances des utilisateurs.

‰ Technique utilisée et formalisation

Une fonction d’alignement permet de déterminer la sous-arborescence commune à la structure spécifique et à la structure générique. Cette fonction consiste à associer à chacun des nœuds d’une arborescence V un nœud de l’arborescence V’ possédant la même étiquette ou une étiquette synonyme (selon le dictionnaire de synonymie), ou le nœud vide (νo) dans le cas

contraire.

Il est à noter qu’au sein d’une même arborescence, chaque nœud possède une étiquette unique et deux nœuds différents ne peuvent pas posséder la même étiquette au sens de ses ancêtres jusqu’à la racine de l’arborescence. Il s’agit de l’application du principe de nommage des étiquettes dont la sémantique est liée à sa position dans l’arborescence et non à son simple nom. La contrainte implique qu’un nœud d’une arborescence ne peut être aligné qu’à un seul nœud (au plus) s’il existe d’une autre arborescence ayant la même étiquette (ou une étiquette synonyme).

Soient :

T = (V, E) une arborescence ordonnée représentant la structure spécifique du document à intégrer dans la base ;

V = {υ1, … , υn} les nœuds de T / ∀ i ∈ [1, 2,… , n], υi = (Etiqi, ordrei) ;

VEC = {υ1, … , υk} les éléments ou les composants de T / ∀ i ∈ [1, 2, … , g], υi = (Etiqi, ordrei) ;

VAM= {υl, … , υn} les attributs ou les métadonnées de T / ∀ i ∈ [h, 2, … , n], υi = (Etiqi,

ordrei) ;

VEC∩ VAM = ∅ ; V = VEC ∪ VAM ;

E = {e1,… , em} les arcs de T / ∀ i ∈ [1, 2,…, m], ∀ j, k ∈ [1, 2…, n] avec j ≠ k, ei = (υj, υk) ;

T est une arborescence correspondant soit à une structure logique (élément et attributs), soit à une structure des métadonnées (composants et métadonnées).

‰ Exemple 1 A B C f T h D A : élément ou composant a : attribut ou métadonnée

Figure III.28. Représentation arborescente de la structure T

- les lettres majuscules représentent des éléments ou des composants ; - les lettres minuscules représentent des attributs ou des métadonnées ; - V = {A, B, C, D, h, f} : noeuds de T ;

- VEC = {A, B, C, D} : éléments ou composants de Τ ;

- VAM = {h, f} : attributs ou métadonnées de Τ ;

- E = {(A, B), (B, h), (A, C), (C, f), (C, D)} : arcs de T. Soient :

- T' = (V', E') une arborescence ordonnée représentant une des structures génériques de la base ;

- V' = {υ'1,…, υ'n’} les nœuds de T' / ∀ i ∈ [1, 2,…, n'], υ'i = (Etiqi, ordrei) ;

- V'EC = {υ'1, … , υ'g’} les éléments ou les composants de T' / ∀ i ∈ [1, 2,… , g], υi =

(Etiqi, ordrei) ;

- V'AM = {υ'h’, … , υ'n’} les attributs ou les métadonnées de T' / ∀ i ∈ [h, 2,… , n], υi =

(Etiqi, ordrei) ;

- V' = V'EC ∪ V'AM ;

- E' = {e'1,…, e'm’} les arcs de T' / ∀ i ∈ [1, 2,…, m], ∀ j, k ∈ [1, 2,…, n] avec j ≠ k,

e'i=(υ'j, υ'k).

Soit m la fonction d’alignement permettant d’associer un nœud d’une arborescence à un autre nœud appartenant à une deuxième arborescence : les étiquettes de ces deux nœuds doivent être identiques ou synonymes.

Soit T'' = (V'' E'') la plus grande sous-arborescence commune de deux arborescences T et T' (T'' = T ∩ T').

∀ υ ∈ V et ∀ υ ' ∈ V' ∪ {ν o } ⇒ m( υ) = υ' Si Etiq( υ) = Etiq( υ') Ou Etiq(υ) = synonyme Etiq(υ') m( υ) = νo Sinon

∀ υ ' ∈ V' et ∀ υ ∈ V ∪ {ν o } ⇒ m( υ') = υ Si Etiq( υ') = Etiq( υ) Ou Etiq(υ') = synonyme Etiq(υ) m( υ') = νo Sinon

‰ Exemple 2 A C B T h H f D A C B T’ X H f D K A C B T’’ D f H

Figure III.29. Exemple de deux structures T et T' à comparer – T’’ la plus grande sous-arborescence commune à T et T'

Τ = (V, E) avec V={A, B, C, H, K, D, h, f} , VEC ={ A, B, C, H, K, D } et VAM ={h, f}

Τ′ = (V′, E') avec V'={A, B, C, H, X, D, f}, V'EC={ A, B, C, H, X, D } et V'AM ={f}

Τ′′ =( V'', E''), tel que :

- V′′ = {A, B, C, H, D, f} l’ensemble des noeuds de Τ′′ : (V′′= V ∩ V’) ;

- V′′ EC = {A, B, C, H, D} l’ensemble des éléments ou composants de Τ′′ : (V'' EC = V EC ∩

V' EC) ;

- V′′AM = {f} l’ensemble des attributs ou métadonnées de Τ′′ : (V’’ AM = V AM ∩ V' AM).

Le calcul du recouvrement des structures doit tenir compte de la catégorie des nœuds. Dans le cas d’une comparaison de structures logiques, nous distinguons les distributions des nœuds éléments et attributs. Dans le cas d’une comparaison de structures de métadonnées, nous distinguons la distribution des nœuds composants et métadonnées.

Formule 1 : coefficient de filtrage

Pour calculer le degré de ressemblance entre deux structures, il faut évaluer le recouvrement de ces deux structures comme suit. La structure Τ′′ de la plus grande sous-arborescence commune doit recouvrir au mieux à la fois la structure spécifique T et la structure générique Τ′. Afin d’évaluer ce recouvrement, le critère de filtrage est une moyenne du recouvrement entre T et Τ′ et du recouvrement entre Τ′ et Τ′′.

(

)

2 ) (V' card + ) card(V' ) ' (V' card * ) card(V' + ) ' card(V' * ) card(V' + ) (V card + ) card(V ) ' (V' card * ) card(V + ) ' card(V' * ) card(V = C 2 AM 2 EC AM AM EC EC 2 AM 2 EC AM AM EC EC f Avec : V′′EC = VEC ∩ V′EC et V′′AM = VAM ∩ V′AM

Les structures génériques pour lesquelles le degré de ressemblance Cf est supérieur à un seuil Sf (seuil de filtrage), déterminé par expérimentations (cf. Chapitre IV), seront sélectionnées pour les étapes suivantes de la phase de comparaison.

‰ Exemple

Nous allons calculer ici le coefficient de filtrage Cf entre les deux structures présentées dans la figure III.30.

A B C D E i j T A F C X D i E j T’ F h l k m(AT) = AT’ m(CT) = CT’ m(DT) = DT’ m(ET) = ET’ m(FT) = FT’ m(iT) = iT’ m(jT) = jT’ m(BT) = m(hT) = m(lT) = νo νo νo m(AT’) = AT m(CT’) = CT m(ET’) = ET m(DT’) = DT m(FT’) = FT m(iT’) = iT m(jT’) = jT m(XT’) = m(kT’) = νo νo A : élément ou composant a : attribut ou métadonnée |+

Figure III.30. Exemple d’alignement de deux structures

L’application de la fonction d’alignement permet de spécifier les nœuds présents dans les deux structures (A, C, D, E, F, i, j) et les nœuds alignés à l’élément vide, c’est à dire ceux présents dans une seule structure (B, h, l, X, K).

Dans notre exemple (cf. Figure III.31), le rapport Cf est calculé comme suit :

V''EC = {A, C, D, E, F}, card (V''EC) = 5 V''AM = {i, j}, card(V''AM) = 2 VEC = {A, C, D, E, F, B}, card (VEC) = 6 VAM = {i, j, h, l}, card (VAM) = 4 Cf = 0,765 V'EC = {A, C, E, D, F, X}, card (V'EC) = 6 V'AM = {i, j, k}, card (V'AM) = 3

Si la valeur de Cf est supérieure au seuil de filtrage Sf alors la structure arborescente de T' peut être

sélectionnée pour les étapes suivantes de la comparaison.

III.3.2.3. Pondération

‰ Principe

L’étape de pondération consiste à attribuer des poids aux nœuds de la structure de manière à tenir compte d’une part de la profondeur du nœud et d’autre part de son ordre parmi ses frères afin de spécifier les positions des différents nœuds de l’arborescence.

‰ Technique utilisée et formalisation

Soit la fonction Pn : V→ [1, 2[ qui associe à chaque nœud υ de V son poids :

Formule 2 : poids d’un nœud

1, si υ = r : racine de l’arborescence V (anc[r] = ∅)

Pn(υ) = Ν )) ( ( α-1 n β υ pere P + , sinon (anc[υ] ≠ ∅)

Cette valeur sera incrémentée de un pour chaque niveau en se rapprochant des feuilles. β : un ordre qui peut avoir comme valeur

• (cas 1) numéro d’ordre du nœud υ dans l’ensemble des fils de père (υ) (sans compter les attributs et les métadonnées) ;

• (cas 2) zéro si υ est un attribut ou une métadonnée. En effet, nous n’affecterons pas d’ordre aux attributs et aux métadonnées pour diminuer le coût d’une éventuelle adaptation ;

• (cas 3) le même ordre attribué au nœud υ1 si le nœud υ participe à une

combinaison d’alternance avec υ1 (υ|υ1).

N : nombre maximum de fils pour un même père défini par 10x, ∀ x ∈ [1,… , n].

Pn permet de gérer toute structure de document avec la contrainte que card(fils(υ)) < N pour tout nœud υ non feuille. Par exemple, si N est égal à 100, un nœud peut avoir jusqu’à 99 fils. Nous utiliserons une valeur de N = 10.

‰ Exemple

Dans la figure III.31, nous présentons un exemple de pondération d’une arborescence. Chaque nœud est représenté par son étiquette et le poids associé. Nous allons fixer N à 10 et ensuite nous appliquons la fonction Pn pour calculer le poids de chaque nœud de l’arborescence.

A 1 B 1,1 C1,2 D1,3 E 1,3 i 1,3 j 1,3 T l 1,3 |+ h 1,1 G F 1,11 1,12

Figure III.31. Exemple de pondération des nœuds d’une arborescence

Dans cet exemple :

- le poids de l’élément G est égal à 1,12 (cas 1). Ce nœud se positionne au niveau 3 dans l’arborescence. Sans compter le nœud h (attribut ou métadonnée), le nœud G est le deuxième fils par rapport à son père B qui est le premier fils de la racine A. Ainsi, le poids du nœud G se calcule comme suit :

12 , 1 100 1 , 1 10 2 ) B ( ) G ( Pn =Pn + 3-1= + 2 =

- Pn(E) = Pn(i) = Pn(l) = Pn(j) (cas 2) car les trois derniers nœuds sont des métadonnées ou

des attributs. Ils sont donc des fils d’ordre 0 ;

- Pn(D) = Pn(F) (cas 3) car ces nœuds sont liées par une relation d’alternance.

Remarque :

En fonction de la valeur de N (nombre maximum de fils) les différentes positions seront déterminées de la façon suivante :

Position du

2èmeniveau Position du 3èmeniveau Position du 4èmeniveau

1 1

1, Si N = 10

Position du

2èmeniveau Position du 3èmeniveau Position du 4èmeniveau

01 01

1, Si N = 100

III.3.2.4. Conservation d’ordre

Cette étape, appelée Conservation d’ordre, permet d’étudier le placement des nœuds, et en particulier des nœuds alignés, dans les structures à comparer. Nous distinguons deux règles, à savoir : la conservation d’ancestralité et la conservation d’ordre des fils d’un nœud père. Si l’une des deux règles n’est pas vérifiée, les deux structures arborescentes sont considérées comme suffisamment différentes. Cette structure ne sera pas gardée dans la liste des structures candidates. Comme déjà mentionné, cette conservation concernera uniquement les éléments et les composants, mais pas les attributs et les métadonnées.

III.3.2.4.1. Conservation d’ancestralité ‰ Principe

Cette étape consiste à vérifier la conservation de l’ordre des noeuds d’un point de vue hiérarchique. Plus précisément, il s’agit d’étudier et de comparer l’ordre des ancêtres de deux noeuds alignés. Par exemple les deux arborescences de la figure III.32 ne vérifient pas la conservation d’ancestralité car les nœuds "Locuteur" et "Thème" sont liés par une relation {père → fils} dans la première structure et par une relation {fils → père} dans la deuxième structure. Cette inversion des rôles peut traduire une différence sémantique. En effet, la première composition peut correspondre à une structure d’un "Flash d’information" dans lequel un seul locuteur présente un ensemble de thèmes, alors que la composition de la deuxième structure peut correspondre à un "Débat audio" dans lequel plusieurs locuteurs vont aborder un seul thème.

Event Transcription

déb_fin_Tra

Structure sp

Structure spéécifiquecifique StructureStructureggéénnéériquerique

. . . . . . Thème déb_fin Locuteur + + Event Transcription déb_fin_Tra Locuteur déb_fin Thème + +

Figure III.32. Premier exemple avec non-conservation d’ancestralité

‰ Technique utilisée et formalisation

leurs ancêtres alignés. Supposons qu’un nœud υ1 soit l’un des ancêtres du nœud υ2, ceci implique

que le nœud υ'1 (alignement de υ1) doit être aussi l’un des ancêtres de υ'2 (alignement de υ2).

∀ {υ1, υ2} ∈ V et ∀ {υ'1, υ'2} ∈ V' /

m(υ1) = υ'1, υ'1 ≠ νo et m(υ2) = υ'2, υ'2 ≠ νo υ1 ∈ anc[υ2]

‰ Exemple

Dans l’arborescence T de la figure III.33, l’élément C est un ancêtre de K, alors que dans l’arborescente T', C est un frère de K. La règle de conservation d’ancestralité n’est pas conservée, par conséquent la structure T' ne peut pas être retenue comme structure générique candidate.

A 1,1 D 1,3 C 1,1 B 1,2 i 1,1 J 1,12 m 1,11 K 1,122 A 1,1 C1,1 B 1,2 K 1,3 h 1,3 J 1,32 l 1,32 m 1,32 T T’ m(CT) = CT’ m(KT) = KT’ CT∈ anc [KT] CT’∈ anc [KT’] Pas de conservation de l’ancestralité

Figure III.33. Deuxième exemple avec non-conservation d’ancestralité

III.3.2.4.2. Conservation d’ordre des fils ‰ Principe

Cette étape consiste à vérifier l’ordre des nœuds fils d’un même nœud père dans les deux arborescences étudiées. Le non conservation de cet ordre risque de changer la sémantique des structures.

Par exemple, dans les structures de la figure III.34, la position de l’élément "Texte" est certainement significative de son rôle et ce rôle devrait transparaître au niveau du nom de l’étiquette mais ce n’est pas toujours le cas, d’où les ambiguïtés qui peuvent en découler. En effet, cet élément permet de présenter le titre du film ou une introduction lorsqu’il est présenté au début. En revanche, cet élément représente la liste complète des acteurs s’il est présenté à la fin de film.

Figure III.34. Première exemple avec non conservation d’ordre des fils

‰ Technique utilisée et formalisation

La règle de conservation d’ordre des fils permet de s’assurer du respect de l’ordre des nœuds fils alignés de deux pères alignés.

Supposons que le nœud υ1 est le benjamin du nœud υ2 d’un même élément père, ceci implique

que le nœud υ'1 (alignement de υ1) doit également être le benjamin de υ'2 (alignement de υ2) d’un

même élément père.

∀ {υ1, υ2} ∈ V et ∀ {υ'1, υ'2} ∈ V' /

m(υ1) = υ'1, υ'1 ≠ νo et m(υ2) = υ'2, υ'2 ≠ νo

pere(υ1) = pere(υ2) et pere(υ'1) = pere(υ'2) Pn(υ1) <= Pn(υ2)

‰ Exemple

Dans la figure III.35, le nœud A est le père des nœuds B et C pour les deux structures. Mais l’ordre de ces deux nœuds n’a pas été conservé. Par conséquent, la structure générique T' ne peut pas être conservée afin de pouvoir lui rattacher ultérieurement la structure spécifique T.

Figure III.35. Deuxième exemple avec non conservation d’ordre des fils

Si on reprend ici, dans la figure III.36, l’exemple introduit dans la figure III.30, la relation

d’alternance entre les éléments "D" et "E", implique qu’il y a implicitement vérification d’ordre. Dans la figure III.36, nous avons changé l’ordre des éléments "D" et "E" pour avoir les mêmes ordres attribués à leurs homologues. La figure III.36 présente donc l’état des deux structures après cette phase.

Figure III. 36. Exemple d’ajout d’une relation d’alternance

III.3.2.5. Evaluation de l’ajout de nœuds

L’idée est de vérifier, en insérant fictivement des nœuds (en largeur ou en profondeur) à la structure générique, si on se rapproche ou non de la structure spécifique à intégrer. Les cas d’insertion se limitent à tester l’un des deux types d’ajouts suivants :

(1) ajout d’ancêtres ; (2) ajout de fils.

III.3.2.5.1. Ajout d’ancêtres ‰ Principe

Cette étape consiste, lorsque la conservation d’ordre est assurée, à vérifier que l’ajout d’un ancêtre dans un chemin permet le rapprochement de deux structures.

‰ Technique utilisée et formalisation

L’idée consiste, pour chaque élément feuille υ d’une arborescence dont il existe un élément υ' correspondant dans l’autre arborescence, à récupérer son chemin jusqu’à la racine (chm[υ]) ainsi que celui de son homologue (chm[υ']), pour les comparer et éventuellement insérer des nœuds ancêtres.

Soit pos une fonction permettant de récupérer la position d’un nœud dans un chemin. Par exemple, pour le chemin suivant [a, b, c, d], pos(c) = 3.

L’ajout d’ancêtres dans T’ se fait comme suit : Soient υ ∈ V, υ' ∈ V' / m(υ) = υ', fils[υ] = ∅ ∀ υ'i, υ'j ∈ chm[υ'] et ∀ υk ∈ chm[υ] / pos(υ'i) = pos(υ'j)+1 Pn(υk) >= Pn(m(υ'i)) et Pn(υk) <= Pn(m(υ'j)) ‰ Exemple 1 Ajout de υk entre υ'i et υ'j dans V'.

x3, x4, υ'] et chm[υ] = [x1, y1, y2, x2, υ], les noeuds x1 et x2 se succèdent dans chm[υ’] et leurs

homologues sont non nuls. Il faut récupérer les noeuds de chm[υ] se trouvant entre les homologues de x1 et x2 (soient y1 et y2). Ces noeuds (y1 et y2) doivent être ajoutés dans chm[υ'].

Ce dernier devient chm[υ'] = [x1, y1, y2, x2, x3, x4, υ'].

‰ Exemple 2

En reprenant la figure III.36, si nous appliquons les règles d’ajout d’ancêtres proposées dans cette section, nous obtenons le résultat de la Figure III.37.

Figure III.37. Exemple d’ajout d’ancêtres

III.3.2.5.2. Ajout de fils ‰ Principe

Cette étape consiste, lorsque la détermination de l’ordre est assurée, à vérifier si l’ajout d’un fils dans un sous-arbre rapproche les deux arborescences comparées.

‰ Technique utilisée et formalisation

L’idée consiste, pour chaque nœud υ' dont l’image υ est non vide, à récupérer tous les fils de son père (fils [pere (υ')]) et ceux du père de son image (fils [pere (υ)]), afin de les comparer et d’ajouter d’éventuels fils selon le même principe que précédemment.

‰ Exemple

L’application des règles d’ajout de fils à la figure III.38 permet d’obtenir les deux structures arborescentes suivantes.

Figure III.38. Exemple d’ajout de fils

Remarque : la cardinalité "?" (zéro ou un) est affectée automatiquement au nœud h pour indiquer qu’il est optionnel. Cette cardinalité est attribuée uniquement aux nœuds fils. Les nœuds pères ne peuvent pas être optionnels.

III.3.2.5.3. Calcul du coefficient d’inclusion

est incluse dans la structure générique que l’on tente d’adapter. Plus précisément, ce coefficient donne le pourcentage des nœuds de T alignés à des nœuds de T'. Il faut rappeler que l’on recherche le plus grand sous-arbre commun entre deux structures.

Pour évaluer le degré d’inclusion d’une structure spécifique T dans une structure générique T', nous avons proposé une formule simplifiée de la formule 1 (degré de ressemblance Cf) :

Formule 3 : coefficient d’inclusion

= 2 AM 2 EC AM AM EC EC i ) (V card + ) card(V ) ' (V' card * ) card(V + ) ' card(V' * ) card(V C

Si la valeur de Ci obtenue est égale à 1, cela signifie que tous les nœuds de T ont des images non nulles. Donc T est incluse dans T'. Dans ce cas le processus de comparaison prend fin.

Dans le cas contraire (0 ≤ Ci < 1), les deux structures présentent des différences et un degré de

similarité (étape suivante) doit être calculé.

III.3.2.6. Calcul de similarité

‰ Principe

Le calcul de similarité entre deux structures doit permettre de décider en fin de compte, si la structure générique peut être la structure de référence et si l’adaptation que l’on évalue rapproche les deux structures. Le degré de similarité Sim est basé sur le calcul de la distance d’alignement des différents nœuds des deux structures arborescentes.

Ainsi, il s’agit de déterminer, parmi les structures génériques candidates restantes, celle qui est la plus proche de la structure spécifique à intégrer.

Le calcul de similarité permet également de tester si nous pouvons ou pas ajouter des nœuds complexes dans la structure générique. Par exemple, dans la figure III.38, nous trouvons encore dans la structure spécifique un nœud ayant une image nulle (le nœud l). Ces deux structures sont encore différentes, et ne peuvent pas, pour le moment, être reliées. L'ajout de nœud complexe (l|k) dans T' (cf. Figure III.43) permettra d'assurer l'inclusion de T dans T'.

‰ Technique utilisée et formalisation

La fonction de similarité Sim(T, T’) est calculée en fonction de la distance d’alignement de tous les chemins des nœuds feuilles de la structure spécifique. Cette fonction tient compte de la décomposition hiérarchique des arborescences, c’est à dire du concept de chemin et de l’ordre des fils d’un même nœud père. Elle intègre la fonction Danc permettant de calculer la distance

d’alignement d’un chemin intégrant les ancêtres d’un nœud donné. Formule 4 : fonction de similarité

) P ) D - 1 = ) T' Sim(T, j j υ j anc j υ anc

Où :

∀ υj ∈ V / fils[υj] = ∅ (υj est feuille) et ∀ υi ∈ chm[υj] et ) ( P ) ( P ) , ( D D n anc n anc

Documents relatifs