Nettoyer et explorer
des données avec
OpenRefine
Jean Paul Maalouf
linkedin.com/in/jean-paul-maalouf
www.statistique-formation.fr
Août 2024
Plan – Nettoyer et explorer des données avec OpenRefine
1. OpenRefine : introduction
2. Installer, lancer, mettre à jour, désinstaller
3. Créer un projet et importer des données
4. Modifications manuelles cellule par cellule
5. Modifications globales (colonne toutes)
6. Modifications par colonne
7. Identifier des types de données et les convertir
8. Trier des données
9. Filtrer des données : filtre de texte
10.Filtrer les données, Facettes : introduction
11.Facettes textuelles
2
Plan – Nettoyer et explorer des données avec OpenRefine
12.Facettes textuelles : regrouper automatiquement les valeurs proches
13.Facettes numériques et chronologiques
14.Cumuler plusieurs facettes et exporter la configuration
15.Etoiles, marques et suppression manuelle de lignes
16.Annuler ou rejouer une série de traitements (Défaire / Refaire)
17.Exporter des données traitées
18.Aller plus loin : séparer des champs en lignes (cellules) ou en colonnes
19.Aller plus loin : enrichissement (réconciliation) avec la base Wikidata
20.Aller plus loin : Transformations et facettes avancées (le langage GREL)
3
1. OpenRefine :
Introduction
Qu’est-ce qu’OpenRefine ?
▸ Outil open-source, gratuit et convivial pour nettoyer, transformer
et enrichir des jeux de données.
▸ Il fonctionne en local hors connexion sur un navigateur internet.
▸ Exemples concrets d’utilisation :
▹ Correction des erreurs typographiques dans un fichier de
contacts.
▹ Transformation de formats de date incohérents en un format
standard.
▹ Réconciliation et enrichissement de données géographiques
avec Wikidata.
▹ Préparation d’un jeu de données en vue d’une analyse plus
fine.
5
Principales fonctions d’OpenRefine
• Nettoyage des données : Détection et
correction des erreurs, des doublons et des
incohérences.
• Transformation des données :
Conversion de formats, réorganisation des
colonnes, et manipulation des valeurs des
cellules.
• Exploration des données : Utilisation de
facettes et de filtres pour explorer les
données et découvrir des tendances ou
des anomalies.
• Enrichissement des données :
Connexion avec des bases de données
externes comme Wikidata pour ajouter des
informations supplémentaires.
6
Pourquoi utiliser OpenRefine ?
• Efficacité : Automatisation de nombreuses tâches répétitives de nettoyage et de
transformation des données.
• Flexibilité : Multiplateforme (Win, Mac, Linux) ; Prise en charge de divers formats de
données.
• Transparence : Historique complet des modifications. Possibilité de revenir à des
opérations antérieures.
• Par rapport à Excel : Bien que puissant, Excel manque de certaines capacités de
nettoyage, de transformation et d’enrichissement de données qu'offre OpenRefine.
• Par rapport aux langages de programmation (R, Python…) : avec ses menus
déroulants, OpenRefine est plus convivial pour les utilisateurs non-programmeurs.
7
Types de fichiers pris en compte
8
• Fichiers CSV / TSV / séparateur
• Fichiers texte à base de lignes
• Fichiers texte à largeur de champ fixe
• PC-Axis text files
• Fichiers JSON
• Fichiers MARC
• Fichiers JSON-LD
• Fichiers RDF
• Wikitext
• Fichiers XML
• Feuilles de calcul Open Document Format (.ods)
• Fichiers Excel
• Google Sheets
• URL
• Base SQL
• Presse-papiers (clipboard)
Avantages / inconvénients (d’après Mathieu Saby)
9
D’après le manuel officiel, OpenRefine ralentit sur des jeux de données avec plus
d’1 million de cellules, ou une taille > 50mb
Ressources
• Manuel officiel d’utilisation (en anglais) : https://openrefine.org/docs
• Autres ressources : https://openrefine.org/external_resources
• Tutoriels divers :
https://github.com/OpenRefine/OpenRefine/wiki/External-Resources
• Tutoriel complet en français (Mathieu Saby, 2020) :
https://msaby.gitlab.io/tutoriel-openrefine/
• Tutoriel vidéo en français (Nicolas Vigneron, 2021) :
https://www.youtube.com/watch?v=pMJmZ-rwRhc
10
2. Installer,
lancer,
désinstaller,
mettre à jour
Télécharger OpenRefine : openrefine.org/download
12
Installer et lancer OpenRefine
▸ OpenRefine fonctionne avec JAVA. Les versions récentes
d’OpenRefine installent JAVA automatiquement sur votre
machine.
▸ Installation Sous Windows :
▹ Fichier exe : Installation classique.
▹ OU Archive ZIP : Extraction dans un dossier de votre choix.
▸ Lancement sous Windows : ouvrir le dossier d’installation
et exécuter openrefine.exe (faire un raccourci si besoin)
▸ Installation sous macOS : Ouvrir le fichier DMG et faire
glisser l'icône OpenRefine dans le dossier Applications.
▸ Lancement sous macOS via le dossier Applications.
13
Ouverture d’OpenRefine
14
OpenRefine s’ouvre en local sur un navigateur internet.
Navigateurs recommandés : Google Chrome, Chromium, Opera, Safari, Microsoft Edge
Changer
la langue
Ouverture d’OpenRefine
15
Une console JAVA s’ouvre en arrière-plan.
- Garder ouverte tant que vous travaillez sur un projet OpenRefine.
- Fermer quand vous avez terminé.
Désinstallation et mise à jour
▸ Désinstallation sous Windows
▹ Supprimez le dossier d'installation d'OpenRefine.
▹ Optionnel : supprimer les fichiers de configuration et les projets situés dans le dossier
C:Users[VotreNomUtilisateur]AppDataRoamingOpenRefine.
▸ Désinstallation sous macOS
▹ Supprimer l'icône OpenRefine du dossier Applications.
▹ Optionnel : supprimer les fichiers de configuration et les projets situés dans
~/Library/Application Support/OpenRefine.
▸ Conseil : sauvegarder les projets avant de désinstaller/mettre à jour, en
créant une copie du dossier projets (chemins ci-dessus)
▸ Mettre à jour : désinstaller, puis même démarche que pour l’installation.
▸ Attention aux problèmes de compatibilité projet d’une version openrefine
à une autre.
16
Configuration de la mémoire
▸ OpenRefine peut nécessiter plus de mémoire pour gérer de grands
ensembles de données. Vous pouvez configurer la quantité de mémoire
allouée :
▸ Windows : modifier le fichier refine.ini (situé dans le dossier
d'installation) .
▸ macOS : modifier les préférences système.
17
D’après le manuel officiel, OpenRefine ralentit sur des jeux de données avec plus
d’1 million de cellules, ou une taille > 50mb
3. Créer un
projet et importer
des données
Données illustratives
▸ La formation sera illustrée avec la base de données Muséofile, Répertoire
des Musées de France.
▸ Fichier : musees-de-france-base-museofile.csv
▸ Source : Ministère de la Culture.
▸ Lien téléchargement
19
Démarrer un projet OpenRefine
20
1
2
3
21
1. Donner un nom au projet 2. Rajouter des étiquettes
Prévisualisation (se met à jour automatiquement)
3.Configuration de l’import
Décocher en général
1ère ligne
= titres ?
4. Créer le projet
Le projet est maintenant créé
▸ Le projet sera sauvegardé en temps réel pendant que vous travaillez dessus.
▸ Pour exporter une version du projet, cliquez sur exporter / archive de projet
OpenRefine.
22
Nombre de lignes
concernées par
les traitements
Avant de passer à la suite : comment ouvrir un ancien projet ?
23
1
2. Sélectionner projet à
ouvrir
Si besoin, Ouvrir le répertoire où
sont stockés les projets (pour
créer une archive par exemple)
4. Modifications
manuelles cellule
par cellule
Modifications manuelles cellule par cellule
▸ Même si ce n’est pas sa fonction première, OpenRefine permet de corriger
manuellement une cellule donnée.
25
Appliquer
uniquement à
cette cellule
Appliquer à toutes les
cellules renfermant
“Dordogne”
5. Modifications
globales
Modifications globales du tableau
▸ Le menu Toutes à gauche du tableau permet d’exécuter des opérations sur
toutes les colonnes.
▸ Le sous-menu modifier toutes les colonnes est utile pour un 1er nettoyage.
27
Enlever les espaces qui traînent en amont ou
en aval des chaînes de caractère
musée historique → musée historique
“ → "
musée historique → Musée Historique
musée historique → MUSEE HISTORIQUE
MusEe hIstoRique → musee historique
Nous verrons le reste plus tard (partie Identifier
des types de données et les convertir) ☺
6. Modifications
colonne par
colonne
Masquer une colonne encombrante
▸ La colonne Histoire renferme trop d’information et rend la lecture du tableau difficile.
▸ Il est possible de la masquer.
29
Masquer une colonne encombrante, résultat
30
Cliquer pour
déployer de
nouveau
Réordonner des colonnes
▸ Exemple : déplacer la colonne telephone au bout du tableau
31
Renommer / supprimer une colonne. Exemple : la colonne lieu
32
Ré-ordonner / supprimer avec un point de vue général sur
toutes les colonnes
▸ Aller dans Toutes / Retrier / supprimer des colonnes
33
Transformations courantes
▸ Pour chaque
colonne prise à
part, il est
possible
d’appliquer les
transformations
courantes vues
plus tôt sur la
colonne toutes.
34
7. Identifier des
types de
données et les
convertir
Les types de données identifiées par OpenRefine
▸ OpenRefine identifie 4 types de données, qui pourront être
associées à des opérations adaptées, telles que des filtres et
des facettes :
▹ Textes : chaînes de caractère
▹ Nombres
▹ Dates
▹ Booléennes (TRUE ou FALSE)
▸ Deux types propres à OpenRefine doivent être mentionnés :
▹ null : donnée inexistante (cellule vide)
▹ error : erreur suite à une opération exécutée dans la cellule. Exemple :
erreur de conversion d’une date à partir d’un texte.
36
Convertir une colonne d’un type de données à un autre
▸ Exemple : transformer la colonne annee_creation (texte) en
nombre :
37
Les données texte
s’affichent en noir
Les données
nombre s’affichent
en vert
Convertir une colonne d’un type de données à un autre
▸ Conversion en nombre : les données non-reconnues en tant
que nombre ne sont pas converties
38
Convertir une colonne d’un type de données à un autre
▸ Conversion en date
39
S’il manque des
infos sur le jour /
mois / heure, le 1er
Janvier est pris en
tant que référence
Mise en garde
▸ La conversion d’une colonne en nombre ou en dates
ouvre des possibilités de manipulation des données en
tant que nombres ou dates.
▸ Certaines colonnes codées avec des “chiffres” mais
stockées en texte doivent rester au format texte.
Exemples :
▹ Numéro de téléphone (risque de disparition du premier chiffre
s’il s’agit d’un zéro)
▹ Code postal
▹ ...
40
8. Trier des
données
Trier en fonction d’une colonne
▸ Exemple : en fonction de la colonne annee_creation (données
transformées préalablement en date)
42
Les erreurs et les
cellules vides null
seront positionnées
après les dates
valides
Trier en fonction d’une colonne
▸ Pour rendre le tri actuel permanent :
43
Le musée le plus
ancien de la base
de données est
antérieur à la
Révolution
9. Filtrer des
données : filtre
textuel
Filtrer des données
▸ Il existe deux fonctionnalités de filtrage de données avec OpenRefine:
▹ Facettes (texte / nombre / dates …)
▹ Filtres de texte (en réalité il s’agit d’un cas particulier de facette)
▸ Cette partie se focalise sur les filtres de texte.
▸ Exemple : dans la colonne artiste, rechercher toutes les cellules renfermant la chaîne
“Delacroix”
45
38 lignes
concernées
Possibilité d’utiliser des expressions régulières (rationnelles) :
regexp
▸ Pour rendre le filtre plus fin, il est possible d’utiliser des expressions
régulières = rationnelles (regexp)
▸ Exemple : filtrer toutes les lignes contentant “Delacroix” ou “Degas”
▸ regexp : Delacroix|Degas
46
45 lignes
concernées
Filtre de texte, suite et fin
▸ Pour Delacroix ET Degas, utiliser : (?=.*Delacroix)(?=.*Degas)
▸ Cours introductif aux expressions régulières :
https://anislerouge.com/introduction-regex/
▸ Pour retirer un filtre, cliquer sur la croix de la facette en haut à gauche.
47
10. Filtrer des
données :
facettes,
introduction
Qu’est-ce qu’une Facette dans OpenRefine ?
49
▸ Concept : une facette est un filtre dynamique et interactif
permettant de filtrer, segmenter et et explorer les données
de manière visuelle et intuitive.
▸ Les facettes sont l'une des fonctionnalités phares
d'OpenRefine.
▸ Le logo d’OpenRefine symbolise les facettes multiples
d'un diamant. Tout comme un diamant est vu sous
différents angles par ses facettes, OpenRefine permet
d'examiner les données sous différents aspects.
Pourquoi utiliser les facettes ?
50
▸ Nettoyage : Les facettes permettent d'identifier
rapidement des anomalies, des doublons et des patterns
dans les données. Elles aident à nettoyer les données en
filtrant et en regroupant des valeurs similaires.
▸ Exploration et Analyse Interactive : Avec les facettes,
vous pouvez interagir avec les données en temps réel,
filtrant et ajustant les vues pour approfondir votre analyse.
▸ Il existe des facettes spécifiques aux données textuelles,
numériques, dates, voire plus.
11. Facettes
textuelles
Facettes textuelles : Introduction
52
▸ Les facettes textuelles permettent de filtrer et d'explorer les données
textuelles dans une colonne.
▸ Elles sont utilisées pour identifier des valeurs uniques, des erreurs
typographiques, faire des corrections et regrouper des valeurs
similaires.
▸ Nous verrons :
▹ Création d’une Facette Classique avec tris par nom / par nombre de choix
▹ Filtrage de la facette
▹ Suppression de lignes concernées par une facette
▹ Correction des erreurs typographiques
▹ Regroupement automatique de catégories (clustering)
▸ Possibilité de construire des facettes personnalisées poussées (langage
GREL)
Exemple : colonne
53
▸ Les facettes textuelles permettent de filtrer et d'explorer les
données textuelles dans une colonne.
Une
fenêtre
apparaît
à gauche
Effectif
de la
catégorie
115 catégories de
protection_espace au total
Facette : choisir le tri qui vous intéresse
54
Catégorie la plus
fréquente (251
occurrences)
Problème :
même
catégorie
séparée
en 2
Tri alphabétique des
catégories par nom
Tri par effectifs d’occurrence
(explorer les catégories + ou –
représentées)
Filtrage de la facette
55
▸ Pour filtrer une facette, il suffit de cliquer sur les catégories qui vous
intéressent, les inclure ou les exclure.
▸ Par exemple : conserver uniquement Site classé et Site inscrit
69 lignes
concernées sur 1226
Inverser le filtre
56
▸ Inverser le filtre : tout conserver sauf Site classé et Site inscrit
1157 lignes
concernées sur 1226
Filtrer par effectifs d’occurrences des catégories
57
▸ Tout en bas de la facette vous trouverez une option facette par
nombre de choix
▸ Exemple : conserver uniquement les catégories apparaissant au
moins 50 fois
On remarque qu’il y
a 447 cellules vides
(null) dans la colonne
protection_espace
Supprimer les lignes conservées par une facette
58
▸ Aller dans la colonnes Toutes / Editer les lignes / Supprimer les
lignes correspondantes
Correction d’erreurs typographiques
59
▸ Les facettes permettent d’identifier rapidement des erreurs
typographiques.
▸ Ces erreurs se traduisent souvent par l’apparition de la même
catégorie plusieurs fois dans la facette (typographies différentes).
Problème : même
catégorie. m de
Monument
minuscule /
majuscule
Problème : même
catégorie. Point
final dans l’une et
pas dans l’autre
Correction d’erreurs typographiques
60
▸ Pour corriger une catégorie, cliquer sur éditer, corriger puis cliquer
sur appliquer. La facette se met à jour.
Correction
Catégories dissociées Catégories groupées
12. Facettes
textuelles :
regrouper
automatiquement
les valeurs proches
Regrouper automatiquement les valeurs proches
62
▸ Les corrections typographiques pour fusionner des catégories
peuvent prendre beaucoup de temps.
Correction
Catégories dissociées Catégories groupées
63 ▸ OpenRefine propose des algorithmes de fusion (regroupement)
automatiques.
Catégories dissociées
Catégories groupées
Configuration de
l’algorithme
Cliquer ici
64 ▸ OpenRefine propose des algorithmes de fusion (regroupement)
automatiques.
Suggestions de
regroupements
Filtrer /
explorer les
regroupements
65 ▸ Faire défiler l’ascenseur sur la droite
Suggestion de
noms pour les
catégories
fusionnées
1. Sélectionner
les propositions
de fusion à
exécuter (ou tout
sélectionner)
2. Cliquer
Fusionner la
sélection &
regrouper
Conséquence
66
▸ L’opération nous fait passer de 115 choix (catégories) à 73
uniquement !
Opération “Groupe”
Quelques notes sur les algorithmes
67
Conseil :
commencer
avec cette
procédure
(simple)
Si besoin,
enchaîner
avec celle-ci
D’après Mathieu Saby (lien)
D’après Mathieu Saby (lien)
Quelques notes sur les algorithmes
68
Si besoin,
enchaîner
avec celle-ci
D’après Mathieu Saby (lien)
D’après Mathieu Saby (lien)
13. Facettes
numériques et
chronologiques
Facettes numériques et chronologiques : introduction
70
▸ Les facettes numériques et chronologiques permettent de filtrer et
d'explorer les données numériques et les dates.
▸ Elles facilitent l'identification des valeurs extrêmes, des tendances
et des anomalies dans les données quantitatives et temporelles.
▸ Facettes numérique et chronologique ont la même forme : elles
permettent de sélectionner une « plage » de valeurs dans un
intervalle.
▸ Possibilité de construire des facettes numériques personnalisées
poussées (langage GREL).
Facette chronologique
71
▸ Exemple : facette chronologique appliquée sur la colonne
annee_creation (les données annee_creation doivent être converties
en date au préalable).
▸ Filtrer les musées créés entre 1953 et 2001, en incluant les données
non-date et en excluant les musées dont la date de création n’est pas
renseignée (décocher Vide)
1
2
3
14. Cumuler
plusieurs facettes et
exporter la
configuration
Cumuler plusieurs facettes et exporter la configuration
73
▸ Il est possible de cumuler
plusieurs facettes pour
avoir une vision très précise
d’un jeu de données.
▸ Exemple : filtrer les musées
de Nouvelle Aquitaine,
Occitanie et Pays de la Loire
créés au XIXe siècle.
▸ Pour exporter l’extrait,
cliquer sur exporter et
sélectionner le type de
fichier souhaité.
15. Etoiles,
Marques et
suppression
manuelle de lignes
Etoiles et marques
75
▸ Les étoiles (stars ) et les marques
(drapeaux, flags ) permettent de mettre en
évidence des lignes spécifiques dans un
ensemble de données.
▸ Elles facilitent la gestion et l'organisation des
données lors du nettoyage et de l’analyse.
▸ Activables dans la colonne Toutes.
▸ Etoiles et marques n’ont pas de spécificités
différentes. Il s’agit simplement de deux types
de repères utilisables.
▸ Souvent utilisées en dernier recours, lorsqu’il
n’y a pas moyen de filtrer des lignes à partir de
facettes sur les colonnes.
Etoiles et marques
76
▸ Exemple : on pourrait :
▹ Etoiler les musées dont la date de création est
à revoir suite à l’inspection de la base de
données par une experte.
▹ Marquer les musées ayant subi des travaux en
2024.
▸ Ces deux infos n’existent pas dans le jeu de
données d’origine.
▸ Possibilité d’avoir à la fois une étoile et une
marque pour certains musées.
Etoiles et marques
77
▸ Il est possible de créer des facettes pour distinguer les lignes
étoilées/marquées de celles qui ne le sont pas.
▸ Aller dans Toutes / Facette / Facette par étoile ou par marque
Supprimer des lignes
78
▸ Pour supprimer des lignes spécifiques manuellement :
1. Etoiler (ou marquer) les lignes, ici 6 lignes.
2. Créer une facette sur les lignes correspondantes (diapo précédente).
3. Filtrer les true dans la facette.
4. Aller dans Toutes / Editer les lignes / Supprimer les lignes correspondantes
16. Annuler ou
rejouer une série de
traitements (Défaire
/ Refaire)
Annuler ou rejouer une série de traitements (Défaire / Refaire)
80
• OpenRefine permet de suivre tous les
traitements/modifications apportés aux données, étape
par étape : Fonction d'historique (panel de gauche : Défaire
/Refaire).
• Il est possible de revenir sur n’importe quelle étape de
l’historique.
• Utile pour examiner le processus de nettoyage/d’exploration
et de revenir sur ses pas si besoin.
Historique des traitements / modifications
81
Ordre
chronologique
des étapes
Création du projet
Conversion de annee_creation en dates
Tri permanent du tableau par ordre de date
Groupage algorithmique des catégories de
protection_espace
Etoiler des lignes
Suppression des lignes étoilées
Revenir sur un traitement antérieur
82
• Pour revenir sur une étape
antérieure, il suffit de cliquer
sur l’étape en question dans
l’historique.
• Exemple : revenir sur l’étape de
groupage algorithmique des
catégories protection_espace, et
annuler toutes les étoiles et
suppressions de lignes
correspondantes.
83 • Il est possible d’exporter l’historique des traitements dans un
programme JSON. Procédure :
1. Cliquer Extraire
2. Copier/Coller le code JSON dans
un fichier à part (bloc notes par
exemple) et sauvegarder.
84 • Importer et appliquer des traitements. Procédure :
1. Cliquer Appliquer
2. Coller le code JSON et cliquer sur
Effectuer les opérations
Remarques
85
• Si on revient sur une étape antérieure, et qu’on exécute une
nouvelle modification, l’historique postérieur est
supprimé pour laisser la place à la nouvelle modification.
• Les facettes n’étant pas des modifications en soi, mais des
points de vue, elles ne sont pas incluses dans l’historique.
• Pour sauvegarder des facettes, vous pouvez :
• Soit exporter le fichier filtré (bouton exporter)
• Soit cliquer sur le bouton permalien, tout en haut à gauche. Cette
commande génère une URL donnant accès directement au jeu de données
filtré au sein de OpenRefine.
17. Exporter une
copie des données
traitées
Exporter une copie des données traitées
87
• Pour sauvegarder une copie des
données traitées :
• Cliquer le bouton Exporter (en
haut à droite) et choisir le format
souhaité. Plusieurs options sont
disponibles.
18. Séparer des
champs en lignes
(cellules) ou en
colonnes
Séparer des champs en lignes (cellules) ou en colonnes
89
• Il peut être utile de séparer les informations incluses
dans une cellule sur plusieurs compartiments (lignes
ou colonnes).
• Les deux exemples qui suivent abordent des
problématiques où ces opérations s’avèrent utiles.
• Il y aura un exemple lignes (cellules) et un exemple
colonnes.
Séparer des champs en lignes (cellules) ou en colonnes
90
• On se demande quels artistes sont les plus
représentés à travers les musées de cette
base de données. Exemple :
• Delacroix : 28 musées
• Corot : 26 musées
• Etc.
• Pour répondre à la question, On peut
s’amuser à faire un filtre texte par artiste
→ pénible.
• Autre solution : séparer les artistes dans des
cellules, et faire une facette !
Séparer des champs en lignes (cellules)
91
Tous les champs séparés par une virgule
suivie d’un espace seront séparés dans des
cellules différentes
Le tableau est remodelé
92
On passe de
1226 lignes (1226 musées) à
6666 lignes (énumération des
artistes dans chaque musée)
Une ligne par
artiste/musée
Application d’une facette texte sur la colonne artiste
93
Il y a quand même un peu de ménage à faire…
94
Un deuxième exemple : séparer des champs en colonnes
95
• Observer la colonne coordonnees.
• Chaque cellule correspond à :
« latitude, longitude »
• Les procédures d’analyse de données
géographiques sont mieux adaptées lorsque
les deux informations sont séparées.
• Procédons à cette séparation.
Séparer des champs en colonnes
96
Renommer les colonnes si besoin
97
19. Enrichissement
(réconciliation) avec
la base Wikidata
Enrichissement (réconciliation) avec la base Wikidata
99
• La réconciliation est le processus d'association des données de
votre projet avec des entités reconnues dans une base de données
externe, comme Wikidata.
• Permet d'enrichir vos données avec des informations
supplémentaires provenant de sources fiables.
• Wikidata est une base de données libre et collaborative qui contient
des millions d'éléments structurés (identifiants uniques, coordonnées
géographiques, descriptions, etc.).
• Autres bases de données de réconciliation : DBpedia, VIAF, ou
encore, bases de données locales spécifiques à certains domaines.
→ accessibles via des extensions (liste & instructions d’installation).
Enrichissement (réconciliation) avec la base Wikidata
100
• Exemple : vous
possédez sur un fichier
Excel le top 10 de vos
livres préférés. Vous
souhaitez l’enrichir avec
des informations
Wikidata.
• Créer un projet
top10_livres avec
Google Refine
Enrichissons la colonne Autrice / auteur avec la base Wikidata
101
Enrichissons la colonne Autrice / auteur avec la base Wikidata
102
La base des “humains” est
la plus vraisemblable, pour
nos autrices/auteurs
103
Autrices et auteurs
connectés à des bases
certaines
Autrices et auteurs
relié.e.s à plusieurs
bases. A vérifier
manuellement.
Emile Ajar est devenu
Romain Gary
(pseudonyme) ☺
Apparier les autrices et auteurs incertains à la meilleure base
parmi les bases suggérées
▸ Pour Cervantes, la première base proposée semble
être pertinente. Cliquer sur Apparier cette cellule
104
Taux d’appariements complets dans une
colonne. Idéal : 100%.
Et voilà le travail
▸ Toute la liste est
maintenant
correctement
appariée aux
bonnes bases.
105
Il est possible d’associer
également les titres à des
bases Wikidata.
Création de nouvelles colonnes à partir des bases Wikidata
106
Choisir les champs à récupérer dans les
bases Wikidata
Résultat : ajout du pays de nationalité et du sexe
107
20. Transformations
et facettes
avancées : le
langage GREL
Transformations et facettes avancées : le langage GREL
109
• GREL (General Refine Expression Language) est un langage utilisé dans OpenRefine
pour manipuler et transformer les données, et pour créer des facettes.
• Il permet de créer des expressions complexes pour des transformations et des
facettes avancées.
• Il est possible de taper du GREL dans les fonctionnalités ci-dessous :
GREL facette GREL transformation
Exemple
110
• Dans la base musées, sélectionner tous les numéros de téléphone commençant
avec 04.
Taper le code ici.
value correspond aux données
d’origine.
startsWith() est une fonction GREL
signifiant “commence avec”
Résultat
111
▸ Il y a 312 numéros de téléphone commençant par 04.
112
Fonction GREL Utilité Exemple de script Résultat
value.toUppercase()
Convertir le texte en
majuscules
value.toUppercase("text") "TEXT"
value.toLowercase()
Convertir le texte en
minuscules
value.toLowercase("TEXT") "text"
value.toTitlecase()
Convertir le texte en
majuscules initiales
value.toTitlecase("open refine") "Open Refine"
value.trim()
Supprimer les espaces en
début et fin de texte
value.trim(" text ") "text"
value.length() Obtenir la longueur du texte value.length("text") 4
value.substring(start, end)
Extraire une sous-chaîne de
caractères
value.substring("textual", 0, 4) "text"
value.contains()
Vérifier si une chaîne contient
une sous-chaîne
value.contains("Bonjour", "Bon") TRUE
value.replace("old", "new")
Remplacer une partie du
texte
value.replace("foofoo", "foo", "bar") "barbar"
value.split("delimiter")
Diviser le texte en liste selon
un délimiteur
value.split("apple,banana", ",") ["apple", "banana"]
value.join("delimiter")
Joindre une liste en une
chaîne de texte
value.join(["apple", "banana"], ",") "apple,banana"
value.toDate()
Convertir une chaîne de texte
en date
value.toDate("2024-06-18") "2024-06-18T00:00:00Z"
value.toNumber()
Convertir une chaîne de texte
en nombre
value.toNumber("123") 123
value.toString()
Convertir une valeur en
chaîne de texte
value.toString(123) "123"
isBlank(value) Vérifier si une cellule est vide isBlank("") true
value.indexOf("substring")
Trouver l'index d'une sous-
chaîne
value.indexOf("foobar", "bar") 3
Liste non-
exhaustive
de
fonctions
GREL
113
Fin !
Des questions ?
Vous pouvez me contacter sur
linkedin.com/in/jean-paul-maalouf
www.statistique-formation.fr

OpenRefine - nettoyer et explorer des données

  • 1.
    Nettoyer et explorer desdonnées avec OpenRefine Jean Paul Maalouf linkedin.com/in/jean-paul-maalouf www.statistique-formation.fr Août 2024
  • 2.
    Plan – Nettoyeret explorer des données avec OpenRefine 1. OpenRefine : introduction 2. Installer, lancer, mettre à jour, désinstaller 3. Créer un projet et importer des données 4. Modifications manuelles cellule par cellule 5. Modifications globales (colonne toutes) 6. Modifications par colonne 7. Identifier des types de données et les convertir 8. Trier des données 9. Filtrer des données : filtre de texte 10.Filtrer les données, Facettes : introduction 11.Facettes textuelles 2
  • 3.
    Plan – Nettoyeret explorer des données avec OpenRefine 12.Facettes textuelles : regrouper automatiquement les valeurs proches 13.Facettes numériques et chronologiques 14.Cumuler plusieurs facettes et exporter la configuration 15.Etoiles, marques et suppression manuelle de lignes 16.Annuler ou rejouer une série de traitements (Défaire / Refaire) 17.Exporter des données traitées 18.Aller plus loin : séparer des champs en lignes (cellules) ou en colonnes 19.Aller plus loin : enrichissement (réconciliation) avec la base Wikidata 20.Aller plus loin : Transformations et facettes avancées (le langage GREL) 3
  • 4.
  • 5.
    Qu’est-ce qu’OpenRefine ? ▸Outil open-source, gratuit et convivial pour nettoyer, transformer et enrichir des jeux de données. ▸ Il fonctionne en local hors connexion sur un navigateur internet. ▸ Exemples concrets d’utilisation : ▹ Correction des erreurs typographiques dans un fichier de contacts. ▹ Transformation de formats de date incohérents en un format standard. ▹ Réconciliation et enrichissement de données géographiques avec Wikidata. ▹ Préparation d’un jeu de données en vue d’une analyse plus fine. 5
  • 6.
    Principales fonctions d’OpenRefine •Nettoyage des données : Détection et correction des erreurs, des doublons et des incohérences. • Transformation des données : Conversion de formats, réorganisation des colonnes, et manipulation des valeurs des cellules. • Exploration des données : Utilisation de facettes et de filtres pour explorer les données et découvrir des tendances ou des anomalies. • Enrichissement des données : Connexion avec des bases de données externes comme Wikidata pour ajouter des informations supplémentaires. 6
  • 7.
    Pourquoi utiliser OpenRefine? • Efficacité : Automatisation de nombreuses tâches répétitives de nettoyage et de transformation des données. • Flexibilité : Multiplateforme (Win, Mac, Linux) ; Prise en charge de divers formats de données. • Transparence : Historique complet des modifications. Possibilité de revenir à des opérations antérieures. • Par rapport à Excel : Bien que puissant, Excel manque de certaines capacités de nettoyage, de transformation et d’enrichissement de données qu'offre OpenRefine. • Par rapport aux langages de programmation (R, Python…) : avec ses menus déroulants, OpenRefine est plus convivial pour les utilisateurs non-programmeurs. 7
  • 8.
    Types de fichierspris en compte 8 • Fichiers CSV / TSV / séparateur • Fichiers texte à base de lignes • Fichiers texte à largeur de champ fixe • PC-Axis text files • Fichiers JSON • Fichiers MARC • Fichiers JSON-LD • Fichiers RDF • Wikitext • Fichiers XML • Feuilles de calcul Open Document Format (.ods) • Fichiers Excel • Google Sheets • URL • Base SQL • Presse-papiers (clipboard)
  • 9.
    Avantages / inconvénients(d’après Mathieu Saby) 9 D’après le manuel officiel, OpenRefine ralentit sur des jeux de données avec plus d’1 million de cellules, ou une taille > 50mb
  • 10.
    Ressources • Manuel officield’utilisation (en anglais) : https://openrefine.org/docs • Autres ressources : https://openrefine.org/external_resources • Tutoriels divers : https://github.com/OpenRefine/OpenRefine/wiki/External-Resources • Tutoriel complet en français (Mathieu Saby, 2020) : https://msaby.gitlab.io/tutoriel-openrefine/ • Tutoriel vidéo en français (Nicolas Vigneron, 2021) : https://www.youtube.com/watch?v=pMJmZ-rwRhc 10
  • 11.
  • 12.
    Télécharger OpenRefine :openrefine.org/download 12
  • 13.
    Installer et lancerOpenRefine ▸ OpenRefine fonctionne avec JAVA. Les versions récentes d’OpenRefine installent JAVA automatiquement sur votre machine. ▸ Installation Sous Windows : ▹ Fichier exe : Installation classique. ▹ OU Archive ZIP : Extraction dans un dossier de votre choix. ▸ Lancement sous Windows : ouvrir le dossier d’installation et exécuter openrefine.exe (faire un raccourci si besoin) ▸ Installation sous macOS : Ouvrir le fichier DMG et faire glisser l'icône OpenRefine dans le dossier Applications. ▸ Lancement sous macOS via le dossier Applications. 13
  • 14.
    Ouverture d’OpenRefine 14 OpenRefine s’ouvreen local sur un navigateur internet. Navigateurs recommandés : Google Chrome, Chromium, Opera, Safari, Microsoft Edge Changer la langue
  • 15.
    Ouverture d’OpenRefine 15 Une consoleJAVA s’ouvre en arrière-plan. - Garder ouverte tant que vous travaillez sur un projet OpenRefine. - Fermer quand vous avez terminé.
  • 16.
    Désinstallation et miseà jour ▸ Désinstallation sous Windows ▹ Supprimez le dossier d'installation d'OpenRefine. ▹ Optionnel : supprimer les fichiers de configuration et les projets situés dans le dossier C:Users[VotreNomUtilisateur]AppDataRoamingOpenRefine. ▸ Désinstallation sous macOS ▹ Supprimer l'icône OpenRefine du dossier Applications. ▹ Optionnel : supprimer les fichiers de configuration et les projets situés dans ~/Library/Application Support/OpenRefine. ▸ Conseil : sauvegarder les projets avant de désinstaller/mettre à jour, en créant une copie du dossier projets (chemins ci-dessus) ▸ Mettre à jour : désinstaller, puis même démarche que pour l’installation. ▸ Attention aux problèmes de compatibilité projet d’une version openrefine à une autre. 16
  • 17.
    Configuration de lamémoire ▸ OpenRefine peut nécessiter plus de mémoire pour gérer de grands ensembles de données. Vous pouvez configurer la quantité de mémoire allouée : ▸ Windows : modifier le fichier refine.ini (situé dans le dossier d'installation) . ▸ macOS : modifier les préférences système. 17 D’après le manuel officiel, OpenRefine ralentit sur des jeux de données avec plus d’1 million de cellules, ou une taille > 50mb
  • 18.
    3. Créer un projetet importer des données
  • 19.
    Données illustratives ▸ Laformation sera illustrée avec la base de données Muséofile, Répertoire des Musées de France. ▸ Fichier : musees-de-france-base-museofile.csv ▸ Source : Ministère de la Culture. ▸ Lien téléchargement 19
  • 20.
    Démarrer un projetOpenRefine 20 1 2 3
  • 21.
    21 1. Donner unnom au projet 2. Rajouter des étiquettes Prévisualisation (se met à jour automatiquement) 3.Configuration de l’import Décocher en général 1ère ligne = titres ? 4. Créer le projet
  • 22.
    Le projet estmaintenant créé ▸ Le projet sera sauvegardé en temps réel pendant que vous travaillez dessus. ▸ Pour exporter une version du projet, cliquez sur exporter / archive de projet OpenRefine. 22 Nombre de lignes concernées par les traitements
  • 23.
    Avant de passerà la suite : comment ouvrir un ancien projet ? 23 1 2. Sélectionner projet à ouvrir Si besoin, Ouvrir le répertoire où sont stockés les projets (pour créer une archive par exemple)
  • 24.
  • 25.
    Modifications manuelles cellulepar cellule ▸ Même si ce n’est pas sa fonction première, OpenRefine permet de corriger manuellement une cellule donnée. 25 Appliquer uniquement à cette cellule Appliquer à toutes les cellules renfermant “Dordogne”
  • 26.
  • 27.
    Modifications globales dutableau ▸ Le menu Toutes à gauche du tableau permet d’exécuter des opérations sur toutes les colonnes. ▸ Le sous-menu modifier toutes les colonnes est utile pour un 1er nettoyage. 27 Enlever les espaces qui traînent en amont ou en aval des chaînes de caractère musée historique → musée historique “ → " musée historique → Musée Historique musée historique → MUSEE HISTORIQUE MusEe hIstoRique → musee historique Nous verrons le reste plus tard (partie Identifier des types de données et les convertir) ☺
  • 28.
  • 29.
    Masquer une colonneencombrante ▸ La colonne Histoire renferme trop d’information et rend la lecture du tableau difficile. ▸ Il est possible de la masquer. 29
  • 30.
    Masquer une colonneencombrante, résultat 30 Cliquer pour déployer de nouveau
  • 31.
    Réordonner des colonnes ▸Exemple : déplacer la colonne telephone au bout du tableau 31
  • 32.
    Renommer / supprimerune colonne. Exemple : la colonne lieu 32
  • 33.
    Ré-ordonner / supprimeravec un point de vue général sur toutes les colonnes ▸ Aller dans Toutes / Retrier / supprimer des colonnes 33
  • 34.
    Transformations courantes ▸ Pourchaque colonne prise à part, il est possible d’appliquer les transformations courantes vues plus tôt sur la colonne toutes. 34
  • 35.
    7. Identifier des typesde données et les convertir
  • 36.
    Les types dedonnées identifiées par OpenRefine ▸ OpenRefine identifie 4 types de données, qui pourront être associées à des opérations adaptées, telles que des filtres et des facettes : ▹ Textes : chaînes de caractère ▹ Nombres ▹ Dates ▹ Booléennes (TRUE ou FALSE) ▸ Deux types propres à OpenRefine doivent être mentionnés : ▹ null : donnée inexistante (cellule vide) ▹ error : erreur suite à une opération exécutée dans la cellule. Exemple : erreur de conversion d’une date à partir d’un texte. 36
  • 37.
    Convertir une colonned’un type de données à un autre ▸ Exemple : transformer la colonne annee_creation (texte) en nombre : 37 Les données texte s’affichent en noir Les données nombre s’affichent en vert
  • 38.
    Convertir une colonned’un type de données à un autre ▸ Conversion en nombre : les données non-reconnues en tant que nombre ne sont pas converties 38
  • 39.
    Convertir une colonned’un type de données à un autre ▸ Conversion en date 39 S’il manque des infos sur le jour / mois / heure, le 1er Janvier est pris en tant que référence
  • 40.
    Mise en garde ▸La conversion d’une colonne en nombre ou en dates ouvre des possibilités de manipulation des données en tant que nombres ou dates. ▸ Certaines colonnes codées avec des “chiffres” mais stockées en texte doivent rester au format texte. Exemples : ▹ Numéro de téléphone (risque de disparition du premier chiffre s’il s’agit d’un zéro) ▹ Code postal ▹ ... 40
  • 41.
  • 42.
    Trier en fonctiond’une colonne ▸ Exemple : en fonction de la colonne annee_creation (données transformées préalablement en date) 42 Les erreurs et les cellules vides null seront positionnées après les dates valides
  • 43.
    Trier en fonctiond’une colonne ▸ Pour rendre le tri actuel permanent : 43 Le musée le plus ancien de la base de données est antérieur à la Révolution
  • 44.
    9. Filtrer des données: filtre textuel
  • 45.
    Filtrer des données ▸Il existe deux fonctionnalités de filtrage de données avec OpenRefine: ▹ Facettes (texte / nombre / dates …) ▹ Filtres de texte (en réalité il s’agit d’un cas particulier de facette) ▸ Cette partie se focalise sur les filtres de texte. ▸ Exemple : dans la colonne artiste, rechercher toutes les cellules renfermant la chaîne “Delacroix” 45 38 lignes concernées
  • 46.
    Possibilité d’utiliser desexpressions régulières (rationnelles) : regexp ▸ Pour rendre le filtre plus fin, il est possible d’utiliser des expressions régulières = rationnelles (regexp) ▸ Exemple : filtrer toutes les lignes contentant “Delacroix” ou “Degas” ▸ regexp : Delacroix|Degas 46 45 lignes concernées
  • 47.
    Filtre de texte,suite et fin ▸ Pour Delacroix ET Degas, utiliser : (?=.*Delacroix)(?=.*Degas) ▸ Cours introductif aux expressions régulières : https://anislerouge.com/introduction-regex/ ▸ Pour retirer un filtre, cliquer sur la croix de la facette en haut à gauche. 47
  • 48.
    10. Filtrer des données: facettes, introduction
  • 49.
    Qu’est-ce qu’une Facettedans OpenRefine ? 49 ▸ Concept : une facette est un filtre dynamique et interactif permettant de filtrer, segmenter et et explorer les données de manière visuelle et intuitive. ▸ Les facettes sont l'une des fonctionnalités phares d'OpenRefine. ▸ Le logo d’OpenRefine symbolise les facettes multiples d'un diamant. Tout comme un diamant est vu sous différents angles par ses facettes, OpenRefine permet d'examiner les données sous différents aspects.
  • 50.
    Pourquoi utiliser lesfacettes ? 50 ▸ Nettoyage : Les facettes permettent d'identifier rapidement des anomalies, des doublons et des patterns dans les données. Elles aident à nettoyer les données en filtrant et en regroupant des valeurs similaires. ▸ Exploration et Analyse Interactive : Avec les facettes, vous pouvez interagir avec les données en temps réel, filtrant et ajustant les vues pour approfondir votre analyse. ▸ Il existe des facettes spécifiques aux données textuelles, numériques, dates, voire plus.
  • 51.
  • 52.
    Facettes textuelles :Introduction 52 ▸ Les facettes textuelles permettent de filtrer et d'explorer les données textuelles dans une colonne. ▸ Elles sont utilisées pour identifier des valeurs uniques, des erreurs typographiques, faire des corrections et regrouper des valeurs similaires. ▸ Nous verrons : ▹ Création d’une Facette Classique avec tris par nom / par nombre de choix ▹ Filtrage de la facette ▹ Suppression de lignes concernées par une facette ▹ Correction des erreurs typographiques ▹ Regroupement automatique de catégories (clustering) ▸ Possibilité de construire des facettes personnalisées poussées (langage GREL)
  • 53.
    Exemple : colonne 53 ▸Les facettes textuelles permettent de filtrer et d'explorer les données textuelles dans une colonne. Une fenêtre apparaît à gauche Effectif de la catégorie 115 catégories de protection_espace au total
  • 54.
    Facette : choisirle tri qui vous intéresse 54 Catégorie la plus fréquente (251 occurrences) Problème : même catégorie séparée en 2 Tri alphabétique des catégories par nom Tri par effectifs d’occurrence (explorer les catégories + ou – représentées)
  • 55.
    Filtrage de lafacette 55 ▸ Pour filtrer une facette, il suffit de cliquer sur les catégories qui vous intéressent, les inclure ou les exclure. ▸ Par exemple : conserver uniquement Site classé et Site inscrit 69 lignes concernées sur 1226
  • 56.
    Inverser le filtre 56 ▸Inverser le filtre : tout conserver sauf Site classé et Site inscrit 1157 lignes concernées sur 1226
  • 57.
    Filtrer par effectifsd’occurrences des catégories 57 ▸ Tout en bas de la facette vous trouverez une option facette par nombre de choix ▸ Exemple : conserver uniquement les catégories apparaissant au moins 50 fois On remarque qu’il y a 447 cellules vides (null) dans la colonne protection_espace
  • 58.
    Supprimer les lignesconservées par une facette 58 ▸ Aller dans la colonnes Toutes / Editer les lignes / Supprimer les lignes correspondantes
  • 59.
    Correction d’erreurs typographiques 59 ▸Les facettes permettent d’identifier rapidement des erreurs typographiques. ▸ Ces erreurs se traduisent souvent par l’apparition de la même catégorie plusieurs fois dans la facette (typographies différentes). Problème : même catégorie. m de Monument minuscule / majuscule Problème : même catégorie. Point final dans l’une et pas dans l’autre
  • 60.
    Correction d’erreurs typographiques 60 ▸Pour corriger une catégorie, cliquer sur éditer, corriger puis cliquer sur appliquer. La facette se met à jour. Correction Catégories dissociées Catégories groupées
  • 61.
  • 62.
    Regrouper automatiquement lesvaleurs proches 62 ▸ Les corrections typographiques pour fusionner des catégories peuvent prendre beaucoup de temps. Correction Catégories dissociées Catégories groupées
  • 63.
    63 ▸ OpenRefinepropose des algorithmes de fusion (regroupement) automatiques. Catégories dissociées Catégories groupées Configuration de l’algorithme Cliquer ici
  • 64.
    64 ▸ OpenRefinepropose des algorithmes de fusion (regroupement) automatiques. Suggestions de regroupements Filtrer / explorer les regroupements
  • 65.
    65 ▸ Fairedéfiler l’ascenseur sur la droite Suggestion de noms pour les catégories fusionnées 1. Sélectionner les propositions de fusion à exécuter (ou tout sélectionner) 2. Cliquer Fusionner la sélection & regrouper
  • 66.
    Conséquence 66 ▸ L’opération nousfait passer de 115 choix (catégories) à 73 uniquement ! Opération “Groupe”
  • 67.
    Quelques notes surles algorithmes 67 Conseil : commencer avec cette procédure (simple) Si besoin, enchaîner avec celle-ci D’après Mathieu Saby (lien) D’après Mathieu Saby (lien)
  • 68.
    Quelques notes surles algorithmes 68 Si besoin, enchaîner avec celle-ci D’après Mathieu Saby (lien) D’après Mathieu Saby (lien)
  • 69.
  • 70.
    Facettes numériques etchronologiques : introduction 70 ▸ Les facettes numériques et chronologiques permettent de filtrer et d'explorer les données numériques et les dates. ▸ Elles facilitent l'identification des valeurs extrêmes, des tendances et des anomalies dans les données quantitatives et temporelles. ▸ Facettes numérique et chronologique ont la même forme : elles permettent de sélectionner une « plage » de valeurs dans un intervalle. ▸ Possibilité de construire des facettes numériques personnalisées poussées (langage GREL).
  • 71.
    Facette chronologique 71 ▸ Exemple: facette chronologique appliquée sur la colonne annee_creation (les données annee_creation doivent être converties en date au préalable). ▸ Filtrer les musées créés entre 1953 et 2001, en incluant les données non-date et en excluant les musées dont la date de création n’est pas renseignée (décocher Vide) 1 2 3
  • 72.
    14. Cumuler plusieurs facetteset exporter la configuration
  • 73.
    Cumuler plusieurs facetteset exporter la configuration 73 ▸ Il est possible de cumuler plusieurs facettes pour avoir une vision très précise d’un jeu de données. ▸ Exemple : filtrer les musées de Nouvelle Aquitaine, Occitanie et Pays de la Loire créés au XIXe siècle. ▸ Pour exporter l’extrait, cliquer sur exporter et sélectionner le type de fichier souhaité.
  • 74.
  • 75.
    Etoiles et marques 75 ▸Les étoiles (stars ) et les marques (drapeaux, flags ) permettent de mettre en évidence des lignes spécifiques dans un ensemble de données. ▸ Elles facilitent la gestion et l'organisation des données lors du nettoyage et de l’analyse. ▸ Activables dans la colonne Toutes. ▸ Etoiles et marques n’ont pas de spécificités différentes. Il s’agit simplement de deux types de repères utilisables. ▸ Souvent utilisées en dernier recours, lorsqu’il n’y a pas moyen de filtrer des lignes à partir de facettes sur les colonnes.
  • 76.
    Etoiles et marques 76 ▸Exemple : on pourrait : ▹ Etoiler les musées dont la date de création est à revoir suite à l’inspection de la base de données par une experte. ▹ Marquer les musées ayant subi des travaux en 2024. ▸ Ces deux infos n’existent pas dans le jeu de données d’origine. ▸ Possibilité d’avoir à la fois une étoile et une marque pour certains musées.
  • 77.
    Etoiles et marques 77 ▸Il est possible de créer des facettes pour distinguer les lignes étoilées/marquées de celles qui ne le sont pas. ▸ Aller dans Toutes / Facette / Facette par étoile ou par marque
  • 78.
    Supprimer des lignes 78 ▸Pour supprimer des lignes spécifiques manuellement : 1. Etoiler (ou marquer) les lignes, ici 6 lignes. 2. Créer une facette sur les lignes correspondantes (diapo précédente). 3. Filtrer les true dans la facette. 4. Aller dans Toutes / Editer les lignes / Supprimer les lignes correspondantes
  • 79.
    16. Annuler ou rejouerune série de traitements (Défaire / Refaire)
  • 80.
    Annuler ou rejouerune série de traitements (Défaire / Refaire) 80 • OpenRefine permet de suivre tous les traitements/modifications apportés aux données, étape par étape : Fonction d'historique (panel de gauche : Défaire /Refaire). • Il est possible de revenir sur n’importe quelle étape de l’historique. • Utile pour examiner le processus de nettoyage/d’exploration et de revenir sur ses pas si besoin.
  • 81.
    Historique des traitements/ modifications 81 Ordre chronologique des étapes Création du projet Conversion de annee_creation en dates Tri permanent du tableau par ordre de date Groupage algorithmique des catégories de protection_espace Etoiler des lignes Suppression des lignes étoilées
  • 82.
    Revenir sur untraitement antérieur 82 • Pour revenir sur une étape antérieure, il suffit de cliquer sur l’étape en question dans l’historique. • Exemple : revenir sur l’étape de groupage algorithmique des catégories protection_espace, et annuler toutes les étoiles et suppressions de lignes correspondantes.
  • 83.
    83 • Ilest possible d’exporter l’historique des traitements dans un programme JSON. Procédure : 1. Cliquer Extraire 2. Copier/Coller le code JSON dans un fichier à part (bloc notes par exemple) et sauvegarder.
  • 84.
    84 • Importeret appliquer des traitements. Procédure : 1. Cliquer Appliquer 2. Coller le code JSON et cliquer sur Effectuer les opérations
  • 85.
    Remarques 85 • Si onrevient sur une étape antérieure, et qu’on exécute une nouvelle modification, l’historique postérieur est supprimé pour laisser la place à la nouvelle modification. • Les facettes n’étant pas des modifications en soi, mais des points de vue, elles ne sont pas incluses dans l’historique. • Pour sauvegarder des facettes, vous pouvez : • Soit exporter le fichier filtré (bouton exporter) • Soit cliquer sur le bouton permalien, tout en haut à gauche. Cette commande génère une URL donnant accès directement au jeu de données filtré au sein de OpenRefine.
  • 86.
    17. Exporter une copiedes données traitées
  • 87.
    Exporter une copiedes données traitées 87 • Pour sauvegarder une copie des données traitées : • Cliquer le bouton Exporter (en haut à droite) et choisir le format souhaité. Plusieurs options sont disponibles.
  • 88.
    18. Séparer des champsen lignes (cellules) ou en colonnes
  • 89.
    Séparer des champsen lignes (cellules) ou en colonnes 89 • Il peut être utile de séparer les informations incluses dans une cellule sur plusieurs compartiments (lignes ou colonnes). • Les deux exemples qui suivent abordent des problématiques où ces opérations s’avèrent utiles. • Il y aura un exemple lignes (cellules) et un exemple colonnes.
  • 90.
    Séparer des champsen lignes (cellules) ou en colonnes 90 • On se demande quels artistes sont les plus représentés à travers les musées de cette base de données. Exemple : • Delacroix : 28 musées • Corot : 26 musées • Etc. • Pour répondre à la question, On peut s’amuser à faire un filtre texte par artiste → pénible. • Autre solution : séparer les artistes dans des cellules, et faire une facette !
  • 91.
    Séparer des champsen lignes (cellules) 91 Tous les champs séparés par une virgule suivie d’un espace seront séparés dans des cellules différentes
  • 92.
    Le tableau estremodelé 92 On passe de 1226 lignes (1226 musées) à 6666 lignes (énumération des artistes dans chaque musée) Une ligne par artiste/musée
  • 93.
    Application d’une facettetexte sur la colonne artiste 93
  • 94.
    Il y aquand même un peu de ménage à faire… 94
  • 95.
    Un deuxième exemple: séparer des champs en colonnes 95 • Observer la colonne coordonnees. • Chaque cellule correspond à : « latitude, longitude » • Les procédures d’analyse de données géographiques sont mieux adaptées lorsque les deux informations sont séparées. • Procédons à cette séparation.
  • 96.
    Séparer des champsen colonnes 96
  • 97.
  • 98.
  • 99.
    Enrichissement (réconciliation) avecla base Wikidata 99 • La réconciliation est le processus d'association des données de votre projet avec des entités reconnues dans une base de données externe, comme Wikidata. • Permet d'enrichir vos données avec des informations supplémentaires provenant de sources fiables. • Wikidata est une base de données libre et collaborative qui contient des millions d'éléments structurés (identifiants uniques, coordonnées géographiques, descriptions, etc.). • Autres bases de données de réconciliation : DBpedia, VIAF, ou encore, bases de données locales spécifiques à certains domaines. → accessibles via des extensions (liste & instructions d’installation).
  • 100.
    Enrichissement (réconciliation) avecla base Wikidata 100 • Exemple : vous possédez sur un fichier Excel le top 10 de vos livres préférés. Vous souhaitez l’enrichir avec des informations Wikidata. • Créer un projet top10_livres avec Google Refine
  • 101.
    Enrichissons la colonneAutrice / auteur avec la base Wikidata 101
  • 102.
    Enrichissons la colonneAutrice / auteur avec la base Wikidata 102 La base des “humains” est la plus vraisemblable, pour nos autrices/auteurs
  • 103.
    103 Autrices et auteurs connectésà des bases certaines Autrices et auteurs relié.e.s à plusieurs bases. A vérifier manuellement. Emile Ajar est devenu Romain Gary (pseudonyme) ☺
  • 104.
    Apparier les autriceset auteurs incertains à la meilleure base parmi les bases suggérées ▸ Pour Cervantes, la première base proposée semble être pertinente. Cliquer sur Apparier cette cellule 104 Taux d’appariements complets dans une colonne. Idéal : 100%.
  • 105.
    Et voilà letravail ▸ Toute la liste est maintenant correctement appariée aux bonnes bases. 105 Il est possible d’associer également les titres à des bases Wikidata.
  • 106.
    Création de nouvellescolonnes à partir des bases Wikidata 106 Choisir les champs à récupérer dans les bases Wikidata
  • 107.
    Résultat : ajoutdu pays de nationalité et du sexe 107
  • 108.
  • 109.
    Transformations et facettesavancées : le langage GREL 109 • GREL (General Refine Expression Language) est un langage utilisé dans OpenRefine pour manipuler et transformer les données, et pour créer des facettes. • Il permet de créer des expressions complexes pour des transformations et des facettes avancées. • Il est possible de taper du GREL dans les fonctionnalités ci-dessous : GREL facette GREL transformation
  • 110.
    Exemple 110 • Dans labase musées, sélectionner tous les numéros de téléphone commençant avec 04. Taper le code ici. value correspond aux données d’origine. startsWith() est une fonction GREL signifiant “commence avec”
  • 111.
    Résultat 111 ▸ Il ya 312 numéros de téléphone commençant par 04.
  • 112.
    112 Fonction GREL UtilitéExemple de script Résultat value.toUppercase() Convertir le texte en majuscules value.toUppercase("text") "TEXT" value.toLowercase() Convertir le texte en minuscules value.toLowercase("TEXT") "text" value.toTitlecase() Convertir le texte en majuscules initiales value.toTitlecase("open refine") "Open Refine" value.trim() Supprimer les espaces en début et fin de texte value.trim(" text ") "text" value.length() Obtenir la longueur du texte value.length("text") 4 value.substring(start, end) Extraire une sous-chaîne de caractères value.substring("textual", 0, 4) "text" value.contains() Vérifier si une chaîne contient une sous-chaîne value.contains("Bonjour", "Bon") TRUE value.replace("old", "new") Remplacer une partie du texte value.replace("foofoo", "foo", "bar") "barbar" value.split("delimiter") Diviser le texte en liste selon un délimiteur value.split("apple,banana", ",") ["apple", "banana"] value.join("delimiter") Joindre une liste en une chaîne de texte value.join(["apple", "banana"], ",") "apple,banana" value.toDate() Convertir une chaîne de texte en date value.toDate("2024-06-18") "2024-06-18T00:00:00Z" value.toNumber() Convertir une chaîne de texte en nombre value.toNumber("123") 123 value.toString() Convertir une valeur en chaîne de texte value.toString(123) "123" isBlank(value) Vérifier si une cellule est vide isBlank("") true value.indexOf("substring") Trouver l'index d'une sous- chaîne value.indexOf("foobar", "bar") 3 Liste non- exhaustive de fonctions GREL
  • 113.
    113 Fin ! Des questions? Vous pouvez me contacter sur linkedin.com/in/jean-paul-maalouf www.statistique-formation.fr