• Aucun résultat trouvé

Mise à jour de l’ensemble de régions prototypes

sur des modèles incrémentaux

6.4.1 Mise à jour de l’ensemble de régions prototypes

appliquant notre système sur l’image de facture candidate, une ou plusieurs des infor-mations recherchées ne sont pas correctement extraites à partir des régions prototypes et des chemins disponibles. En effet, l’image de facture candidate considérée peut conte-nir des informations localisées à des positions inconnues dans le jeu initial de données synthétiques. Afin de pallier ce cas de figure, nous avons choisi d’intégrer dans notre sys-tème des modèles permettant d’enrichir le syssys-tème avec de nouvelles données de manière incrémentale. Dans la littérature, des méthodes incrémentales de k-means permettent de mettre à jour dynamiquement des classes existantes avec des données supplémen-taires ajoutées de manière incrémentale à un jeu de données initial. Par ailleurs, des algorithmes de construction incrémentale de treillis de concepts sont également décrites dans la littérature. Dans la Section 6.4.1, nous présentons notre méthode de mise à jour incrémentale de l’ensemble de régions prototypes qui s’inspire de l’algorithme k-means incrémental de Chakraborty et al. (Chakraborty & Nagwani,2011; Chakraborty et al., 2014). Nous présentons également, dans la Section 6.4.2, notre méthode de mise à jour incrémentale des chemins, pour naviguer au sein des régions prototypes, fondée sur l’algorithme incrémental de construction de treillis de concepts de van Der Merwe et al. (Van Der Merwe et al.,2004).

6.4.1 Mise à jour de l’ensemble de régions prototypes

A partir d’un jeu de données existant, notre méthode de mise à jour de l’ensemble de régions prototypes est composée de trois étapes :

1. Création manuelle d’une image synthétique, via notre interface graphique pré-sentée dans la Section 6.1, à partir d’une image de facture inconnue ; de nou-velles données relatives à l’image synthétique sont automatiquement enregistrées en base de données. Ces nouvelles données concernent les caractéristiques des ré-gions rectangulaires renseignées par l’utilisation via l’interface graphique de notre programme de génération d’images synthétiques. Pour chaque région rectangu-laire renseignée, le type de l’information contenue (date facture, numéro facture, référence client, etc.), le contenu textuel, les coordonnées (x, y, z, t) de la région rectangulaire considérée sont enregistrées en base de données.

2. Partitionnement du jeu de données synthétiques existant, dans lequel les nouvelles données sont insérées de manière incrémentale.

3. Détermination d’un nouvel ensemble de régions prototypes à partir des classes obtenues à l’étape précédente.

En considérant un image de facture inconnue, dans la première étape, l’utilisateur est in-vité à créer manuellement une image de facture synthétique correspondante en utilisant l’interface graphique présentée dans la Section 6.1. Nous avons également mentionné dans la Section 6.1 que lorsqu’une image de facture synthétique est créée depuis notre interface, les coordonnées (x, y, z, t) de la région rectangulaire contenant l’information textuelle d’intérêt sont stockées dans une base de données.

La seconde étape consiste à partitionner le jeu de données initial et les nouvelles données en appliquant une version incrémentale de l’algorithme k-means.

La troisième étape consiste à déterminer le nouvel ensemble de régions prototypes, en déterminant, pour chaque classe des partitions obtenues à l’étape précédente, l’enveloppe convexe des rectangles contenant une information Ii dans les documents qui constituent

138 Traitement d’une image de facture inconnue fondé sur des modèles incrémentaux

la classe considérée, comme présentée dans la Section6.2.2

Dans la Section 6.2.1, nous avons mentionné que l’ensemble des régions prototypes est dérivé d’une partition de classes (que nous appellerons classes existantes par la suite) obtenue à partir de la classification du jeu de données synthétiques initial (aussi nommé jeu de données existant) avec k-means. Dans le scénario spécifique décrit dans cette Sec-tion, l’algorithme k-means incrémental que nous présentons est appliqué sur les classes existantes et les données de l’image de facture synthétique précédemment créée. L’al-gorithme incrémental que nous proposons s’inspire de l’alL’al-gorithme k-means incrémental proposé par Chakraborty et Nagwani (Chakraborty & Nagwani, 2011) (Algorithme 4). Notre adaptation de cet algorithme est présenté dans l’Algorithme3.

Entrées:

Fi : <xi, yi, zi, ti> (où i = 1, 2, 3, · · · , m) les nouvelles données K : {K1, · · · , Kk} partition constituée des classes existantes

D : {X1, · · · ,Xn} le jeu de données initial d’images de facture synthétiques k : nombre de classes contenues dans K

kf : nombre de classes final

s : seuil minimum pour l’indice Silhouette p : seuil minimum pour l’indice PBM

v : seuil minimum pour l’indice Calinski-Harabasz Sorties: C : une partition 1 début 2 initialiser C avec K; 3 initialiser kf avec k; 4 pour i = 1 to m faire

5 déterminer la classe Kj de centre M telle que dist(Fi,M) est la plus petite;

6 Kj0 = Kj∪ Fi et calculer le centre de K0 j;

7 ind1 = silh(K0

j) /*calcul du Silhouette de la classe K0 j*/;

8 ind2 = pbm(K0

j) /*calcul de l’indice PBM de la classe K0 j*/;

9 ind3 =CH(K0

j) /*calcul de l’indice Calinski-Harabasz de la classe K0 j*/;

10 si deux indices parmi les trois indices ind1, ind2, ind3 sont ≥ à leur seuil (s, p, v) respectif alors 11 retirer Kj de C et insérer K0 j dans C 12 sinon 13 ; 14 fin

15 créer une nouvelle classe Ci dont le centre est Fi;

16 insérer Ci dans C; 17 kf = kf+1; 18 fin 19 si kf ≥ n alors 20 k-means(D ∪ Fi, C); 21 fin 22 fin

6.4.1 - Mise à jour de l’ensemble de régions prototypes 139

Lignes 2 et 3 : Une partition C est initialisée avec les classes de K et le nombre de classes final kf est initialisé avec la valeur de k (le nombre de classes dans K).

Ligne 5 : La classe Kj de centre M dont Fi est le plus proche est déterminée. Ligne 6 : Fi est insérée dans Kj formant une classe K0

j dont le centre est ensuite calculé. Lignes 7 à 9 : Pour chaque nouvelle donnée Fi à traiter, nous considérons 3 indices de qualité (Silhouette, PBM, Calinski-Harabasz) pour déterminer si une nouvelle donnée en entrée peut être classée dans une classe existante, ou si une nouvelle classe doit être créée. Pour la nouvelle classe K0

j la valeur de chaque indice est calculée.

Lignes 10 et 11 : Ensuite, si les valeurs d’au moins deux des trois indices utilisés sont au moins égales à leur seuil respectif, alors la classe Kj est remplacée par la classe K0 j

dans C. Cela signifie que la nouvelle donnée Fi a été classée avec succès au sein d’une classe existante dans la partition initiale K.

Lignes 13 à 15 : Sinon, une nouvelle classe Ci de centre Fi est créée. Ci est ajoutée à la partition C et le nombre de classes final kf est incrémenté de 1.

Lignes 18 à 20 : Enfin, si le nombre final de classes kf est supérieur au nombre de classes initial k, l’ensemble des données formé par la réunion des données initiales et des nouvelles données est classé en appliquant l’algorithme k-means traditionnel initialisé avec les centres de classes de la partition C.

Les seuils s, p, v sont fixés de sorte que la qualité des classes existantes et de la partition initiale ne se dégrade pas dans le meilleur des cas, ou dans le pire des cas, que l’éventuelle dégradation soit contrôlée. Ainsi, nous avons évalué pour chaque indice qu’une dégradation de 5% de la valeur initiale de l’indice était acceptable. Dans la Section 6.2.1 nous avons présenté la classification du jeu de données synthétiques que nous avons adoptée. Dans le Tableau 6.7, qui récapitule les valeurs des indices relevées pour la classification adoptée, nous pouvons observé que les valeurs relevées pour chaque indice laissent à discuter sur la qualité des partitions obtenues. En effet, concernant l’indice Silhouette, on peut lire dans la littérature qu’une partition (ou une classe) est de bonne qualité si la valeur de Silhouette est au moins égale à 0,7. L’indice Silhouette prenant ses valeurs entre 0 et 1, plus la valeur est proche de 1 plus la partition est de bonne qualité. Hors, dans le Tableau 6.7, la partition obtenue par D1 à une valeur de Silhouette égale à 0.64, D2 à une valeur de Silhouette égale à 0.68, le Silhouette de D3 est égale à 0.61, celui de D4 est égale à 0.55 et celui de D5 est égale à 0.73. Vis à vis de la littérature, il semble que la qualité des partitions obtenues pour les jeux de données D1 à D4 ne soit pas suffisamment bonne. Toutefois, dans notre étude nous travaillons à partir de données réelles (des factures de la société GAA) que nous avons simulées. Ces données réelles présentent plus de complexité et de difficulté qu’une majorité de jeux de données standards rencontrés dans la littérature. C’est pourquoi, nous considérons les valeurs de Silhouette (et des autres indices) obtenues dans la Section 6.2.1 acceptables dans le cadre de notre étude. Pour ces mêmes raisons, le taux de dégradation des indices utilisés par notre algorithme k-means incrémental a été établit de manière empirique à 5%, après avoir étudié des taux de dégradation compris entre 1% et 10%.

Enfin, le nouvel ensemble de régions prototypes est dérivé des partitions obtenues en appliquant la méthode décrite dans la Section6.2.2.

Dans la Section suivante nous présentons notre modèle incrémental pour la mise à jour des chemins déterminés à partir du treillis de concepts du contexte formel d’images de factures synthétiques.

140 Traitement d’une image de facture inconnue fondé sur des modèles incrémentaux

Data:

D : A dataset containing n objects {X1,X2, X3, . . . , Xn} and n : number of data items.

Result: K1 : A Set of clusters.

1 begin

2 Let, Ci (where i=1, 2, 3 . . . ) is the new data item;

3 Incremental K-means Pseudo-code :

4 Start

5 a>Let, K represents the already existing clusters.

6 b>Compute the means (M) of existing clusters. And directly clustered the new item Ci.

7 for i = 1 to n do

8 find some mean M in some cluster Kp in K such that dis(Ci, M ) is the smallest;

9 if dis ( Ci, M )=min then

10 Kp = Kp U Ci;

11 Recomputed the mean M and compare it again.

12 else

13 if dis(Ci!= min) then

14 Ci will be treated as outliers or noisy data.

15 Update the existing cluster.

16 end

17 end

18 end

19 c>Repeat step b till all the data samples are clustered.

20 End;

21 end

Algorithm 4:K-means incrémental de Chakraborty et Nagwani (Chakraborty & Nagwani, 2011).

6.4.2 Mise à jour des chemins pour naviguer au sein de