Vous êtes sur la page 1sur 19

Module : Calcul de Complexité et Méta-Heuristiques

Rapport

Réalisé par :
- Elhaila Abdelmounaim
- Laamime Othmane
- Elobaidi Zakaria

Page 1 of 19
Sommaire
Chapitre 1 : Datawarehouse .................................................................................................................... 3
Introduction : ...................................................................................................................................... 3
Définition : .......................................................................................................................................... 3
Historique :.......................................................................................................................................... 4
Architecture d’un DataWarehouse : ..................................................................................................... 5
I. Composante de collection des données : .................................................................................. 6
II. Composante d’archivage des données :.................................................................................... 7
III. Composante de livraison des données : ................................................................................ 9
Caractéristiques du datawarehouse : ................................................................................................... 9
SGBD et Datawarehouse : .................................................................................................................. 10
Chapitre 2 : Nettoyage de données : ...................................................................................................... 12
Indicateurs et mesures de la qualité des données : ................................................................................ 12
Problématique :..................................................................................................................................... 13
Algorithme de déduplication : ............................................................................................................... 13
Sorted-neighborhood method : ............................................................................................................. 14
Variante de SORTED NEIGHBOURHOOD METHOD : ............................................................................... 15
Conclusion : ........................................................................................................................................... 19

Page 2 of 19
Chapitre 1 : Datawarehouse
Introduction :

Pendant une longue période, pour collecter, stocker les données on utilisait comme outil
principal juste des bases de données classiques. Mais les temps ont changé et on ces méthodes
souffrent de plusieurs limites, devant le volume et la typologie des donnes et surtout lorsqu’on
s’intéresse plus à seulement stocker les donnes mais aussi à les analyser pour aboutir à des
résultats.
Ainsi que l’ensemble des entreprises et organisations utilise dans leurs domaines plusieurs outil
différents. Devant cette évolution, les données sont plus en plus dispersées dans des dizaines
de bases et d’applications. Alors les organisations recherchent des solutions pour résoudre ce
problème et mieux gérer leurs données. C’est dans ce contexte que, depuis quelques années,
se développent les DataWarehouse.

Définition :

Un DataWarehouse (DWH) est par définition un système de base de données distinct d’un
système de traitement de données opérationnelles, dans lequel les données provenant de
diverses sources, parfois même très hétérogènes, sont combinées, compressées et archivées à
long terme. Alors Le Data Warehouse est une collection de es orientées sujet, intégrées, non
volatiles, historisées, organisées pour le support d’un processus d’aide à la décision.
Afin d’assurer ce but plusieurs entreprises et organisations qui utilise Datawarehouse
transfèrent régulièrement les données historiques des systèmes de traitement des données
opérationnelles vers un tel entrepôt de données et les préparent pour des accès ultérieurs afin
d’effectuer des analyses stratégiques dans le cadre de l’informatique décisionnelle.
Alors les informations orientées transactions générées par l’activité quotidienne par les sources
classiques de données qui sont les systèmes de traitement de données opérationnelles
deviennent donc des données décisionnelles stockées sur le long terme et préparées pour
l’analyse.

Page 3 of 19
Figure 1 : Data warehouse

Historique :

C’est pendant les aux années 1980 que l'origine du concept d'entrepôt de données remonte,
car durant ces années un intérêt croissant au système décisionnel a vu le jour ; cela se justifie
essentiellement par l'émergence des SGBD relationnels, la simplicité du modèle relationnel et la
puissance offerte par le langage SQL.

Au début, en effet, le DataWarehouse n'était rien d'autre qu'une copie des données du système
opérationnel prise de façon périodique ; cette dernière étant dédiée à un environnement de
support à la prise de décision. Ainsi, les données étaient extraites du système opérationnel et
stockées dans une nouvelle base de données « concept d'Infocentre >> dont le motif principal
est de répondre aux requêtes des décideurs sans toutefois altérer les performances des
systèmes opérationnels.
Le DataWarehouse, tel qu'on le connaît actuellement, n'est plus vu comme une copie ou un
cumul de copies prises de façon périodique des données du système opérationnel. Il est devenu
une nouvelle source d’informations, alimenté avec des données recueillies et consolidées des
différentes sources internes et externes. Alors Il s’agit d’une solution permettant de collecter,
extraire, transformer dans le but de les analyser selon plusieurs critères et de les présenter aux
décideurs

base de données
Info centre Entropots de données
relationnelle
1980 1990
1970

Page 4 of 19
Architecture d’un DataWarehouse :

Le DataWarehouse a une structure bien définie, selon différents niveaux et de détails des
données, et les phases du processus de gestion et d’analyse d’un DWH se reflètent dans la
structure type, l’architecture dite de référence des systèmes d’entreposage des données.
Bien que l’architecture du système varie selon le produit et l’éditeur, sa structure technique
repose sur un schéma modulaire qui peut être divisée en trois niveaux :
▪ Collecte des données (data collection)
▪ Dépôt et archivage des données (data repository)
▪ Fourniture et transmission des données (data provision)

Figure 2 : Architecture DWH

Page 5 of 19
I. Composante de collection des données :

Avant que les données puissent être chargées vers le DWH, les informations souvent très
hétérogènes doivent d’abord être unifiées pour une présentation uniforme. Un entrepôt de
données s’alimente de manière autonome à partir des sources de données internes d’une
entreprise ainsi que des sources de données externes pertinentes qu’on distingue :
Données internes : système d’exploitation : progiciel de gestion intégré ; bases de données
opérationnelles ; système de gestion de contenu ; bases de données orientées texte, fichiers
plats (par exemple Excel, CSV, fichiers textes), emails, etc.
Données externes : applications et systèmes de services externes, sites Web, médias sociaux,
services de Cloud, etc.
Les techniques de collecte qui sont utilisées pour l’extraction et l’acquisition des données sont :

▪ Trigger ou déclencheur, ils peuvent alors être utilisés pour automatiser l’extraction
des données. Les déclencheurs vous permettent de définir des opérations qui sont
exécutées automatiquement lorsque certains événements se produisent.

▪ Fichiers journaux : le niveau d’acquisition des données d’un DWH peut contenir des
programmes capables d’évaluer les fichiers journaux (ou fichiers log) des systèmes
sources et d’extraire les opérations enregistrées dans ces derniers.

▪ Programme de monitoring, Ces derniers extraient les changements dans l’ensemble


de données d’un système d’exploitation à l’aide d’algorithmes qui créent des
instantanés des données à surveiller à intervalles réguliers et les synchronisent avec
les précédents.

En matière d’intégration de données, la plupart des DWH offrent des fonctionnalités OLAP qui
permettent de présenter les fichiers dans des structures multidimensionnelles.
Le traitement analytique en ligne (OLAP) est une méthode d’analyse utilisée pour comprimer
les données et fichiers d’entreprises pertinents pour la gestion. Le fonctionnement est basé sur
le processus ETL :
E = Extraction : l’extraction des données consiste à extraire des informations pertinentes de
diverses sources de données. Les sources de données sont encouragées à générer des extraits à
intervalles réguliers et à les transmettre au DWH. Dans le cas d’une stratégie Pull, c’est le DWH
qui initie, de sa propre initiative, l’extraction des données.

Page 6 of 19
T = Transformation : les données extraites sont ajustées lors d’une transformation et traduites
da manière uniforme dans le format de la base de données cible.
L = Loading (chargement) : la phase de chargement implique la sauvegarde des données
transformées dans les bases de données cibles respectives du DWH.
Pour résumer ce passage relatif aux ETL, nous sommes partis de données brutes que nous
avons nettoyées et transformées et que nous allons stocker dans une base de données
particulière, appelée DataWarehouse.

Figure 3 : E-T-L

II. Composante d’archivage des données :

Le niveau d’archivage des données est un élément central de l’entrepôt des données. Il s’agit
de ce que l’on nomme le « Core Data Warehouse ». Les données extraites sont généralement
stockées dans le DWH sous forme de matrices multidimensionnelles, ce que l’on appelle des
schémas en étoile ou en flocon, pour des analyses futures dans le cadre d’un archivage à long
terme.

➢ Schémas en étoile :
C'est un schéma dans lequel il existe une table pour les faits et plusieurs tables pour les
différentes dimensions autour de celle-ci. La table de faits contient les différentes mesures et
des clés étrangères de chacune de leurs tables de dimensions.

Page 7 of 19
Figure 4 : Exemple schéma en étoile.

➢ Schémas en flocon de neige (Snowflake) :


Ce schéma dérive du précédent avec une table centrale autour de laquelle les différentes
dimensions, sont éclatées ou décomposées en sous hiérarchies. L'avantage du schéma en
flocon de neige est de formaliser une hiérarchie au sein d'une dimension, ce qui pourrait
faciliter l'analyse.

Figure 5 : Exemple schéma en flocon de neige


Dans la pratique, la structure de données d’un DWH est généralement basée sur le schéma en
flocon car les schémas en flocon se caractérisent par une consommation d’espace de stockage
plus faible que les schémas en étoile. Ceci résulte d’un stockage de données normalisé. Ici, la
normalisation se réfère au transfert des colonnes vers de nouvelles tables dans le but d’éviter
les doublons. L’élimination des redondances réduit aussi le coût de maintenance et de gestion

Page 8 of 19
des données : dans le meilleur des cas, chaque information n’apparaît qu’une seule fois et ne
doit donc être placée qu’une fois dans le schéma.
Cette normalisation rend plus complexe la lisibilité et la gestion dans ce type de schéma. En ce
sens, ce type de schéma augmente le nombre de jointures à réaliser dans l'exécution d'une
requête.

III. Composante de livraison des données :

Ce niveau de données sert d’interface avec les applications finales et les outils de présentation,
ce qui facilite l’analyse des données et les méthodes d’évaluation qui permettent d’extraire des
informations des entrepôts de données et de les traiter sous différentes formes de
présentation pour les utilisateurs finaux. Ce niveau comprend notamment les outils de rapports
et d’interrogation, les outils de collaboration et d’exploration de données, le traitement
analytique en ligne (OLAP), les systèmes d’information exécutive (EIS) et les outils de prévision
et de simulation.
Il existe sur le marché différents outils pour l'aide à la décision. Comme les outils de fouille de
données ou data mining (pour découvrir des liens sémantiques), les outils d’analyse en ligne
OLAP "On-Line Analytical Processing" (pour la synthèse et l'analyse des données
multidimensionnelles).
▪ Data mining ou fouille de données : est un ensemble de techniques tirées des
mathématiques permettant le forage de données, c'est-à-dire la recherche
d'informations dans de grands volumes de données. C'est l'art d’extraire des
connaissances à partir des données
▪ Outils de traitement analytique en ligne (OLAP) : L’affichage via OLAP permet de
modéliser des données formatées en fonction d’un nombre quelconque de
dimensions prédéfinies. Les analystes peuvent utiliser diverses opérations de base
afin d’éditer un cube OLAP, qui est une base de données à plusieurs dimensions,
optimisée pour les applications d'entrepôt de données et de traitement analytique
en ligne.

Caractéristiques du datawarehouse :

▪ Orientées sujet : le DW est organisé autour des sujets majeurs de l'entreprise,


contrairement à l'approche transactionnelle utilisée dans les systèmes opérationnels,
qui sont conçus autour des applications et des fonctions. Les DW sont organisés autour
de sujets majeurs de l'entreprise tels que la clientèle, les ventes, les produits etc. Cette
organisation, affecte forcément la conception et l'implémentation des données

Page 9 of 19
contenues dans l'entrepôt de données. Dans un système opérationnel, les données sont
essentiellement destinées à satisfaire un processus fonctionnel en obéissant à des règles
de gestion, alors que celles d'un DW sont destinées à un processus analytique.

▪ Intégrées : le DataWarehouse va intégrer les données en provenance de différentes


sources. Mais cela nécessite la gestion de toute incohérence.

▪ Evolutives dans le temps : Dans un système décisionnel, il est important de conserver les
différentes valeurs d'une donnée, cela permet les comparaisons et le suivi de l'évolution
des valeurs dans le temps

▪ Non volatiles : Une donnée dans un environnement opérationnel peut être mise à jour
ou supprimée. Par contre une telle opération n'existe pas dans un environnement
datawarehouse.

▪ Organisées pour le support d'un processus d'aide à la décision : Les données du DW sont
organisées de manière à permettre l'exécution des processus d'aide à la décision
(Reporting, Data Mining ...).

SGBD et Datawarehouse :

Il faut bien comprendre qu’un Data Warehouse n’est pas l’équivalent d’une simple base de
données. Une base de données a pour fonction de collecter et de stocker des données en
temps réel. Un DataWarehouse, lui, est semblable à un entrepôt : il est utilisé pour stocker
toutes les données générées depuis que l’entreprise génère des données. C’est le lieu où
TOUTES données, en provenance de TOUTES les sources, se trouvent réunies.
On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure
d'informatique décisionnelle. En réalité SGBD et datawarehouse ont des objectifs différents. Ils
stockent les données de manière différentes et font l'objet de requêtes différentes. Ils sont
ainsi basés sur deux systèmes différents.

Page 10 of 19
▪ SGBD : Le mode de travail est transactionnel. L'objectif est de pouvoir insérer, modifier
et interroger rapidement et en sécurité la base. Ces actions doivent pourvoir être
effectuées très rapidement par de nombreux utilisateurs simultanément.
Chaque transaction travail sur de faibles quantités d'informations, et toujours sur les
versions les plus récentes des données.

▪ Les datawarehouses eux reposent sur le système OLAP (On Line Analytical Processing).
Ce système travail en lecture seulement. Les programmes consultent d'importantes
quantités de données pour procéder à des analyses. Les objectifs principaux sont
regroupés, organiser des informations provenant de sources diverses, les intégrer et les
stocker pour donner à l’utilisateur une vue orientée métier, retrouver et analyser
l’information facilement et rapidement. Cela nécessite de consulter des versions
historiques de la base et peut se permettre d'ignorer temporairement les dernières
mises à jour.
Il est important de séparer les bases de production (SGBD) du datawarehouse. Pour des
raisons de performances premièrement car les systèmes de production ne sont pas prévus
pour répondre efficacement aux requêtes des systèmes d'aide à la décision. De plus les
systèmes de production ne conservent pas leurs données, alors qu'un datawarehouse
reposent sur des données historisées. De plus un datawarehouse se reposent sur des
systèmes de production différents dont les données ne sont pas nécessairement
uniformisées

Page 11 of 19
Chapitre 2 : Nettoyage de données :

Indicateurs et mesures de la qualité des données :

La qualité des données est un terme générique décrivant à la fois les caractéristiques de
données : complètes, fiables, pertinentes et à jour, cohérentes mais aussi l’ensemble du
processus qui permet de garantir ses caractéristiques. Le but est d’obtenir des données sans
doublons, sans fautes d’orthographes, sans omission, sans variation superflue et conforme
à la structure définie. Les données sont dites de qualité si elles satisfont aux exigences de
leurs utilisateurs

Il faut préciser aussi que chaque organisme doit créer ses propres définitions
opérationnelles en fonction des objectifs et priorités, afin de définir des indicateurs pour
chacune des dimensions, et vérifier par des mesures régulières leur évolution dans le
temps.

Dimensions Caractéristiques Indicateurs


Les données sont-elles Nature/type/langue des
Interprétabilité compréhensibles par les données.
utilisateurs ?

Intégrité Les données sont-elles Indicateur de valeurs


toutes disponibles ? nulles.
Indicateur table de
Standardisation Les données sont-elles fréquence. Indicateur
écrites dans un format motif de fréquence des
standard ? données
Indicateur de valeurs
Duplication Les données sont-elles distinctes. Indicateurs de
répétées ? valeurs en doubles

✓ Chaque dimension peut être mesurée soit d’une manière subjective en recueillant la
perception des utilisateurs, ou bien d’une autre manière à travers du suivis
automatiques de ces indicateurs spécifiques. Dans notre cas, c’est la deuxième
méthode qui nous intéresse pour éviter des doublons.

Page 12 of 19
Problématique :

De nos jours les travaux sur l'extraction et la gestion de connaissance à partir de gros
volumes de données (contenus dans un entrepôt issu de sources hétérogènes et
distribuées), se basent principalement sur la recherche d'informations potentiellement
utiles et jusque-là inconnue.
La qualité de l'information recueillie dépend de ces données. Alors une bonne qualité des
données stockées dans les bases et entrepôts de données est devenue une nécessité
absolue Mais le problème qu’on face c’est que devant ces gros volumes, on trouve que les
données rassemblées aujourd’hui dans les entrepôts de données, contiennent de nombreux
problèmes tels que les données similaires et doublons.
Du coup, il est important de nettoyer ces données en éliminant les doublons et similaires
car sinon ça sera sure qu’on aura des conséquences de la non-qualité des données peuvent
être très coûteuses.
Le problème de l'élimination des données similaires est très difficile car en identifiant les
enregistrements dupliqués existants, il s’agit de vérifier la correspondance de l’ensemble
des données pour détecter, supprimer ces doublons de tel façon à enrichir en information
les enregistrements restants c’est-à-dire garantir une meilleure gestion de la qualité de
leurs données

Par exemple Étant donné n enregistrements et une fonction de similarité sophistiquée g qui
détermine si deux enregistrements sont équivalents, une naïve application de couplage
d'enregistrements s'exécuterait dans le temps Θ (t(g)n^2), où t (g) est le temps d'exécution
de g.
✓ C’est là où on s’intéresse à d’autre méthodes et algorithmes pour résoudre le
problème.

Algorithme de déduplication :

Devant la grande complexité lorsqu’on utilise des méthodes simples de détection de doublons
on peut voir la nécessité de limiter cette complexité. C’est dans ce contexte que l’approche du
blocage est apparue comme une révolution et solution qui va former un espace de recherche à
part entière.

Page 13 of 19
Blocage :
Les algorithmes de blocage utilisent une clé de blocage pour partitionner un ensemble
d'enregistrements en partitions disjointes blocs. La comparaison des paires d'enregistrements
est alors limitée aux enregistrements dans la même partition. Ainsi, le nombre global de
comparaisons est fortement réduit qui est l’objectif principal.
Une décision importante pour la méthode de blocage est le choix d'un bon partitionnement, qui
détermine le nombre et la taille des partitions. Il doit être choisi d'une manière que les doublons
potentiels sont regroupés dans la même partition.

La méthode devrait idéalement répondre aux exigences suivantes :


o Pas de fausse détection.
o Un minimum des fausses correspondances (haute précision).
o Des comparaisons peu nombreuses et bon marché (faible coût) .
o Peu ou pas d'interaction avec l'utilisateur (configuration facile).

Sorted-neighborhood method :

Le SNM est une technique d'indexation qui a été développée dans le but de réduire
Nombre de comparaisons entre les enregistrements candidats en cours de déduplication dans
une base de données ou entrepôts.
Étant donné une collection de deux bases de données ou plus, nous commence par la
concaténation d'abord en une seule liste de N enregistrements, puis appliquez la SNM.
On peut dire que la méthode peut être résumé en trois phases principales :

 Créer des clés :


La création d’une clé pour chaque enregistrement de la liste. Le choix de la clé dépend
d'un « modèle d’erreur » qui peut être considéré comme exigeant en termes de
connaissances et propre à un domaine ; L'efficacité de la méthode dépend fortement
d'une clé correctement choisie avec l'intention que les données communes mais
erronées aient des clés correspondantes.

 Trier les données :


Trier les enregistrements de notre liste de données à l'aide de la clé générée pendant
l’étape précédente.

Page 14 of 19
 Phase de comparaison :
On glisse une fenêtre de taille fixe sur la liste séquentielle d'enregistrements limitant les
comparaisons des enregistrements correspondants à ces enregistrements qui sont dans
la fenêtre.
Si la taille de la fenêtre est de w enregistrements, alors chaque nouvel enregistrement
entrant dans la fenêtre est comparé aux w - 1 enregistrements précédents pour trouver
des enregistrements doublons.

Figure 6 : concept de SNM


En supposant que la base de données triée contient n enregistrements, l'étape de tri du SNM a
une complexité de O (n log (n)), tandis que l'étape de comparaison est O (w × n).

Variante de SORTED NEIGHBOURHOOD METHOD :


Nous proposons d’accélérer le traitement du SNM à l’aide des algorithmes d’apprentissage
supervisé SNM progressive.
Le PSNM utilise l’intuition de faire varier itérativement la taille de la fenêtre glissante, en
commençant par une petite fenêtre de taille deux qui nous permet d’une façon plus rapide de
trouver les enregistrements doublons.
L'algorithme PSNM diffère au niveau de la modification dynamique de l’ordre d'exécution des
comparaisons basé sur des résultats intermédiaires.

Page 15 of 19
L'algorithme prend cinq paramètres d’entrée :
D est une référence aux données, qui n'a pas encore été chargé à partir du disque.
La clé de tri K définit l'attribut ou la combinaison d'attributs qui doit être utilisé dans l'étape de
tri.
W spécifie la taille maximale de fenêtre, qui correspond à la taille de la fenêtre de la
traditionnelle SNM.

Le paramètre I définit l'intervalle d'agrandissement pour les itérations progressives.


Le dernier paramètre N spécifie le nombre d'enregistrements dans l'ensemble de données.

Paramètres : Les données D, clé de tri K, taille de la fenêtre W, taille de l'intervalle


d'agrandissement I, nombre d'enregistrements N.

1. procedure PSNM(D, K, W, I, N)
2. pTaille  calcTaillePartition(D)
3. pNum  [N/pTaille-W+1]
4. array liste-tri Taille N : Entier
5. array recs size pTaille : Enregistrement
6. liste-tri  sortProgressive(D, K, I, pSize, pNum)
7. for currentI  2 to [W/I] do
8. for currentP  1 to pNum do
9. Recs  loadPartition(D, currentP)
10. for dist in range(currentI, I, W) do
11. for i  0 to |recs|- dist do
12. Pair  <recs[i] ; recs[i+ dist]>
13. if compare(pair) then
14. emit(pair)
15. lookAhead(pair)

Page 16 of 19
Dans de nombreux scénarios pratiques, l'ensemble de données ne rentrera pas dans la
mémoire principale, pour des raisons liées aux limitations de ressources. Pour résoudre ce
problème, PSNM opère sur une partition de l'ensemble de données à la fois.
L'algorithme PSNM calcule une taille de partition appropriée pTaille, c'est-à-dire le nombre
maximum d'enregistrements qui tiennent en mémoire, en utilisant la fonction
d'échantillonnage pessimiste calcTaillePartition (D).
À la ligne 2 : si les données sont lues à partir d'une base de données, la fonction peut calculer
la taille d'un enregistrement à partir des types de données et faire correspondre cela aux
données disponibles dans la mémoire principale. Sinon, il prend un échantillon
d'enregistrements et estime la taille d'un enregistrement avec les valeurs les plus élevées pour
chaque champ.

Dans la ligne 3, l'algorithme calcule le nombre de partitions nécessaires pNum, tout en


considérant une partition des enregistrements W-1 pour faire glisser la fenêtre sur leurs limites.

La ligne 4, définit la liste-tri, qui stocke l’ordre des enregistrements par rapport à la clé donnée
K. En stockant uniquement les ID des enregistrements dans ce tableau, nous supposons qu'il
peut être conservé en mémoire.

À la ligne 5 on déclare le tableau recs pour conserver les enregistrements réels d'une partition
actuelle.

À la ligne 6, le PSNM trie l'ensemble de données D par clé K. le tri se fait en appliquant notre
algorithme de tri progressif.

Ligne 7, PSNM augmente linéairement la taille de la fenêtre de 2 à la taille de fenêtre maximale


W par pas de I. De cette façon, les voisins proches prometteurs sont sélectionnés en premier et
des voisins lointains moins prometteurs plus tard. Pour chacun de ces itérations progressives, le
PSNM lit l'ensemble des données une seule fois.
Ligne 8, Puisque le processus de chargement est effectué par partition, PSNM itère
séquentiellement et charge (ligne 9) tout partitions.

Ligne 10 : Pour traiter une partition chargée, le PSNM effectue d'abord une itération globale
des distances de classement des enregistrements dist qui se trouvent dans l’intervalle de
fenêtre actuel currentI.
Dans la ligne 11,12, le PSNM répète ensuite tout enregistrements dans la partition actuelle
pour les comparer à leur dist-voisin. La comparaison est exécutée à l'aide de la fonction
compare (pair) de la ligne 13. Si cette fonction renvoie « Vrai », un duplicata a été trouvé et
peut être émis.
De plus, le PSNM évoque la méthode lookAhead (pair), que nous expliquons plus tard, pour
rechercher progressivement plus de doublons dans le voisinage actuel. Si non résilié tôt par

Page 17 of 19
l'utilisateur, le PSNM se termine lorsque tous les intervalles ont été traité et la taille maximale
de la fenêtre W a été atteint.
lookAhead : Après avoir trié les données d'entrée, nous trouvons des zones de densité de
doublons élevée et faible, en particulier en cas de doublons se produisent dans de plus grands
groupes, c'est-à-dire des groupes d'enregistrements qui sont tous doublons par paire. La
stratégie Look-Ahead utilise cette observation pour ajuster le classement des candidats de
comparaison à l’exécution : Si la paire d'enregistrements (i ; j) a été identifié comme un double,
alors les paires (i +1 ; j) et (i ; j + 1) ont de grandes chances d'être des doublons du même
cluster. Par conséquent, le PSNM les compare immédiatement au lieu d'attendre le suivant
itération progressive. Si l'une des comparaisons prospectives détecte un autre doublon, une
analyse supplémentaire est récursive réalisé. De cette façon, le PSNM parcourt les grands
quartiers autour des doublons pour révéler progressivement des clusters entiers. À éviter les
comparaisons redondantes dans différentes perspectives ou une itération progressive suivante,
PSNM maintient toutes les comparaisons exécutées dans une structure de données temporaire.
Ce le comportement est implémenté par la fonction lookAhead(pair) dans Ligne 15 de notre
implémentation PSNM. Depuis le regard vers l'avenir fonctionne récursivement, il peut
effectuer des comparaisons au-delà de la taille de fenêtre maximale donnée W. Par
conséquent, il peut trouver des doublons qui ne peuvent pas être trouvés par le traditionnel
SNM.
Cache de partition. Comme nous ne pouvons pas supposer que l'entrée est triée physiquement,
l'algorithme doit réitérer à plusieurs reprises l'ensemble du fichier en recherchant les
enregistrements de la partition suivant, qui contient les candidats de comparaison les plus
prometteurs actuellement. Ainsi, tous les enregistrements doivent être lus lors du chargement
de la partition suivante.
Pour surmonter ce problème, nous a implémenté la mise en cache de partition dans
loadPartition(D, currentP) dans la ligne 9 : Si une partition est lue pour la première time, la
fonction collecte les enregistrements demandés à partir du ensemble de données d'entrée et
les matérialise dans un nouveau, dédié fichier cache sur le disque. Lorsque la partition est
demandée ultérieurement encore une fois, la fonction le charge à partir de ce fichier cache,
réduisant le les coûts des opérations d’E / S supplémentaires de PSNM (et d’éventuels efforts
d’analyse sur l’entrée de fichier).

Page 18 of 19
Conclusion :
Le temps nécessaire pour trouver le plus de doublons dans la méthode de voisinage trié
progressif est inférieur à celui du SNM traditionnel.
Pour tout instant arbitraire auquel des résultats sont nécessaires, la sortie d'un algorithme SNM
progressif sera plus grande que la sortie de son algorithme SNM traditionnel correspondant.
À cette fin, notre algorithmes PSNM ajuste dynamiquement le comportement en choisissant
automatiquement les paramètres optimaux, par exemple, la taille des fenêtres, la taille des
blocs et les clés de tri, rendant leur spécification manuelle superflue.
De cette façon, nous facilitons considérablement la complexité du paramétrage pour la
détection des doublons en général et contribuer au développement de plus d'applications
interactives pour les utilisateurs.

Figure 7 : Comparaison entre SNM traditionnelle et Progressive SNM

Page 19 of 19