Kadia Rapport-Fin Last

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 46

République de Côte d’Ivoire

Union – Discipline – Travail

TRANSFORMATION, MEMOIRE DE MIGRATION


FIN DE CYCLE DE BASE
En vue de l’obtention du Diplôme de Master Data Science / Big Data
DE DONNEES ET REFONTE DE
L’ALGORITHME
Thème Mémoire : DE REGROUPEMENT
DES CLIENTS

Présenté par :

KADIA Essan Amelan Armelle-Déborah

Encadreurs Pédagogique Sous la supervision de

Prof. BROU Konan Marcellin Mme MESSBAH Hind


Maître de Conférences Data Engineer
Laboratoire de Recherche en Informatique
et Télécommunication (LARIT)
Mme NAJIMI Mariem
Data Engineer
Prof. GASSO Gilles
INSA Rouen
Laboratory LITIS Année Académique : 2019 – 2020
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

DEDICACE

A mes parents,
Plus que pour eux, je dois réussir ;
A ma famille.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 I
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

REMERCIEMENTS
Cette œuvre n'aurait jamais été possible sans le concours de nombreuses personnes.
Les actions remarquables des uns, ainsi que le soutien et l’expertise des autres ont laissé leur
empreinte sur ce mémoire.
Nos premiers mots de remerciements vont à l'endroit de Saham Assurance, filiale du
Groupe Sanlam Pan Africa, et des institutions de formation notamment, la Fondation X
Polytechnique et l 'Ecole X Polytechnique de Paris, l’INP-HB de Yamoussoukro et l'ENSAE
d'Abidjan. Elles ont fortement œuvré pour l’aboutissement de ce travail.
A nos encadreurs de Mémoire Messieurs BROU Konan Marcellin et GASSO Gilles
respectivement Maître de Conférences et Professeur, qui nous ont accordé une partie de leur
précieux temps, de leur esprit critique et surtout de leurs sens de l’écoute et de l’orientation.
Nous remercions également l’ensemble de l’équipe de la Digital Factory managée par
Monsieur BEDREDDINE Hicham et particulièrement l’équipe de la Data Factory dirigée par
Madame BERRADA Meriem pour l’accueil.
De même, nous remercions Monsieur JAMAL BENNIS Zouhair, Coach Agile, ainsi
que Mesdames MESSBAH Hind et NAJIMI Mariem, Data Engineers, pour leur aide lors de
la recherche des méthodes.
Nos sincères remerciements vont aussi à l’endroit du Directeur de l’IDSI
(International Data Science Institute) Monsieur TANOH Tanoh Lambert pour son amour du
travail et son charisme qui ont su éveiller en nous le sens de la responsabilité et du leadership.
Par ailleurs, nous tenons à exprimer notre profonde reconnaissance à Monsieur TANON
Kadjo Lambert, Directeur des études à l’INP-HB de Yamoussoukro, et à l’ensemble de ses
collaborateurs qui ont déployé des efforts pour nous assurer, non seulement, une formation de
qualité, mais surtout, des valeurs cardinales notamment, le savoir-faire, le savoir-être et le
goût du travail bien fait.
Enfin, à nos parents et nos amis, nos sincères remerciements pour votre aide si
remarquable ; vos précieux conseils et votre affection inconditionnelle nous ont donné la
force pour réaliser ce travail.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 II
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

AVANT-PROPOS

Ce document est rédigé dans le cadre du stage de fin de cycle de la formation des
Etudiants de Master en Data Science – Big Data de l’International Data Science Institute
(IDSI).
En effet, ce stage qui s’est effectué à la Digital Factory de Saham Assurance au Maroc
(par télétravail) est un lieu collaboratif, inventif et startuppeur de solutions innovantes en
faveur des assurés. Saham Assurance dont la maison mère Saham Finance a pour actionnaire
stratégique le sud-africain Sanlam.

Dans le cadre des projets que réalise la Digital Factory, il nous a été confié sous
l’encadrement de Mesdames MESSBAH Hind et NAJIMI Mariem, « la transformation,
migration de base de données et refonte de l’algorithme de regroupement des clients ».
Dans ce contexte, nous nous sommes efforcés de rester aussi fidèles que possible aux
objectifs que la structure souhaite atteindre en écrivant ce protocole d’étude.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 III
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

SOMMAIRE
DEDICACE ------------------------------------------------------------------------------------------------- I

REMERCIEMENTS -------------------------------------------------------------------------------------- II

AVANT-PROPOS---------------------------------------------------------------------------------------- III

SOMMAIRE ----------------------------------------------------------------------------------------------IV

LISTE DES ILLUSTRATIONS ------------------------------------------------------------------------- V

SIGLES ET ABREVIATIONS -------------------------------------------------------------------------VI

RESUME -------------------------------------------------------------------------------------------------VII

ABSTRACT ----------------------------------------------------------------------------------------------VII

INTRODUCTION GENERALE ------------------------------------------------------------------------ 8

Chapitre 1 : ETUDE PREALABLE ------------------------------------------------------------------- 10

INTRODUCTION ------------------------------------------------------------------------------------- 10

I- PRESENTATION DE LA STRUCTURE D’ACCUEIL ----------------------------------- 10

II- DESCRIPTION DETAILLEE DU METIER ET DES DONNEES-------------------- 15

III- ETUDE DE L’EXISTANT (ALTERYX) ------------------------------------------------- 18

CONCLUSION ---------------------------------------------------------------------------------------- 19

Chapitre 2 : FUZZY MATCHING / CONCEPTS ET APPLICATIONS ------------------------ 20

INTRODUCTION ------------------------------------------------------------------------------------- 20

I- EXPLICATION DU PROCESSUS DE FUZZY MATCHING --------------------------- 20

II- METHODOLOGIE ET IMPLEMENTATION DU FUZZY MATCHING ---------- 22

III- REGLES METIERS : ARBRE DE DECISION ------------------------------------------ 36

IV- ÉVALUATION ET RESULTATS --------------------------------------------------------- 37

CONCLUSION ---------------------------------------------------------------------------------------- 40

CONCLUSION GENERALE------------------------------------------------------------------------ 41

REFERENCES-------------------------------------------------------------------------------------------- 42

TABLE DES MATIERES ------------------------------------------------------------------------------ 43

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 IV
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

LISTE DES ILLUSTRATIONS

Liste des Figures

Figure 1 : Equipe de la Digital Factory .................................................................................... 11


Figure 2 : Etapes du Data cleaning........................................................................................... 23
Figure 3 : [6] Formule TF-IDF ................................................................................................. 30
Figure 4 : Schéma descriptif de l’application des algorithmes de fuzzy matching .................. 35
Figure 5 : arbre de décision ...................................................................................................... 36
Figure 6 : Tableau comparatif des algorithmes en temps d’exécution et qualité de résultat ... 38

Liste des Tableaux

Tableau 1 : Exemple de données .............................................................................................. 21


Tableau 2 : Extraction du jeu de données ................................................................................ 21
Tableau 3 : Résultat du FuzzyWuzzy avec une similarité > 0.8 sur l’extraction faite ............ 27
Tableau 4 : Résultat du Jaro Winkler avec une similarité > 0.8 sur l’extraction faite ............. 29
Tableau 5: Extrait d'une partie de la matrice clairsemée générée dans notre cas de figure ..... 32
Tableau 6 : Resultat de la similitude cosinus ........................................................................... 34
Tableau 7 : Résultat du N-gramme ; TF-IDF ; Similitude cosinus avec une similarité > 0.8 sur
l’extraction fait ......................................................................................................................... 35
Tableau 8 : output final la colonne new_code qui représente les identifiants .......................... 37

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 V
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

SIGLES ET ABREVIATIONS

DOB BL Date of birth blacklisté (Représente la date de naissance de l’agent lors de la

souscription du contrat d’assurance du client).

BL Blacklisté

DF Digital FACTORY

CIN BL Carte nationale d'identité blacklisté (Numéro saisi au hasard par un agent lors

de la souscription du contrat d’assurance du client).

FM Fuzzy matching

FN First Name

ID identifiant

IARD incendie, accidents et risques divers

IDE integrated development environment

HBL Hors blacklisté

LD Levenshtein Distance

LN Last Name

SPA GI Sanlam Pan-Africa General Insurance

UCID Identifiant Unique Clients

UNID Identifiant Unique Polices

VEH_REGISTRATION2 Immatriculation de véhicule

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 VI
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

RESUME
La gestion de la prolifération des données devient aujourd'hui de plus en plus
complexe. Certes, les entreprises disposent d’un ensemble de systèmes commerciaux internes
et externes dont elles se servent pour collecter et pour stocker leurs informations. Mais, ils
restent, à la vérité, tous disparates. Le véritable problème auquel fait face toute personne qui
tente d’intégrer ces données est l’absence de clé ou d’un ensemble de variables clés
permettant de les réunir. Et pourtant, ces données devront à un moment donné être intégrées
tout en veillant à ce que les doublons soient identifiés et que les nouvelles données soient
intégrées sans compromettre la qualité de celles qui existaient déjà.
Normalement, la mise en correspondance des données entre ensembles de données
consiste à fusionner ou à joindre deux ou plusieurs ensembles de données sur un ensemble de
clé(s) connue(s) et fiable(s).
Pour y parvenir, nous nous servirons de la correspondance floue (Fuzzy Matching) qui
est le processus par lequel les données sont jointes ensemble sur une ou plusieurs variables.
En d’autres termes, le Fuzzy Matching est la mise en œuvre de processus algorithmiques pour
identifier les doublons non identiques d'un ensemble de données tels que des noms
d'entreprises, des noms de personnes ou des informations sur les adresses en spécifiant des
champs de correspondance et des seuils de similitude définis.

ABSTRACT
Managing data proliferation today is becoming increasingly complex. Companies
often have a multitude of disparate internal and external business systems that collect and
store information. At some point, this data will need to be integrated while ensuring that
duplicate data is identified and new data is integrated without compromising the quality of
existing data. One of the major problems faced by anyone attempting to integrate these data is
the absence of any key or set of key variables to bring them together.
Normally, data matching between data sets involves merging or joining two or more
data sets on a known and reliable set of key(s). However, Fuzzy Matching is the process by
which data are joined together on one or more variables.
In simple terms, Fuzzy Matching is the implementation of algorithmic processes to
identify non-identical duplicates of a data set such as company names, personal names or
address information by specifying defined match fields and similarity thresholds.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 VII
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

INTRODUCTION GENERALE
Contexte
Parfois, les données concernant une personne ou une entreprise ou encore une entité
sont disponibles auprès de plusieurs sources. De ce constat, comment fusionner des
informations provenant de différentes sources ?
Dans un monde idéal (pour les utilisateurs de la data), toutes les données sources
partageraient un identifiant unique et commun pour chaque personne, entreprise ou autre
entité. Il arrive souvent qu’il n'y a pas d'identifiant unique. La combinaison de différentes
sources de données doit alors se faire sur la base de noms, d’adresses ou autres identifiants.
Ces identifiants ne sont toujours pas les mêmes, bien qu’ils puissent se référer à la même
personne ou à la même entité. Il s'agit d'un problème standard appelé "fuzzy matching" [1]
qui représente ainsi une problématique à part entière. Il est fréquemment utilisé pour effectuer
la "correspondance floue", c’est-à-dire, pour rechercher des correspondances approximatives
au sein d'une même source de données.
La plupart des algorithmes de fuzzy matching se heurtent à plusieurs problèmes
résultant de l'accroissement de la taille des données tels que les problèmes de fiabilité des
résultats et de performance en temps d'exécution des algorithmes mais également en espace
mémoire.
L’opération du fuzzy matching nécessite donc l’examen d’un immense espace de
recherche pour trouver les correspondances plausibles. Un défi majeur dont la minutie
permettra de les traiter.

Contributions
L’objectif principal de cette étude est de développer une solution qui vise à déterminer
les correspondances entre les données reçues quotidiennement d’extractions du système
d’information métier tout en préservant la qualité des résultats et un temps d’exécution
acceptable afin de regrouper ou d’ajouter de nouveaux clients.
Cette solution doit être capable de fédérer une méthodologie de matching qui constitue
l’essentiel de notre contribution à une démarche d’évaluation explicitée.
La méthodologie se décline ainsi en trois phases, à savoir :
- La phase de la préparation du Fuzzy Matching,
- La phase du Fuzzy Matching
- La phase du Post Fuzzy Matching.
D’abord, la phase de préparation du Fuzzy Matching consistera à préparer les données

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 8
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

pour le matching. Ensuite, la phase de Fuzzy Matching nous permettra de déterminer les
correspondances entre les données résultant de la phase précédente afin de regrouper des
clients ou d’ajouter de nouveaux clients. Finalement, la phase de Post Fuzzy Matching aura
pour but de fiabiliser les données reçues sur les clients.

Organisation du mémoire

Notre mémoire est organisé en deux chapitres. Le chapitre 1 est dédié à l’étude
préalable. Dans ce chapitre, il sera question de la présentation de la structure d’accueil puis, la
description détaillée du métier, du thème et, enfin, l’étude de l’existant.
Le chapitre 2 sera quant à lui consacré à l’analyse des principes du fuzzy matching,
ainsi que les différentes approches de fonctions de base utilisées pour déterminer les
correspondances entre les données et l’arbre de décision pour catégoriser et identifier les
personnes.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 9
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Chapitre 1 : ETUDE PREALABLE

INTRODUCTION
Ce chapitre permettra, d’une part, de présenter notre cadre d’étude et d’analyser les
concepts clés relatifs à la problématique du sujet. D’autre part, nous examinerons, le cahier de
charges, ainsi que la méthode de travail et l’étude de l’existant.
Le plan de ce chapitre est donc simple. Nous présenterons, d’abord, la structure
d’accueil. Ensuite, il sera question de la description détaillée du métier et des données. Enfin,
nous conclurons par l’étude de l’existant.

I- PRESENTATION DE LA STRUCTURE D’ACCUEIL

Sanlam Pan-Africa General Insurance (SPA GI) est le pôle d’activités


de Sanlam Group chargé de la gestion des services financiers sur les
marchés émergents (hors Afrique du Sud).
3 400 collaborateurs
Sanlam Pan-Africa General Insurance opère dans trois (3) domaines d’activité
notamment : l’Assurance (Vie et Non-Vie) & Réassurance, l’Assistance et la Tierce Gérance
(TPA). Leader panafricain de l’assurance et acteur continental de référence, SPA GI
représente aujourd’hui trente-sept (37) compagnies d’assurance et réassurance dans trente
(30) pays.
Filiale du groupe SPA GI, Saham Assurance est, non seulement, le premier assureur
auto au Maroc et en Côte d’Ivoire, mais également, le premier assisteur automobile en
Afrique. Son leadership se traduit notamment par une anticipation permanente des attentes du
marché et par une démarche d'innovation appropriée et ciblée.
Ainsi, dans le but de répondre aux nombreuses attentes de sa clientèle (professionnelle
et particulière), Saham Assurance Maroc a décidé de créer la Digital Factory (DF) pour
mettre à profit sa connaissance approfondie du marché et pour répondre aux exigences
singulières de ses assurés, en leur proposant des solutions idoines. De ce fait, la DF a mis en
place la Méthode Agile pour permettre la transformation organisationnelle dans la gestion des
projets.
Il apparaît donc nécessaire de comprendre le système de la Digital Factory (DF) avant
d’aller plus loin. Nous présenterons les composantes suivantes :

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 10
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

1- L’organigramme de la Digital Factory,


2- Le rôle et la mission de chaque pôle,
3- La Méthodologie Agile et
4- L’environnement de travail.

Equipe de la digital factory

Eu égard à la diversité de son activité, l’entreprise est répartie en plusieurs entités.


Figure 1 Equipe de la Digital Factory

1. Rôle et missions de chaque pôle

• Transverse : Cette équipe assurent la bonne conduite des projets

• Sinistres : Equipe en charge de transformer la gestion des sinistres, aussi bien à


travers la refonte de gestion des parcours de gestion des sinistres matériels et
corporels, que dans la structuration de l'écosystème de partenaires (par ex. garagistes,
experts automobiles, avocats, ...) afin d'améliorer l'expérience client final tout en
réduisant les coûts.

• Fraude : Equipe en charge de transformer la gestion de la Fraude chez Saham, aussi


bien pour la fraude sur sinistres matériels, sur sinistres corporels et fraude à la
souscription.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 11
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

• Business : Equipe focalisée sur la partie acquisition des clients, en charge de


transformer l'Entrée en Relation, l'expérience de souscription des clients et de mettre
en place le modèle opérationnel de gestion du renouvellement.

• Data Factory : source de valeur fondamental de la Digital Factory qui, met à


disposition l'ensemble des données à chaque use-case pour exposer les données,
facilite la prise de décision (reporting, business intelligence) et crée de l'intelligence
métier (Advanced Analytics / Machine Learning).

Notre stage s’est déroulé au sein de la team Data Factory dirigée par Madame
BERRADA Meriem. Cette team est composée de 3 sous équipes à savoir : les data scientists,
les data enginneer et les data analyst.

2. Méthodologie Agile

La méthode Agile est une organisation de travail en cycles courts, elle permet aux
équipes de développement de gérer un produit de manière souple, adaptative et itérative.
Le principe de base est que les équipes avancent ensemble et sont toujours prêtes à
réorienter le projet au fur-et-à-mesure de sa progression. Toutes les équipent travaillent en
synergie par la méthode Scrum qui s'appuie sur le découpage du projet en tranches de temps,
nommées « sprints ». Cette méthode se compose des éléments fondamentaux que sont les
rôles, les évènements et les artefacts.

a. Rôles Scrum
L'équipe Scrum est auto organisée et pluridisciplinaire, c'est-à-dire qu'elle choisit la
meilleure façon d’accomplir son travail et possède toutes les compétences nécessaires à
l'accomplissement du projet. La flexibilité, la créativité et la productivité de l'équipe sont ainsi
optimisées.
Une équipe Scrum se compose d’:
• un Scrum Master
• un Product Owner
• une équipe de développement

➢ Le Scrum Master
C’est un facilitateur qui aide à améliorer la communication au sein de l’équipe et cherche
à maximiser la productivité et le savoir-faire de celle-ci. Il est considéré comme le coach de

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 12
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

l'équipe de développement.

➢ Le Product Owner
Il porte la vision du produit à réaliser. Il établit la priorité des fonctionnalités à développer
ou à corriger, et qui valide les fonctionnalités terminées.

➢ L'équipe de développement
Cette équipe est chargée de transformer les besoins définis par le Product Owner en
fonctionnalités utilisables. Elle est pluridisciplinaire et possède toutes les compétences
nécessaires pour réaliser le projet. Il n'y a pas de notion de hiérarchie, toutes les décisions sont
prises ensemble.

b. Evènements Scrum

La vie d'un projet Scrum est rythmée par un ensemble de réunions définies avec précision
et limitées dans le temps.

➢ Le Sprint
Un Sprint est un intervalle de temps maximum pendant lequel une version terminée et
utilisable du produit est réalisée. Chaque sprint a un objectif et une liste de fonctionnalités à
réaliser.

➢ Planification d'un Sprint


Les tâches à accomplir pendant le Sprint sont déterminées par l'ensemble de l'équipe
Scrum lors de la réunion de planification de Sprint. La durée de cette réunion est limitée à 8
heures pour les Sprints d'un mois. Cette réunion permet à l'équipe d'établir les éléments
qu'elle traitera au cours de ce Sprint et comment elle procédera.

➢ Revue du Sprint
Il s'agit du bilan du Sprint réalisé. Une fois le Sprint terminé, l'équipe Scrum et les parties
prenantes se réunissent pour valider ce qui a été accompli pendant le Sprint.

➢ Rétrospective du Sprint
Le but est l'adaptation aux changements qui peuvent survenir et l'amélioration continue du
processus de réalisation.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 13
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

➢ Mêlée quotidienne
Cette réunion quotidienne de 15 à 30 minutes est très importante. Il peut en avoir deux
c’est-à-dire une en début de journée et l’autre en fin comme c’est le cas au sein de la Data
Factory. Le but est de faire un point sur la progression journalière du Sprint.

c. Artefacts Scrum

➢ Le Product backlog
Il s'agit d'une liste hiérarchisée des exigences initiales du client concernant le produit à
réaliser.

➢ Le Sprint backlog
C'est le plan détaillé de la réalisation de l'objectif du Sprint, défini lors de la réunion de
planification du Sprint.

➢ L'incrément
Il s'agit de l'ensemble des éléments terminés du Product backlog pour le Sprint en cours,
ainsi que ceux des Sprints précédents. L'incrément doit fonctionner et être utilisable.

➢ Le Burndown chart
Ce graphique simple indique l'état d'avancement dans la réalisation des tâches du Sprint
backlog. Le Burndown Chart est actualisé tous les jours par le Scrum Master après la mêlée
quotidienne. Dans le cas de la Digital Factory une application « Jira Software » permet
d’avoir pour chaque membre de l’équipe, une visibilité de ses tâches à accomplir, ses tâches
en cours et celles qui doivent être testées ou validées et donc considérées comme achevées.

3. Environnement de travail

Prévu initialement être exécuté en présentiel dans les locaux de la Digital Factory (DF)
de Saham Assurance au Maroc, notre stage n’a pu finalement s’effectuer en distanciel
(Abidjan, Côte d’Ivoire) par la méthode du télétravail, en raison de la pandémie du Covid-19.
Une première difficulté à laquelle nous avions réussi à surmonter grâce à la sollicitude et au
professionnalisme de la DF.
Afin de mieux accomplir nos tâches, nous avions utilisé, comme outil de travail au
niveau hardware un ordinateur portable de marque Lenovo de caractéristiques 12 Go de
RAM, processeur Intel(R) Core (TM) i5-6300U CPU @ 2.40GHz, 2496 MHz ; au niveau

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 14
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

software, on a profité de l’IDE Jupyter Notebook. Les langages de programmation utilisés


sont Python et Pyspark.

Par ailleurs, la description détaillée du métier et des données fera l’objet de la suite de notre
étude.

II- DESCRIPTION DETAILLEE DU METIER DE


L’ASSURANCE ET DES DONNEES

Dans ce travail, il nous sera permi de définir les différents concepts, d’indiquer la
provenance des données utilisées et de présenter le cahier des charges.

1- Définition des concepts

➢ Assurance
Une assurance est un moyen permettant à une personne appelée « l'assuré » de gérer les
risques et de bénéficier du secours de l'assureur en cas de survenance d'un sinistre.

➢ Assurance vie
L'assurance-vie est une forme d'assurance dont l'objet est de garantir le versement d'une
certaine somme d'argent (capital ou rente) lorsque survient un événement lié à l'assuré : son
décès ou sa survie.

➢ Assurance automobile
Le contrat assurance automobile est une assurance obligatoire qui a pour but de garantir
le conducteur d'un véhicule automobile contre les conséquences des dommages matériels ou
corporels causés par son véhicule à des tiers.

➢ IARD (incendie, accidents et risques divers)


Le terme englobe toutes les assurances dommage en général. Ce type de contrat
d'assurance concerne uniquement la protection des biens, contrairement à ceux portant sur les
personnes (accident, décès...). Les assurances habitation ou automobile, par exemple, font
partie de cette catégorie. Parmi les assurances IARD destinées aux professionnels, on trouve
notamment les assurances multirisques professionnelles ou encore les assurances auto pro.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 15
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

➢ Assistance automobile
L'assistance automobile consiste à apporter une aide ou un secours à un automobiliste qui
se trouve dans une situation problématique : panne, accident de voiture, etc. L'assistance
auto est considérée comme un soutien logistique.

➢ Police

Une police d'assurance est un document contractuel qui fixe les conditions
d'engagements de l'assureur à l'égard de l'assuré ou d'un groupe d'assurés.

➢ Contrat flotte
Lorsqu’il s’agit d’un contrat Flotte Entreprise, tous les véhicules sont liés à un seul client
principal et les conducteurs ne sont pas nommés.
FICHE CLIENT = 1 seule client = l’Entreprise

➢ Avenant
Modification d’un contrat d’assurance pour donner suite à un changement de situation tel
qu’un changement de véhicule ou un déménagement, permettant de modifier le contrat sans le
réécrire entièrement.

➢ Data lake
Concept lié à la mouvance du big data, le data lake désigne un espace de stockage global
des informations présentes au sein d'une organisation. Il permet de stocker de gros volumes de
données brutes et hétérogènes dans leur format natif.

➢ Dataframe (DF)
Tableaux de données.

➢ Data Warehouse
Les Data Warehouse ou entrepôts de données sont des bases de données permettant de
stocker des données historiques structurées non volatiles orientées sujet afin de les analyser.

➢ ETL (Extract Transform Load)


Un ETL est d’un type de logiciel permettant de collecter des données en provenance de
sources multiples pour ensuite les convertir dans un format adapté à une Data Warehouse.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 16
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

2- Les données utilisées


Les données de cette étude proviennent d’extractions quotidiennement en delta
(Historique de 3 jours) reçues du système d’information métier, stockées au niveau du
datalake.

3- Présentation du cahier des charges

Les données étant reconnues comme un actif stratégique de toutes les entreprises, elles
constituent aujourd’hui un enjeu majeur pour le groupe Saham. A cet effet, dans le but de
fiabiliser les données reçues chaque jour en delta (Historique de 3 jours) à partir d’extraction
du système d’information métier, on les stocke au niveau du datalake pour appliquer les
différents processus de Fuzzy Matching (Recherche approximative ou floue). Ces processus
ont pour objectif de classifier, de rapprocher les données selon les différents critères et règles
de métier. Ce rapprochement sert à identifier les doublons non identiques d’un jeu de données
en spécifiant les champs de correspondance et les seuils de similitude.

3-1- Objectif du projet

- L’objectif principal
L’objectif principal de cette étude est de développer une solution qui vise à déterminer
les correspondances entre les données reçues chaque jour en delta (Historique de 3 jours)
d’extractions du système d’information métier tout en préservant la qualité des résultats et
un temps d’exécution moins chronophage que l’existant afin de regrouper ou d’ajouter un
nouveau client.

- L’objectif spécifique
• Etudier les algorithmes de regroupements utilisant des calculs de distances
(Levenshtein distance, Damerau Levenshtein distance, Jaro distance, …)
• Benchmarker les algorithmes tels que Jaro-Winkler ; FuzzyWuzzy ; TF-IDF,
N-grammes, similitude cosinus qui permettront une amélioration de l’existant
• Implémenter la solution optimale.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 17
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

3-2- Méthodologie

1. Préparation du Fuzzy Matching : Dans cette étape, le processus Pre-FZM extrait les
données reçues du datalake, classifie les données, et différencie les polices monos et
flottes. Il ajoute aussi les UNID (identifiants uniques aux polices).

2. Fuzzy Matching : permet de regrouper des clients ou d’ajouter de nouveaux clients.

3. Post Fuzzy Matching : Ici le processus post Fuzzy matching classifie la fiabilité des
données reçues des clients, rapproche les polices en différenciant les souscriptions des
renouvellements, et finalement alimente les tables sur Valeur Client.

III- ETUDE DE L’EXISTANT (ALTERYX)

Le logiciel Alteryx est notre existant dans cette étude. Nous allons donc le présenter et
indiquer ses limites.

- Qu’est-ce que Alteryx ?


Alteryx est un éditeur de solutions informatiques de Business Intelligence basé en
Californie (États-Unis). Il propose une gamme d'outils essentiellement centrés sur la question
de l'analytique notamment, la collecte et l’analyse des données. Grâce à la suite d’outils, les
entreprises peuvent facilement agréger des données en provenance de sources multiples et de
procéder à leur analyse.

- Quels sont les outils de la suite Alteryx ?


La suite d’outils Alteryx comprend trois produits différents : Alteryx Designer,
Alteryx Server, et Alteryx Analytics Gallery.
Alteryx Designer est un outil bureautique permettant aux utilisateurs de procéder à des
analyses prédictives, à du reporting ou encore à des visualisations des données.
Le second outil, Alteryx Server, est un produit basé serveur offrant aux entreprises une
architecture scalable et hautement disponible. Le dernier outil, Alteryx Analytics Gallery, est
une application Cloud permettant principalement de partager des modèles et des applications
analytiques avec les partenaires, les clients, ou encore les fournisseurs de l’entreprise.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 18
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

- Alteryx : prix et disponibilité des différents outils


Les prix d’Alteryx sont basés sur des contrats annuels. Il est toutefois possible de
profiter de prix plus avantageux en optant pour un contrat d’une durée de trois ans.
L’outil bureautique Alteryx Designer est tarifé à 5195 euros par an et par utilisateur.
L’outil Alteryx Server, quant à lui, est proposé à 58500 euros par an pour un serveur à quatre
CPU. Enfin, l’application Cloud Alteryx Gallery est tarifée à 1950 euros.
Il est possible de se procurer les outils analytiques Alteryx directement auprès de
l’entreprise ou par le biais de revendeurs agréés. Notons qu’une version d’essai de 14 jours est
disponible.

Des trois suites, celui utilisé par la DF est Alteryx Designer. Ce logiciel permet de
faire la correspondance floue (fuzzy matching) en utilisant les fonctions de Levenshtein
distance et Jaro distance. Son taux d’erreur est de 10% avec un temps de calcul acceptable.

L’idée de travailler sur un sujet déjà traité par un logiciel se situe à deux niveaux.
Premièrement, le coût élevé et, deuxièmement, les difficultés de sa maintenance. En fait, le
traitement algorithmique qu’utilise Alteryx Designer est complexe. Ce qui entraine parfois
des obstacles pour investiguer lorsqu’ils rencontrent un bug.

CONCLUSION

Au total, ce chapitre nous a permis de présenter l’organigramme de la Digital Factory,


le rôle et la mission de chaque pôle, la méthodologie Agile, l’environnement de travail et
l’étude de l’existant.
Concernant l’organigramme de la Digital Factory, nous avons pu dégager les quatre
principaux pools notamment, les teams transverse, data, business, fraude et sinistre. De même,
le rôle et la mission de chaque pool ont été mis en relief.
Quant à la méthodologie agile, nous pouvons retenir que c’est une organisation de
travail par cycle court très ciblés impliquant le client et favorisant la collaboration entre des
équipes pluridisciplinaires.
Pour ce qui est de l’environnement du travail, notre stage s’est effectué en télétravail à
cause de la pandémie du COVID 2019. Enfin, pour l’étude de l’existant nous avons fait
ressortir les avantages et les inconvénients de Alteryx.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 19
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Chapitre 2 : FUZZY MATCHING /


CONCEPTS ET APPLICATIONS

INTRODUCTION

Le stockage des données d’entreprise ou d’entité dans des ensembles de données


diverses deviennent de nos jours de plus en plus complexe.
Lorsqu’il existe des identifiants fiables et uniques au sein des données, les utilisateurs
sont couramment en mesure de faire correspondre les enregistrements provenant de deux ou
de plusieurs ensembles de données en utilisant la fusion sans difficulté. Mais, que se passe-t-il
lorsqu'un identifiant unique, appelé clé, n'est pas fiable ou n'existe pas ?
Ces types de problèmes sont courants et se retrouvent dans les fichiers contenant des
noms mal orthographiés (nom d’un client, d’une entreprise, …), de même que, la
transposition de multiples caractères où l’on rencontre très souvent des enregistrements
partiels et/ou incorrects. Cette problématique est appelée "fuzzy matching".
Pour résoudre ces problèmes fréquents, les techniques utilisées se résument autour
d’un assortiment de nettoyage de données, de l’application d’algorithmes de calcul de
distance, afin d’attribuer des identifiants clés, fiables et pour réussir les regroupements et les
fusions.
Dans ce chapitre, nous présenterons notre méthode de regroupement des données clients.
Concernant la présentation de notre méthode de regroupement des données, nous
donnerons, de prime abord, une approche explication du processus de fuzzy matching.
Ensuite, nous exposerons la méthodologie et l’implémentation du fuzzy matching (règles
métiers : arbre de décision). Nous conclurons par une évaluation des algorithmes utilisés et
l’analyse des résultats.

I- EXPLICATION DU PROCESSUS DE FUZZY


MATCHING

Le Fuzzy Matching est la mise en œuvre de processus algorithmiques pour déterminer


la similarité entre des éléments de données tels que des noms d'entreprises, des noms de
personnes ou des informations sur les adresses en spécifiant des champs de correspondance et

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 20
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

des seuils de similitude définis. Il est utilisé pour faciliter le nettoyage des données, les
recommandations, la déduplication ou la mise en correspondance des données disparates.
Cette partie montre les bases de l'utilisation du Fuzzy Matching en python avec des
algorithmes tels que fuzzywuzzy ; jaro winkler et N-gramme, TF-IDF, Similitude Cosinus.

Tableau 1 : Exemple de données

Par simple inspection comme le montre le tableau ci-dessus, il est facile de voir
que M. KONE ALI et KONE ALI, MARIE CLAIRE YAO et MC YAO font probablement
référence à la même personne avec de légères différences d'orthographe. Pour un humain, il
est facile de repérer ces doublons.
Dans les petits ensembles de données, les enregistrements peuvent être nettoyés à la
main. Mais qu'en est-il des énormes ensembles de données ?
Comment combiner des milliers d'entrées de texte et regrouper des entités similaires ?
Maintenant, avant de plonger dans les méthodes, prévisualisons un échantillon de données
disponibles de 10 lignes :
Tableau 2 : Extraction du jeu de données

Ce tableau nous montre une extraction du jeu de données dont les colonnes (CIN, DOB,
FN_H, LN_H et VEH_REGISTRATION2) représentent les variables clés de notre étude.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 21
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

C’est donc sur ces variables clés que nous allons appliquer les algorithmes du Fuzzy
Maching, et les règles métiers.

II- METHODOLOGIE ET IMPLEMENTATION DU


FUZZY MATCHING

L’idée que nous défendons dans cette section est que la méthodologie de fuzzy
matching se base sur une approche hybride basée sur la combinaison des approches
holistiques et se décline en trois phases dont : La Préparation du Fuzzy Matching, le Fuzzy
Matching et le post-Fuzzy Matching.
Des trois (3) phases du Fuzzy Maching indiquées, nous ne pourrions traiter qu’une
phase dans cette étude, notamment le Fuzzy Matching, non qu’on veuille délibérément
écarter les deux autres, mais parce qu’ils (la préparation du Fuzzy Matching et le post-
Fuzzy Matching.) ont été entièrement traité.

A. Phase de la Préparation du Fuzzy Matching (Pré-FZM)

Cette phase a pour objectif de réaliser un prétraitement sur les données. Il s’agit
d’extraire au quotidien (en delta Historique de 3 jours) les données reçues du datalake qui
regroupent plusieurs éléments d’informations clients (nom, prénoms, CIN, DOB, …) polices
(policy_key, …) et véhicules (Immatriculation, …). A partir de ce regroupement, les données
sont classifiées et différenciées entre les polices monos et flottes, tout en ajoutant les UNID
(identifiants uniques aux polices).

B. Phase de fuzzy Matching

La phase de fuzzy Matching se décline en trois (3) activités notamment, la


consolidation des données, la data cleaning et l’application des algorithmes du fuzzy
macthing.

i. Consolidation des données

Après avoir constitué les données à partir de la Préparation du Fuzzy Matching, nous
observons une taille moyenne de 40 Mo soit, une approximation de 30.000 lignes avec 58
colonnes. De cette collecte, nous supprimons les doublons. En plus de ces données reçues

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 22
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

quotidiennement, nous disposons de deux (2) autres fichiers en complément notamment, la


CIN (Carte d’Identité Nationale) et la DOB (Date of Birth : dates de naissance) blacklistées
qui représentent les informations fournies par les agents lors du remplissage du formulaire
clients.

ii. Data cleaning

Une fois l’étape de consolidation terminée, la procédure suivante est la transformation


du contenu des données. À cet effet, la figure 2 ci-dessous montre la séquence des mesures
prises pendant le processus de cleaning des données.

Figure 2 : Etapes du Data cleaning

Le tableau 2 présenté, plus haut, nous fournit les variables à partir desquelles nous
appliquons notre data cleaning.
Chaque enregistrement est potentiellement un doublon de tous les autres
enregistrements à traiter. Ils doivent tous être comparés les uns des autres. Une approche
largement utilisée afin de comparer deux enregistrements et d’évaluer leur similarité textuelle
pour toutes sortes de combinaison de leurs composantes. Pour se faire, plusieurs fonctions de
similarité proposées dans la littérature de diverses communautés de recherche peuvent être

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 23
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

utilisées. Ces fonctions comparent deux chaînes de caractères et indiquent si ces dernières
doivent être considérées ou non comme similaires ou, pour la plupart, mesurent le niveau de
similarité entre les deux chaînes de caractères comparées. Les fonctions de similarité choisies
sont proposées ci-après.

iii. Algorithmes de fuzzy macthing

Les algorithmes utilisés dans ce cas sont : fuzzywuzzy ; jaro-winkler et N-gramme, TF-
IDF et Similitude Cosinus.

1. FuzzyWuzzy

Le FuzzyWuzzy est une bibliothèque de Python qui est utilisée pour la correspondance
de chaînes de caractères. Il utilise la distance de Levenshtein [2] pour calculer les différences
entre les séquences.
La distance de Levenshtein (LD) mesure la similarité entre deux chaînes de caractères
chaîne source (s) et chaîne cible (t). Elle est égale au nombre minimal de caractères qu’il faut
supprimer, insérer ou remplacer pour transformer s en t.
C’est une distance au sens mathématique du terme, donc en particulier c’est un nombre positif
ou nul, et deux chaînes de caractères sont identiques si et seulement si leur distance est nulle.
[3] Par exemple :

 Si s = "test" et t = "test", alors LD (s, t) = 0, car aucune opération n'a été réalisée
(Les mots sont identiques)
 Si s est "test" et t est "tent", alors LD (s, t) = 1, car un remplacement (changer "s" en
"n") suffit pour transformer s en t.
 Si s est vide, la distance est le nombre de caractères dans t.
 Si t est vide, la distance est le nombre de caractères dans s.

Plus la distance Levenshtein est grande, plus les chaînes sont différentes.

Fonctionnement

Pour illustrer le fonctionnement de cet algorithme, observons son déroulement avec


chaîne1= ‘DELETE’ et chaîne2= ‘REPLACE. On commence par initialiser le tableau :
Soit n la longueur de la chaîne 1 (ici n=6)

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 24
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Soit m la longueur de la chaîne 2 (ici m=7)

Si n=0 alors retourner d=m et quitter


Si m=0 alors retourner d=n et quitter

Construire une matrice M de n+1 lignes et m+1 colonnes.

Initialiser la première ligne par la matrice ligne [0,1, ..., m-1, m] et la première colonne par la
matrice colonne [0,1, ..., n-1, n]

R E P L A C E

0 1 2 3 4 5 6 7

D 1 0 0 0 0 0 0 0

E 2 0 0 0 0 0 0 0

L 3 0 0 0 0 0 0 0

E 4 0 0 0 0 0 0 0

T 5 0 0 0 0 0 0 0
R E P L A C E
E 6 0 0 0 0 0 0 0
D 1 1 1 1 1 1 1

E 1 0 1 1 1 1 0

On a Cout(i, j)=0 si A(i)=B(j) et L 1 1 1 0 1 1 1


Count (i, j)=1 si A(i)!=B(j)
E 1 0 1 1 1 1 0
On a donc ici la matrice Cout:
T 1 1 1 1 1 1 1

E 1 0 1 1 1 1 0

On remplit ensuite la matrice M en utilisant la règle suivante M[i, j] est égale au minimum
entre les éléments suivants :

• L’élément directement au-dessus et on ajoute 1 : M[i-1, j] + 1. (suppression)


• L’élément directement avant et on ajoute 1 : M[i, j-1] + 1. (insertion)
• L’élément diagonal précédent plus le coût : M[i-1, j-1] + Cout(i-1, j-1).(substitution)

Attention ! Il s'agit de Cout(i-1, j-1) et non de Cout(i, j) car la matrice Cout est moins grande
que la matrice M, ce qui entraîne un décalage.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 25
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Dans notre cas, le remplissage de la première ligne donne alors :

R E P L A C E

0 1 2 3 4 5 6 7

D 1 1 2 3 4 5 6 7

E 2 0 0 0 0 0 0 0

L 3 0 0 0 0 0 0 0

E 4 0 0 0 0 0 0 0

T 5 0 0 0 0 0 0 0

E 6 0 0 0 0 0 0 0

R E P L A C E

0 1 2 3 4 5 6 7

D 1 1 2 3 4 5 6 7
Nous réitérons cette opération jusqu'à
remplir la matrice :
E 2 2 1 2 3 4 5 6

L 3 3 2 2 2 3 4 5

E 4 4 3 3 3 3 4 4

T 5 5 4 4 4 4 4 5

E 6 6 5 5 5 5 5 4

La distance de Levenshtein entre les chaînes 1 et 2 se retrouve en M [n, m].

La fonction de fuzzywuzzy qui implémente la distance de Levenshtein, tokenise les


chaînes de caractères, les transforme en minuscules, supprime les ponctuations, puis les tries
par ordre alphabétique pour après trouver la distance de Levenshtein et renvoyer un dataframe
des noms matchés avec un pourcentage de similitude > 0.8 fixée.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 26
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Le tableau ci-dessous montre le résultat du calcul de similarité selon l’algorithme ; on voit


que les lignes dont les noms (FN_LN) matchent sont rapprochés et regroupés dans la colonne
Group. Voir partie en encadrée.

Tableau 3 : Résultat du FuzzyWuzzy avec une similarité > 0.8 sur l’extraction faite

2. Jaro winkler

La similitude Jaro est la mesure de la similitude entre deux chaînes de caractères.


La valeur de la distance Jaro va de 0 à 1 où 1 signifie que les chaînes de caractères sont égales
et 0 signifie qu'il n'y a pas de similitude entre elles.

➢ [4] Distance de Jaro

1 𝑚 𝑚 𝑚−𝑡
( + + ) , 𝑓𝑜𝑟 𝑚 ! = 0
Jaro similarity = {3 |𝑠1 | |𝑠2 | 𝑚
0, 𝑖𝑓 𝑚 = 0

La distance de Jaro entre les chaînes s1 et s2 est définie par :


• m est le nombre de caractères correspondants des deux chaînes de caractères
• t est la moitié du nombre de transpositions
• où | s1 | et | s2 | est la longueur de la chaîne s1 et s2 respectivement

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 27
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Exemple d’illustration :

Soit s1 = "arnab", s2 = "raanb", de sorte que la distance maximale jusqu'à laquelle


chaque caractère correspond est de 1.
Il est évident que les deux chaînes ont 5 caractères correspondants, mais l'ordre n'est pas
le même, le nombre de caractères qui ne sont pas dans l'ordre est de 4 donc le nombre de
transpositions est de 2.
Par conséquent, la similitude de Jaro peut être calculée comme suit :
Jaro Similariy = (1/3) * {(5/5) + (5/5) + (5-2) / 5} = 0,86667

➢ Distance de Jaro- Winkler

La distance de Jaro-Winkler mesure la similarité entre deux chaînes de caractères. Il


s’agit d’une variante proposée par William E. Winkler, découlant de la distance de Jaro qui
est principalement utilisée dans la détection de doublons.
Le résultat est normalisé de façon à avoir une mesure entre 0 et 1, donc 0 représente l’absence
de similarité et 1, l’égalité des chaînes comparées.
Cette mesure est particulièrement adaptée au traitement de chaînes courtes comme des
noms ou des mots de passe. La méthode introduite par Winkler utilise un coefficient de
préfixe « P » qui donne une réponse plus précise lorsque les chaînes ont un préfixe commun
jusqu'à une longueur maximale définie L.

La similitude de Jaro Winkler est définie comme suit :

Sw = Sj + P * L * (1 - Sj) où,

• Sw, est la similitude jaro-winkler


• Sj, est la similitude de Jaro
• P est le facteur d'échelle (0.1 par défaut)
• L est la longueur du préfixe correspondant jusqu'à un maximum de 4 caractères

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 28
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Soit s1 = "arnab", s2 = "aranb".


La similitude Jaro de deux chaînes est de 0,933333 (d'après le calcul ci-dessus.)
La longueur du préfixe correspondant est 2 et nous prenons le facteur d'échelle comme 0,1
Similitude Jaro-Winkler = 0,9333333 + 0,1 * 2*(1 - 0,9333333) = 0,946667

La fonction de jaro winkler qui implémente les distances de Jaro et de jaro winkler
retourne également un dataframe des noms matchés avec un pourcentage de similitude > 0.8
fixée. On voit également que les noms (FN_LN) qui matchent sont regroupés dans la colonne
Group. Voir partie colorée.

Tableau 4 : Résultat du Jaro Winkler avec une similarité > 0.8 sur l’extraction faite

3. N-grammes, TF-IDF, Similitude Cosinus

Dans cette étape, nous allons construire une matrice de termes de documents avec TF-
IDF et N-Grammes afin d’utiliser la similarité cosinus pour calculer la proximité entre les
chaînes de caractères.

✓ N-grammes

Les N-grammes sont des moyens pour diviser les chaînes en sous-séquences où N est la
taille du morceau. Ici, n peut être 1, 2, 3 et ainsi de suite. Pour N = 1, chaque sous-séquence
résultante est appelée un « unigramme », pour N = 2, un « bigramme » et pour N = 3, un «
trigramme ».

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 29
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

À titre d'exemple, considérons la chaîne « catastrophe », dans ce cas,


Unigrammes :["c", "a", "t", "a", "s", "t", "r", "o", "p", "h", "e"]
Bigrammes :["ca", "at", "ta", "as", "st","tr","ro", "op","ph", "he"]
Trigrammes :["cat","ata","tas","ast","str", "tro","rop","oph", "phe"]

La valeur de N dépend de la situation et du contexte c’est-à-dire en fonction du


problème et des données, parfois, les mots en tant que termes n'aideraient pas beaucoup,
comme c'est le cas avec l'ensemble de données des noms de personnes que nous avons ici.
Dans ce cas particulier, on génère une séquence de 2 éléments (également
appelés bigrammes) [5]. Bigrammes car c’est cette sous-séquence qui nous aide à avoir un
grand nombre de matching correcte.

Après avoir divisé nos chaines de caractères en bigrammes, calculons le score TF-IDF pour
2-grammes de noms constitués.

✓ TF-IDF (Term Frequency - Inverse Document Frequency) : ici, permet de transformer


les chaînes de caractères en vecteurs numériques, facilement comparables. Le TF-IDF
[6] est une méthode bien connue pour évaluer l'importance d'un mot dans un
document.
Figure 3 : [6] Formule TF-IDF

• TF (Fréquence des termes) : mesure la fréquence d'apparition d'un terme dans un


document.

TF (t) = (Nbre de fois que le terme t apparaît dans un document) /(Nbre total des termes du
document).

• IDF (Inverse Document Frequency) : mesure l'importance d'un mot, en tenant

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 30
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

compte de la fréquence du mot dans tout le corpus. Ainsi, nous avons :

IDF (t) = log e (Nbre total de documents /Nbre de documents contenant le terme t).
Exemple :
Prenons un document contenant 100 mots dans lequel le mot chat apparaît 4 fois.
Le terme fréquence (c'est-à-dire tf) pour chat est alors tf = (4/100) = 0,04.
Maintenant, supposons que nous ayons 100.000 de documents et que le mot chat apparaisse
dans 1.000 d'entre eux.
Ensuite, la fréquence inverse du document (c'est-à-dire idf) est calculée comme
Idf = log (100 000 /1 000) = 2
Ainsi, le poids Tf-idf est le produit de ces quantités : TF-IDF = 0,04 * 2 = 0,08

La fonction permettant de faire le Tf-idf prend en paramètre les bigrammes générés


précédemment. En sortir, nous obtenons une matrice clairsemée car la plupart des n-grammes
du dataframe n'apparaîtront pas dans la plupart des noms de personnes. Cette matrice est donc
de taille LxC (L (ligne) : représente les noms uniques présents dans l’extraction et C
(colonne) : les différents bigrammes générés). Avec notre exemple de données on a : L = 7 et
C = 40.

Une matrice clairsemée : est une matrice qui contient plus de valeurs nulles que de
valeurs non-nulles. On utilise une matrice clairsemée au lieu d'une simple matrice à cause du :

• Stockage : il y a moins d'éléments non nuls que les zéros et donc une mémoire
moindre peut être utilisée pour stocker uniquement ces éléments. Cela signifie
stocker des éléments non nuls avec des triplets (ligne, colonne, valeur, (nnz)).
• Ligne : Index de la ligne, où se trouve l'élément différent de zéro.
• Colonne : Index de la colonne, où se trouve l'élément différent de zéro.
• Valeur : Valeur de l'élément non nul situé à l'index (ligne, colonne).
• Temps de calcul : Le temps de calcul peut être économisé en concevant
logiquement une structure de données ne traversant que des éléments non nuls.

Exemple :

Comme nous pouvons le voir ci-dessous, il y a 6 éléments non nuls (nnz =6 ) et 14 valeurs
nulles. Cette matrice prend 5 * 4 = 20 espaces mémoire.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 31
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Si la taille de la matrice est plus grande, le gaspillage d'espace sera augmenté.

Ici, la première colonne du tableau de gauche, contient le numéro de ligne et la


seconde le numéro de colonne. Le troisième contient les données présentes à M [row, col].
Chaque ligne de ce tableau est appelée triplets, car il y a trois paramètres. Le premier
triplet contient les informations de taille de la matrice. Row = 4 et Column = 5 indique que la
matrice M est une matrice 5 x 4. Nous pouvons voir qu'il y a 3 colonnes fixes, le nombre de
lignes varie avec le nombre d'éléments non nuls.
Il en ressort comme résultat de cette étape de notre extraction le résultat suivant :

Tableau 5: Extrait d'une partie de la matrice clairsemée générée dans notre cas de figure

L’utilisation de la similarité cosinus ici sert à calculer la proximité entre les chaînes de
caractères.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 32
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

✓ Similitude cosinus : est une mesure qui calcule le cosinus de l'angle entre deux
chaînes de caractères. C’est une métrique comprise entre 0 et 1 utilisée pour
déterminer la similitude des chaînes indépendamment de leur longueur.
Plus cette valeur est proche de 1 (cosinus de 0 °), plus la similitude des chaînes est
élevée. Plus l'angle est petit, plus la similitude cosinus est élevée. Lorsqu'elle est tracée sur un
espace multidimensionnel où chaque dimension correspond à un n-gramme dans le jeu de
données, la similitude cosinus calcule l'orientation (l'angle) des chaînes de caractères.[7]

Exemple 1 : Calcul de la similitude cosinus de deux listes de nombre


a = [3,8,7,5,2,9] et b = [10,8,6,6,4,5]
De ces deux listes de nombre, on trouve une similitude cosinus de 0,864.

Exemple 2 :

1. I love dogs
2. I love, love, love, love, love, love, love dogs
3. I hate cats

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 33
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Si nous regardons la distance entre nos points, « I love dogs » et « I hate cats » sont
physiquement plus proches l'un de l'autre que « I love dogs » et « I love, love, ...dogs ».
Cependant, si nous regardons l'angle entre les lignes de nos points - la distance cosinus - nous
pouvons voir que l'angle entre « I love dogs » et « I love, love … dogs » est beaucoup plus
petit que l'angle entre « I love dogs » et « I hate cats ».
Ainsi, la similitude cosinus entre la chaîne 1 et la chaîne 2 sera plus élevée (plus proche de 1)
que la similitude cosinus entre la chaîne 1 et la chaîne 3.
Dans notre cas, nous utilisons la matrice résultante de la partie précédente ainsi que sa
transposée pour donner le résultat A ci-dessous :

Tableau 6 : Résultat de la similitude cosinus

Ce résultat, représenté en B sous forme de matrice permet d’avoir une meilleure visibilité.
Pour aboutir au résultat final de cette combinaison de fonctions (N-grammes, TF-IDF
et similitude cosinus), nous allons utiliser le résultat du tableau 6 pour créer une fonction qui
va regrouper tous les noms matchés en un nom de Group commun.
Dans le tableau ci-dessous, on voit que les lignes 2,3,4 et 5 appartiennent au même
Group AMINE MYRIEM tout simplement car ces personnes ont été matchés donc apparemment
identique. Dans la suite on verra si elles le sont réellement.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 34
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Tableau 7 : Résultat du N-gramme ; TF-IDF ; Similitude cosinus avec une similarité > 0.8 sur l’extraction fait

Figure 4 : Schéma descriptif de l’application des algorithmes de fuzzy matching

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 35
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

III- REGLES METIERS : ARBRE DE DECISION

Bien avant de comparer les résultats de nos algorithmes, nous appliquons d’abord les
règles métiers inscrites dans l’arbre ci-dessous afin de scinder notre dataframe en deux
groupes (clients nouveaux et clients regroupés) avant de procéder à l’attribution des
identifiants.
La meilleure pratique pour atteindre notre objectif qui, est de diviser en deux cluster
nos clients, est d’utiliser une sorte d’approche en cascade comme le montre la figure ci-
dessous ; Pour y arriver, nous utilisons SQL Spark pour retrancher au fur et à mesure les
clients qui correspondent aux différentes règles.
Figure 5 : arbre de décision

Une fois les clusters nouveaux clients et regroupement clients faits, nous procédons à
la phase d’attribution d’identifiant unique aux lignes de regroupements qui représentent la
même entité en fonction de certaines informations communes à savoir CIN ou DOB ou encore
VEH_REGISTRATION2.
Il est important de souligner que ses règles ont été appliquées sur les outputs de nos trois
algorithmes mentionnés plus haut. Le output final après cette étape se présente comme suit :

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 36
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

La colonne new_code représente la colonne des identifiants.

Tableau 8 : output final la colonne new_code qui représente les identifiants

A partir de ce tableau, on peut dire que :


- Pour les lignes marquées en bleu, les deux personnes appartenant au même groupe
représentent une même personne car, leur DOB et VEH_REGISTRATION2 sont
identiques.

- Pour les lignes marquées au rouge, il s’agit des deux individus appartenant au même
Group car, ils ont une similarité de nom (FN_LN) > 80%. Mais, ils ne correspondent
pas à la même entité (new_code = 4 et 5) du moment où les informations des autres
colonnes diffèrent.

IV- ÉVALUATION ET RESULTATS

1. Evaluation de la complexité des algorithmes de calcul de distance

➢ Distance de Levenshtein
Comme toute la matrice doit être parcourue entièrement mais seulement une fois,
l’algorithme possède une complexité quadratique relative à la taille du dataframe. En effet, il
faut stocker et remplir la matrice en mémoire d’où la quantité de mémoire utilisée à 𝑂(𝑚)

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 37
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

avec un temps d’implémentation de O (N*M), pour N et M les longueurs des deux chaînes de
caractères.

➢ Distance de Jaro Winkler


La complexité de cet algorithme sont les suivantes 𝑂(|𝑆1| + |𝑆2|) où |𝑆1| et | 𝑆2| est
la longueur de la chaîne S1 et S2 respectivement.

➢ N-gramme, TF-IDF et similitude cosinus


Pour minimiser la mémoire occupée par la matrice, seuls les coefficients non-nuls sont
stockés. Ceci permet également d’améliorer notablement les performances du produit matrice-
vecteur, en passant d’une complexité de O(𝑁 2 ) à O(nnz) où nnz est le nombre de coefficients
non-nuls (nnz = number of non-zeros).

2. Tableau comparatif des algorithmes L’arbre de décision

Figure 6 : Tableau comparatif des algorithmes en temps d’exécution et qualité de résultat

Comme le montre la figure 6, le fuzzyWuzzy (FW) mets plus de temps en exécution


suivi du Jaro Winkler (JW) et le N-gramme - TF-IDF - Similitude Cosinus. Quant à la qualité
du résultat également le N-gramme - TF-IDF - Similitude Cosinus est en tête suivi de FW et
JW ; notre critère de choix de la fonction de similarité est donc le N-gramme, TF-IDF-

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 38
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

Similitude cosinus.
La qualité de résultat s’est faite sur 30% du jeu de données soit 3300 lignes par une
vérification manuelle.
Les fonctions de similarité basées sur N-grammes - TF-IDF - Similitude Cosinus sont
plus rapides à évaluer que les deux autres car elle effectue moins de comparaisons.

3. Mesures d'évaluation du résultat de matching

Notre choix d’algorithme est évalué selon l'exactitude du couplage d'enregistrements.


Ainsi, pour évaluer la justesse dans le couplage d’enregistrements, nous examinons la
capacité de groupage des clients par similarité de noms en calculant le pourcentage du bon
matching effectué avec le jeu de données test :

Pourcentage (P) = (Matching Error / Nombre Total de Lignes) *100


Matching Error correspond au matching de nom mal fait, c’est-à-dire des personnes qui
devraient avoir un identifiant commun mais à qui notre algorithme a identifié différemment.

P = (5 / 3300) * 100
P = 0,15 % (ce pourcentage a été calculé en vérifiant manuellement sur 30% du jeu de
données de 11.000 lignes reçus pour le test).
Il est également important de signifier que dans une extraction contenant un même
client dupliqué m fois (m > 2), notre algorithme arrive à les regrouper avec un taux d’erreur
inférieur à 5 % (<5%).
Quant à l’évaluation générale de notre meilleur algorithme avec le logiciel Alteryx,
nous n’avions pu l’effectuer du fait qu’en raison de la sensibilité des données, il ne nous a pas
été possible de les disposer pour cette opération.

C- Phase de Post Fuzzy Matching (Post-FZM)

Le processus post Fuzzy matching consiste d’abord de refaire le Fuzzy matching sur le
stock des données ensuite de fiabiliser les données reçues sur les clients, de rapprocher les
polices en différenciant les souscriptions des renouvellements afin d’alimenter les tables sur
Valeur Client.

A la fin de cette étape, nous prenons le cas des clients qui ont un numéro de police différent
de l’ancienne police et nous mettons à jour les informations nécessaires.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 39
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

CONCLUSION

Après avoir implémenté nos différentes fonctions de similarités, nous avons pu faire le
choix de celle qui nous paraissait être la meilleure solution. De plus, l’application de notre
arbre de décision nous a permis de scinder notre jeu de données initial en deux groupes
(regroupement et nouveau client) pour ensuite attribuer les identifiants adéquats.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 40
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

CONCLUSION GENERALE
En définitive, s’il nous a paru nécessaire de présenter l’organigramme de la Digital
Factory, le rôle et la mission de chaque pôle, la méthodologie Agile, l’environnement de
travail et l’étude de l’existant, notre réflexion s’est fondamentalement portée sur le
développement d’une solution qui vise à déterminer les correspondances entre les données
journalières reçues tout en préservant la qualité des résultats et un temps d’exécution
acceptable afin de regrouper ou d’ajouter un nouveau client.
Ainsi, bien que le Fuzzy Matching ait permis la mise en œuvre de processus
algorithmiques pour déterminer la similarité entre des éléments de données (noms
d'entreprises, noms de personnes, etc.) en spécifiant des champs de correspondance et des
seuils de similitude définis, ce travail nous a également permis d’évaluer et de comparer
plusieurs fonctions de similarité dans une étude de détection de doublons approximatifs. C’est
une tâche importante qui favorise l’intégration de données provenant de différentes sources.
En moyenne sur l’ensemble des jeux de données traités dans cette étude, on observe que des
trois fonctions de similarités seul le N-grammes, TD-IDF, similitude cosinus réponds bien à
nos attentes.
Par ailleurs, les fonctions de similarité évaluées dans le cadre de ce travail sont
relativement simples à implémenter pour quiconque désirerait détecter automatiquement des
doublons approximatifs dans une base de données. Toutefois, lorsqu’on compare deux
enregistrements afin de déterminer s’ils représentent la même entité, on doit aussi choisir les
éléments d’information (variables) à comparer suivi du seuil de similitude à déterminer. On
peut le faire comme dans la présente étude, en comparant simplement les chaînes de
caractères résultant de la concaténation des noms et prénoms ou autres variables.
Pour ce qui est de l’environnement du travail, notre stage s’est effectué en télétravail à
cause de la pandémie du COVID-19. Nous avons accusé du retard à cause du changement de
notre maître de stage Madame MESSBAH Hind pour cause de démission de l’entreprise.

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 41
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

REFERENCES

[1] https://www.lexjansen.com/nesug/nesug07/ap/ap23.pdf

[2] https://en.wikipedia.org/wiki/Levenshtein_distance

[3]https://people.cs.pitt.edu/~kirk/cs1501/Pruhs/Spring2006/assignments/editdistance/Levens
htein%20Distance.htm

[4] https://fr.wikipedia.org/wiki/Distance_de_Jaro-Winkler

[5] https://thinkr.fr/text-mining-n-gramme-avec-r/

[6] https://www.quentinfily.fr/tf-idf-pertinence-lexicale/

[7] https://neo4j.com/docs/graph-algorithms/current/labs-algorithms/cosine/

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 42
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

TABLE DES MATIERES


DEDICACE ------------------------------------------------------------------------------------------------- I

REMERCIEMENTS -------------------------------------------------------------------------------------- II

AVANT-PROPOS---------------------------------------------------------------------------------------- III

SOMMAIRE ----------------------------------------------------------------------------------------------IV

LISTE DES ILLUSTRATIONS ------------------------------------------------------------------------- V

SIGLES ET ABREVIATIONS -------------------------------------------------------------------------VI

RESUME -------------------------------------------------------------------------------------------------VII

ABSTRACT ----------------------------------------------------------------------------------------------VII

INTRODUCTION GENERALE ------------------------------------------------------------------------ 8

Chapitre 1 : ETUDE PREALABLE ------------------------------------------------------------------- 10

INTRODUCTION ------------------------------------------------------------------------------------- 10

I- PRESENTATION DE LA STRUCTURE D’ACCUEIL ----------------------------------- 10

1. Rôle et missions de chaque pôle --------------------------------------------------------------- 11

2. Méthodologie Agile ------------------------------------------------------------------------------ 12

a. Rôles Scrum ------------------------------------------------------------------------------------ 12

b. Evènements Scrum ---------------------------------------------------------------------------- 13

c. Artefacts Scrum -------------------------------------------------------------------------------- 14

3. Environnement de travail ----------------------------------------------------------------------- 14

II- DESCRIPTION DETAILLEE DU METIER ET DES DONNEES-------------------- 15

2- Les données utilisées ---------------------------------------------------------------------------- 17

3- Présentation du cahier des charges ------------------------------------------------------------ 17

3-1- Objectif du projet ------------------------------------------------------------------------------ 17

3-2- Méthodologie ---------------------------------------------------------------------------------- 18

III- ETUDE DE L’EXISTANT (ALTERYX) ------------------------------------------------- 18

CONCLUSION ---------------------------------------------------------------------------------------- 19

Chapitre 2 : FUZZY MATCHING / CONCEPTS ET APPLICATIONS ------------------------ 20

INTRODUCTION ------------------------------------------------------------------------------------- 20

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 43
TRANSFORMATION, MIGRATION DE BASE DE DONNEES ET REFONTE DE L’ALGORITHME DE REGROUPEMENT DES CLIENTS

I- EXPLICATION DU PROCESSUS DE FUZZY MATCHING --------------------------- 20

II- METHODOLOGIE ET IMPLEMENTATION DU FUZZY MATCHING ---------- 22

A. Phase de la Préparation du Fuzzy Matching (Pré-FZM) --------------------------------- 22

B. Phase de fuzzy Matching --------------------------------------------------------------------- 22

i. Consolidation des données ------------------------------------------------------------------- 22

ii. Data cleaning ----------------------------------------------------------------------------------- 23

iii. Algorithmes de fuzzy macthing ------------------------------------------------------------- 24

1. FuzzyWuzzy ----------------------------------------------------------------------------------- 24

2. Jaro winkler ------------------------------------------------------------------------------------ 27

3. N-grammes, TF-IDF, Similitude Cosinus-------------------------------------------------- 29

III- REGLES METIERS : ARBRE DE DECISION ------------------------------------------ 36

IV- ÉVALUATION ET RESULTATS --------------------------------------------------------- 37

1. Evaluation de la complexité des algorithmes de calcul de distance -------------------- 37

2. Tableau comparatif des algorithmes L’arbre de décision -------------------------------- 38

3. Mesures d'évaluation du résultat de matching --------------------------------------------- 39

C- Phase de Post Fuzzy Match (Post-FZM) --------------------------------------------------- 39

CONCLUSION ---------------------------------------------------------------------------------------- 40

CONCLUSION GENERALE------------------------------------------------------------------------ 41

REFERENCES-------------------------------------------------------------------------------------------- 42

TABLE DES MATIERES ------------------------------------------------------------------------------ 43

KADIA Essan Amelan Armelle-Déborah Master 2 Data Science - Big Data 2019 - 2020 44

Vous aimerez peut-être aussi