SlideShare uma empresa Scribd logo
1 de 148
Baixar para ler offline
Découvrez OpenRefine: un outil
gratuit pour nettoyer, préparer et
enrichir vos données
BU UNS
Atelier Learning Centre SophiaTech
23/10/2017
Mathieu Saby
mathieu.saby@unice.fr
1/
Plan
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introduction au langage GREL
2/
Présentation d’Openrefine
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introduction au langage GREL
3/
Nettoyer, préparer, enrichir des données
Avant d’analyser des données il faut souvent les nettoyer ou
les préparer, surtout si elles proviennent de sources multiples
ou si leur qualité n’est pas garantie.
La nuance est ténue mais on peut distinguer :
- Le nettoyage : données hétérogènes, incomplètes, erronées
ou bruitées, mal normalisées.
- La préparation : format, organisation ou codage des données
non adaptés à l’outil d’analyse ou aux questions à explorer.
On peut également être amené à les enrichir, par exemple en
les croisant avec d’autres données ou en récupérant des
informations sur Internet.
4/
Nettoyer, préparer, enrichir des données
Quels outils?
- Tableurs : Excel, Calc (Libreoffice), Google Drive
- Langages : Bash, R, Python…
- Outils spécialisés : OpenRefine, Talend Data Preparation,
Trifacta, Data Science Studio…
5/
Présentation du logiciel
 Historique
 2009 : logiciel Gridworks développé par David François Huynh
de Metaweb, comme outil pour faciliter l’alimentation de leur
base de connaissance sémantique Freebase
 rachat de Metaweb par Google
 2010-2012 : renommé Google Refine
 libération du code par Google
 2012 : renommé OpenRefine
 Modèle économique
 Logiciel opensource, donc gratuit
 Maitenu par une (petite) communauté de développeurs
 Versions
 Dernière version : 2.7 (2017). À installer de préférence
6/
La communauté
 Site officiel:
http://openrefine.org/
 Documentation :
https://github.com/OpenRefine/OpenRefine/wiki
 Liste d’échange :
https://groups.google.com/forum/#!forum/openrefine
 StackOverflow :
https://stackoverflow.com/questions/tagged/openrefine
 Nombreux tutoriels, vidéos, blogs…
7/
Présentation du logiciel
 Ce n’est pas un tableur contrairement aux apparences:
 logique de modification globale d’un fichier colonne par
colonne, même s’il est possible d’éditer une cellule séparément
 pas fait pour saisir des données, réaliser des calculs ou des
graphiques
8/
Fonctionnalités principales
 Explorer un jeu de données : tris, facettes, regroupement de
valeurs proches
 Modifier l’organisation d’un fichier et le contenu des
cellules, en mode graphique ou avec des formules
 Enrichir des données (web services, scraping, réconciliation)
 Documenter les modifications et les enrichissements pour
pouvoir les rejouer à volonté
9/
Idéal pour des traiter des données hétérogènes
Positionnement d’OpenRefine
Avantages
 Fonctions absentes des tableurs
traditionnels
 Interface graphique (vs. scripts)
 Totalement libre et gratuit (vs.
Dataiku DSS, Talend ou Trifacta)
 Installation PC, Linux, Mac
 Enregistrement des traitements
réalisés
 Maîtrise des données (vs outils en
cloud)
 Large communauté d’utilisateurs
Inconvénients
 Performance limitée (100 000 lignes
maxi environ si nombreuses colonnes)
 Ne traite pas de données en flux
 Gourmand en mémoire
 Pas de fonction collaborative
 Formats d’imports limités
 Pas de connexion avec des outils « big
data »
 Langage spécifique
10/
Quelques exemples d’utilisation
 Bibliothèques, archives, musées
 Liste d’exemples recensés dans Bibliopedia
 Corriger et modifier des données au format MARC
 Créer un tableau à partir de références bibliographiques
 Extraire des cotes archivistiques à partir d’inventaires en EAD
 Comparer deux listes de revues
 Supprimer des doublons dans une liste de revues au format KBART et
vérifier leur appartenance à un package en interrogeant un
webservice
 Nettoyer une liste de cessionnaires de brevets
 Récupérer l’identifiant BNF ou ABES d’une série de notices
11/
Quelques exemples d’utilisation
 Journalistes et réutilisateurs de données ouvertes
 Normalisation, clustering et transposition colonnes-lignes de
données publiques
 Récupération de résultats électoraux sur une page web et
nettoyage
 Histoire
 Normalisation et nettoyage de données issues d’un site de musée
 Récupération de données sur le web
 Science de la vie
 Normalisation de données sur les abeiles
 Nettoyage de données sur les oiseaux
12/
Présentation d’Openrefine
1. Introduction au nettoyage et à la préparation de données
2. Présentation
3. Installation et paramétrage
4. Import des données
5. Espace de travail
6. Tris, filtres et facettes
7. Regrouper des valeurs proches
8. Appliquer des transformations courantes
9. Exporter les données et les traitements
10. Lignes et entrées
11. Restructurer des données
12. Introduction au langage GREL
13/
Aspects techniques
 Installation mono-poste, sous PC, Mac et Linux
 Interface accessible via un navigateur internet (adresse
http://127.0.0.1:3333/ )
 Les données et le logiciel restent sur le PC (pas besoin de
connexion Internet)
 Extension possible avec des plug-ins développés par la
communauté (pas tous compatibles avec la version 2.7)
 Accès possible par API (permet une automatisation des
traitements)
 Peut être containerisé avec Docker
14/
Installation
http://openrefine.org/download.html
15/
Contraintes liées à Java
 OpenRefine est écrit en langage Java
 Cela peut compliquer l’installation sous Mac : en cas de
problème
 Vérifier que Java 8 est installé (ce n’est pas le cas par défaut)
 Vérifier que la variable d’environnement $JAVA_PATH
contient bien le chemin de cette version
 Pour utiliser plus de 3 Go de mémoire, il faut installer et
utiliser la version 64 bits de Java
16/
Paramétrage facultatif : ajouter de la
mémoire
Par défaut OpenRefine utilise 1 Go de mémoire vive au
maximum. Il peut être utile de modifier la configuration pour
allouer plus de mémoire :
Sous Windows : dans le fichier refine.ini, modifier la ligne
REFINE_MEMORY
Pour que refine.ini soit pris en compte il faudra lancer OpenRefine avec
refine.bat et non openrefine.exe
17/
Paramétrage facultatif : ajouter de la
mémoireSous Mac : ouvrir le fichier ‘/Applications/OpenRefine.app/Contents/info.plist’
et modifier la valeur `<string>-Xmx1024</string>` (par ex: `<string>-
Xmx2048</string>` pour doubler la mémoire maximale)
18/
Fermeture
19/
 Puisque le logiciel tourne en tâche de fond, fermer le
navigateur ne suffit pas fermer proprement Openrefine.
Pour cela il faut…
 Sous Windows : fermer la console
 Sous Mac : utiliser le menu Quitter
Import des données
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
20/
Lancer OpenRefine
Ouvrir un navigateur (Chrome ou Firefox)
Windows : lancer de préférence refine.bat (prise en compte de
la configuration). Possibilité de faire un lien dans le menu
démarrer.
Mac : chercher OpenRefine dans les applications
Si OpenRefine ne s’ouvre pas, saisir http://localhost:3333 dans
le navigateur
21/
Les fichiers d’exercices
Télécharger sur votre bureau deux mini
jeux de données fictives
 Exo 1 :
http://bit.ly/2gBR06v
 Exo 2:
http://bit.ly/2zunAuQ
22/
Importer des données
Projet = un fichier de données + un ensemble de traitements
Un projet peut être réouvert, ou importé depuis une autre
installation d’OpenRefine
23/
Importer des données
Plusieurs formats de fichiers possibles
Depuis plusieurs emplacements
24/
Formats reconnus
Données tabulées (lignes/colonnes)
De préférence utiliser le format csv ou autre format brut (tsv…)
L’import de fichiers au format Excel, LibreOffice ou Google est
possible mais peut consommer beaucoup de ressources.
Données XML et JSON
Ne sont pas manipulées directement par Openrefine mais
converties en données tabulées.
La conversion peut consommer beaucoup de ressources. Elle
fonctionne bien pour des fichiers simples, mais les fichiers
complexes peuvent poser problème.
25/
Importer des données
Créer un nouveau projet à partir du fichier exo1.csv
26/
Importer des données
Charger le fichier dans OpenRefine le fichier précédemment
enregistré sur le Bureau
27/
Importer des données
Ecran d’import en 2 parties : aperçu des données + paramètres
28/
Importer des données
Principaux paramètres d’import
29/
Encodage des
caractères
(en général UTF-8
ou ISO 8859-1)
Séparateur de colonnes
(en général , mais parfois ; si
le fichier a été créé avec une
version française d’Excel
Modifier si entêtes multilignes
Détection des nombres et des
dates (dans le doute, à éviter)
En général à décocher
Importer des données
Pour lire et écrire en français… choisir l’encodage
correspondant à celui du fichier
30/
1 av. St Barthélemy
1 av. St Barthélemy
Importer des données
Prudence avec la détection automatique des nombres et des
dates ! Dans le doute, désactiver l’option.
(remarque également valable pour Excel ou LibreOffice)
 Une série de chiffres n’est pas forcément un nombre.
 Ex: Numéros de téléphone : le 0 initial doit être préservé!
 Formats de nombres et formats monétaires différents
 Ex : 1,14 en France = 1.14 aux USA
 Ex : 10 € mais $ 10
 Formats de dates différents selon les pays.
 Ex : 02-03-1979 = 2 mars 1979 en Europe
3 février 1979 aux USA
31/
Importer des données
Une fois les paramètres d’imports choisis, lancer l’import
32/
[Optionnel]
Changer le nom du projet
Créer un projet
Importer des données
Il est également possible d’importer plusieurs fichiers dans le
même projet.
Ils doivent être structurés de manière identique (nombres et
noms des colonnes).
33/
Importer des données
Il est également possible d’importer plusieurs fichiers dans le
même projet.
La 1re colonne (File) du projet indiquera le nom du fichier
d’origine pour chaque ligne.
34/
Espace de travail
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
35/
L’espace de travail
36/
Lien vers le
projet
ExportNouveau
projetContenu du fichier
Facettes
et filtres
Historique
L’espace de travail
37/
Colonnes de données
Nb lignes
affichées
Voir les lignes
précédentes ou
suivantesNb lignes du
fichier
Étoiles et marques: pour
isoler certaines lignes
Numéro de ligne
(automatique)
Différences avec un tableur
On ne voit pas toutes les lignes. Ce n’est pas le but de l’outil
On applique les formules à des colonnes entières, pas à des
cellules
Les données sont séparées des traitements : les formules ne
sont pas contenues dans les cellules
Une seule feuille
Pas de graphiques
38/
Comment explorer et manipuler les données
Modification d’une cellule : bouton edit visible au survol
 Ponctuelle
 Pour toutes cellules ayant la même valeur (dans la même
colonne ; ne s’applique pas aux cellules vides)
Actions globales : menu visible en cliquant sur le bouton en
haut de chaque colonne
 Affichage sélectif (tris, filtres, facettes…)
 Modifications (remplacements, nouvelles colonnes…)
39/
Les menus contextuels
Les plus fonctions les utilisées : facettes, édition de cellules et
de colonnes, tri
Fonction propre à la 1re colonne : suppression de lignes
40/
Colonne ordinaire Colonne « Toutes » (1re position)
Réordonner ou supprimer des colonnes
Dans la 1re colonne Toutes
41/
Tris, filtres et facettes
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
42/
Trier les données
Activité : trier les données en fonction des valeurs de la
colonne code_personne (ordre alphabétique, sans tenir compte
des majuscules)
43/
Trier les données
Activité : trier les données en fonction des valeurs de la
colonne code_personne
44/
Plusieurs options,
mais le paramétrage
de base correspont à
notre besoin (a-z,
insensible à la casse)
Trier les données
Activité : trier les données en fonction des valeurs de la
colonne code_personne
45/
Pour l’ordre d’origine est préservé et le tri ne concerne que l’affichage
Trier les données
Retrier de façon permanente
46/
Menu visible après le tri
Filtrer les données
Activité : filtrer le fichier pour afficher les lignes dont la
colonne code_personne contient le mot « P005 » ET la colonne
animal_prefere le mot « chien »
47/
Filtrer les données
Activité : filtrer le fichier pour afficher les lignes dont la
colonne code_personne contient le mot « P005 » ET la colonne
animal_prefere le mot « chien »
48/
Filtrer les données
Toutes les opérations (export, nouveaux filtres, facettes,
modifications groupées) s’opèreront uniquement sur les
données filtrées.
Ex: modification groupée la colonne animal_prefere :
uniquement 1 lignes modifiée
49/
Filtrer les données
Deux options pour les filtres (peuvent s’additionner)
50/
Prendre ou compte ou non la casse (« nice » = « NICE » ?)
Traiter ou non l’expression comme une expression
rationnelle (ou expression régulière):
Ex:
Si l’option est activée,
[ab][56] sera interprété comme « a5 ou a6 ou b5 ou b6 »
P.A[0-9]* sera interprété comme « P suivi d’un caractère,
suivi de A, suivi d’une suite de chiffres »
Ni(ce|ssa) sera interprété comme « Nice ou Nissa »
Pour éviter un
bug, saisir
l’expression
rationnelle avant
de cocher la case
Filtrer les données
Pour annuler un filtre, cliquez sur la croix dans le coin supérieur
gauche du filtre
Nous allons annuler tous les filtres
Pour cela, cliquez sur Tout supprimer au dessus des filtres
51/
Utiliser les facettes
Les facettes permettent d’avoir un aperçu synthétique sur le
contenu d’une colonne.
Utile pour repérer des anomalies, isoler des valeurs à modifier,
modifier globalement un codage…
52/
Ex : modifier et corriger un codage
Vivant
Vivant
Vivant
Mort
Dead
Vivant
…
1
1
1
0
0
1
…
1 (35)
0 (501)
Vivant (35)
Mort (500)
Dead (1)
Utiliser les facettes
Par défaut, seules les 2000 premières choix sont affichées.
S’il y en a plus, Openrefine propose d’augmenter cette limite,
ou de n’afficher que les choix les plus fréquents (« facette par
nombre de choix »). Le choix reste mémorisé lors des
utilisations ultérieures.
53/
Utiliser les facettes
Activité : afficher les facettes textuelles correspondant au
contenu de la colonne ville.
Quelles anomalies repère-t-on?
54/
Utiliser les facettes
Activité : afficher les facettes textuelles correspondant au
contenu de la colonne ville.
55/
(blank) : valeur vide
Utiliser les facettes
Les options d’une facette
56/
Récupérer la liste Tri alphabétique (défaut) ou par nombre d’occurrences
valeurs vides (blank) toujours à la fin
Modifier la facette (complexe)
Regrouper les valeurs semblables
Utiliser les facettes
Activité : dans la facette ville, afficher les valeurs par « nombre
de choix », et ne conserver que celles présentes 2 fois.
57/
Utiliser les facettes
Activité : dans la facette ville, afficher les valeurs par « nombre
de choix », et ne conserver que celles présentes 2 fois.
58/
1 seule valeur, présente 2 fois
histogramme
Utiliser les facettes
Activité : dans la facette ville, remplacer la valeur « Havre (Le) »
par LE HAVRE
Quel effet sur les données?
59/
Utiliser les facettes
Activité : dans la facette ville, remplacer la valeur « Havre (Le) »
par LE HAVRE
60/
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville est CAEN
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville est CAEN
Cliquer
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville est CAEN
facette en orange : facette active
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville est Caen ou CAEN
Utiliser les facettes
Activité : modifier la facette pour sélectionner les lignes dont
la ville est Caen, en plus de CAEN
Survoler
Cliquer
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville n’est ni Caen ni CAEN
66/
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville n’est ni Caen ni CAEN
67/
Cliquer
Utiliser les facettes
Activité : utiliser la facette ville pour afficher les lignes dont la
ville n’est PAS Lyon
facette en noir barré : facette inversée
Utiliser les facettes: pour aller plus loin
Facettes numériques, chronologiques, en nuage de point :
suppose d’avoir des données reconnues par OpenRefine
comme des dates ou des nombres (pas le cas dans notre
exemple)
69/
Utiliser les facettes: pour aller plus loin
Facettes personnalisées : suppose une utilisation du langage
GREL (voir plus loin)
70/
Utiliser les facettes: pour aller plus loin
Facettes courantes : plusieurs options souvent utiles: par mot,
par doublons, par longueur de texte, par blanc (valeur
vide ou non)
71/
Utiliser les facettes: pour aller plus loin
Activité : A partir de la colonne animal_prefere, appliquer une
facette textuelle ordinaire, puis une facette « par mots ».
Quelle différence?
72/
Facette textuelle Facette par mot
Regrouper des valeurs proches
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
73/
Regrouper des valeurs proches
Activité : Créer des facettes textuelles pour la colonne ville,
puis grouper les résultats pour repérer des variantes
d’orthographe ou de présentation.
Regrouper des valeurs proches
Activité : Créer des facettes textuelles pour la colonne ville,
puis grouper les résultats pour repérer des variantes
d’orthographe ou de typographie.
75/
Regrouper des valeurs proches
Activité : Créer des facettes textuelles pour la colonne ville,
puis grouper les résultats pour repérer des variantes
d’orthographe ou de typographie.
76/
Cliquer sur une
forme pour changer
la forme retenue
Sélectionner les
groupes à fusionner
Ou bien…
Tout sélectionner
Regrouper des valeurs proches
Plusieurs algorithmes
77/
Méthodes rapides mais basiques
Regroupe les expressions dont
les « clés » sont identiques
Regroupe les expressions ne différant que par la casse,
l’accentuation, la ponctuation, le nombre d’espaces, l’ordre
ou la répétition des mots
- Ex : école = éc-ole = éCOLE = ecole
- Ex : Liberté, égalité = EGALITE: LIBERTE : EGALITE
Regroupe les expressions utilisant les mêmes caractères
(paramètre 1) ou bigrammes (paramètre 2).
- Ex (param 1) : paris = sirap = sirapa = pparaisiapa
- Ex (param 2) : paris-plage = paris plage
Regroupe les expressions ayant la même prononciation (en
anglais)
Regroupe les expressions ayant la même prononciation (en
allemand)
Regrouper des valeurs proches
Plusieurs algorithmes
78/
Plus élaborées mais plus lentes
Regroupe les expressions en fonction du nombre d’étapes
élémentaires (suppression, ajout, modification de caractère)
nécessaires pour passer de l’une à l’autre.
Les variantes de caractères (accentués, majuscules,
minuscules) sont traités comme des caractères différents.
Augmenter le paramètre « rayon » (distance) diminue la
sensibilité de l’algorithme :
- Ex : paris = « distance de 1 » de Paris
- Ex : paris = « distance de 2 » de Pars
- Ex : paris = « distance de 5 » de dépaysé
Regroupe les expressions par complexité aglorithmique
(utilisé en génétique)
Baisser le paramètre « taille de
bloc » pour améliorer la détection
(attention risque de
ralentissement !
Regrouper des valeurs proches
Attention! Dans certains cas ces algorithmes peuvent faire des
rapprochements non pertinents.
Résultat : on passe de 9 villes à 4 villes
79/
Appliquer des transformations courantes
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
80/
Appliquer des transformations courantes
Rappel:
Si un filtre ou une facette sont actifs, les transformations ne
s’appliquent qu’aux lignes sélectionnées.
81/81/
Appliquer des transformations courantes
Modifier la casse
Activité: Transformer les valeurs de la colonne ville pour
obtenir passer tous les noms en majuscules
82/82/
Appliquer des transformations courantes
Modifier la casse
Editer les cellules > Transformations courantes > En majuscules
83/83/
Appliquer des transformations courantes
Supprimer les espaces superflus
Activité: Ajouter manuellement plusieurs espaces au début et
à l’intérieur d’une cellule, puis supprimer ces espaces en
utilisant le menu.
84/84/
Appliquer des transformations courantes
Supprimer les espaces superflus
Activité: Ajouter manuellement plusieurs espaces au début et
à l’intérieur d’une cellule, puis supprimer ces espaces en
utilisant le menu.
1/ ajout des espaces
(les espaces ne seront pas visibles dans l’affichage général des
données, mais ils ont bien été ajoutés)
85/85/
Appliquer des transformations courantes
Supprimer les espaces superflus
2/ suppression
Deux opérations
Editer les cellules > Transformations courantes > Supprimer les
espaces de début et de fin
Editer les cellules > Transformations courantes > Rassembler les
espaces consécutifs
86/86/
Appliquer des transformations courantes
Transformer du texte en nombres ou en dates
Malgré les apparence, ces nombres et ces dates sont
considérés comme de simple suite de caractères.
Mais l’hétérogénéité des données peut rendre leur
reconnaissance délicate.
87/87/
JJ-MM-2017
JJ/MM/2017
JJ:MM:2017
JJ/ MM (2017)
Unité en k€
Unité en €
Séparateur décimal ,
Séparateur décimal .
Appliquer des transformations courantes
Transformer du texte en nombres ou en dates
Editer les cellules > Transformations courantes > En nombre / En
date
88/88/
Appliquer des transformations courantes
Transformer du texte en nombres ou en dates
Cette approche ne suffit pas à résoudre les cas complexes
(structure atypique, variation d’unités, séparateur décimal , )
 besoin d’utiliser le langage GREL
89/89/
Les valeurs de
type non
textuel (dates,
nombre,
booléens) sont
en vert, et
alignés à
droite
Appliquer des transformations courantes
Effacer les cellules d’une colonne
Editer les cellules > Transformations courantes > Vider les cellules
90/90/
Appliquer des transformations courantes
Supprimer les valeurs répétées sur plusieurs lignes
Editer les cellules > Vider
91/91/
Appliquer des transformations courantes
Supprimer les valeurs répétées sur plusieurs lignes
Remarque : le mot « vider » a ici une signification différente
que dans l’opération « vider les cellules », qui supprime tout le
contenu des cellules.
92/92/
Appliquer des transformations courantes
Opération inverse : recopier une valeur dans une série de
cellules vides situées en dessous
Editer les cellules > Remplir
93/93/
Appliquer des transformations courantes
La suppression des valeurs répétées peut être nécessaire
pour d’autres opérations :
- Supprimer des doublons
- Créer des « entrées » regroupant plusieurs lignes
94/94/
Supprimer des doublons
Activité : Simplifier le fichier en ne gardant qu’une seule ligne
par personne (dans notre cas cela entraînera une perte
d’information, mais c’est pour la démonstratio…)
95/
Supprimer des doublons
Activité : Simplifier le fichier en ne gardant qu’une seule ligne
par personne
- Tri du fichier en fonction de la colonne code_personne et
enregistrement du tri
- Suppression des valeurs répétées pour la colonne
code_personne (Éditer les cellules -> Vider)
- Facette par blanc sur la colonne code_personne (Facette
courante -> Facette par blanc)
- Sélection de la facette « true » dans le panneau de gauche
- Suppression des lignes concernées (colonne Toutes > éditer
les lignes > supprimer les lignes)
96/
Exporter les données et les traitements
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
97/
Exporter les données transformées
Plusieurs formats d’export
98/98/
Annuler ou rejouer un traitement
Historique permettant d’annuler (« défaire ») ou rejouer
(« refaire) les traitement sans limites
99/99/
Annuler ou rejouer un traitement
Limite :
- n’enregistre pas les modifications manuelles des cellules
- n’enregistre pas les facettes ni les tris
- en cas de retour en arrière jusqu’à une opération N et d’ajout
de nouvelles opérations, perte de l’historique des opérations
qui suivaient l’opération N
100/100/
Exporter les traitements
Les traitements peuvent être exportés et réappliqués au jeu de
données ou à un autre jeu présentant la même structure.
Extraire l’historique pour enregistrer les traitements :
101/101/
Copier dans le presse-papier
(Ctrl+C / Cmd+C)
Créer un fichier texte sur l’ordinateur
Ouvrir avec un éditeur de texte
Coller le contenu du presse papier
(Ctrl+V / Cmd+V)
Enregistrer le fichier
Réappliquer les traitements
À partir d’un jeu de données fraîchement téléchargé
102/102/
Ouvrir le fichier texte dans lequel les
traitements ont été enregistrés
Sélectionner tout le contenu et copier
dans le presse-papier
(Ctrl+C / Cmd+C)
Coller dans OpenRefine
(Ctrl+V/ Cmd+V)
Valider
Réappliquer les traitements
À partir d’un jeu de données fraîchement téléchargé
103/103/
Ouvrir le fichier texte dans lequel les
traitements ont été enregistrés
Sélectionner tout le contenu et copier
dans le presse-papier
(Ctrl+C / Cmd+C)
Coller dans OpenRefine
(Ctrl+V/ Cmd+V)
Valider
Lignes et entrées
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
104/
Lignes et entrées
Des lignes peuvent être regroupées en « entrées » (records) si
elles se rapportent à un même objet.
Travailler avec des entrées permet des traitements avancés.
Pour créer des entrées :
1/ trier les données en fonction de la colonne servant de clé de regroupement
2/ déplacer cette colonne en 1re position du tableau
3/ supprimer les valeurs répétées dans cette colonne
105/105/
Restructurer des données
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
106/
Restructurer les données
Cas fréquent : passer de plusieurs valeurs / cellule à une seule
Axe horizontal (créer de nouvelles colonnes)
Axe vertical (créer de nouvelles lignes)
107/107/
Nom Ville
Dupont Nice|Tours
Durand Bourges
Martin Nice|Paris
Nom Ville 1 Ville 2
Dupont Nice Tours
Durand Bourges
Martin Nice Paris
Nom Ville
Dupont Nice|Tours
Durand Bourges
Martin Nice|Paris
Nom Ville
Dupont Nice
Dupont Tours
Durand Bourges
Martin Nice
Martin ParisRisque : croire qu’il y a 2 Martin…
Nouveau jeu de données
Créer un nouveau projet à partir du fichier exo2.csv
108/108/
Restructurer les données
Éclater sur plusieurs lignes les cellules comprenant des
valeurs multiples
Passer de ceci
À celà
109/109/
Restructurer les données
Éclater sur plusieurs lignes les cellules comprenant des valeurs
multiples
1. Editer les cellules > Diviser les cellules multivaluées
2. Choisir le séparateur (ici « ; » ). Le séparateur peut être un
mot
110/110/
Restructurer les données
Remplir automatiquement les nouvelles cellules créées
(procédure vu plus haut)
1. Colonne espece: Editer les cellules > Remplir
2. Colonne nombre: Editer les cellules > Remplir
111/111/
Restructurer les données
Etape de nettoyage: Harmoniser les villes et les espèces en
utilisant uniquement les facettes et le clustering
112/112/
Restructurer les données
Regrouper sur une seule ligne des valeurs multiples
Passer de ceci
À ceci
113/113/
Restructurer les données
Regrouper sur une seule ligne des valeurs multiples
1. Les données doivent être organisées en « entrées » (vu plus
haut : tri sur 1re colonne puis Vider les cellules répétées)
114/114/
La ville sera utilisée pour définir les entrées
Restructurer les données
Regrouper sur une seule ligne des valeurs multiples
1. Editer les cellules > Joindre les cellules multivaluées
2. Choisir un séparateur
115/115/
Répéter pour les 2 colonnes
7 entrées 7 lignes
Restructurer les données
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
116/116/
Restructurer les données
117/117/
Décocher par
prudence
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
1re option : définir un séparateur
Restructurer les données
Les opérations de « transposition »
Revenir à cette étape
Restructurer les données
Les opérations de « transposition »
Passer de A
Restructurer les données
Les opérations de « transposition »
Transposer > Transposer les cellules au travers des colonnes en
lignes
Options :
- résultat dans une seule colonne (« espece_nombre »)
- préfixer le nom de la colonne d’origine à chaque cellule
Restructurer les données
Les opérations de « transposition »
Passer de A
Restructurer les données
Les opérations de « transposition »
Colonne espece_nombre > Transposer > Transposer les lignes en
colonnes
Options :
- Transposer toutes les 2e lignes dans une nouvelle colonne
Restructurer les données
123/123/
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
Passer de A
Restructurer les données
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
Colonne espece_nombre 1 > Diviser en plusieurs colonnes
Options :
- Séparateur « : »
125/
Restructurer les données
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
Même opération pour la colonne espece_nombre 2
126/
Restructurer les données
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
Supprimer les colonnes inutiles et renommer les colonnes restantes
126/
Restructurer les données
127/127/
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
2e option : définir la longueur de chaque champ
Restructurer les données
128/128/
Eclater une colonne contenant plusieurs valeurs en plusieurs
colonnes
2e option : définir la longueur de chaque champrésultat
Restructurer des données
1. Présentation
2. Installation et paramétrage
3. Import des données
4. Espace de travail
5. Tris, filtres et facettes
6. Regrouper des valeurs proches
7. Appliquer des transformations courantes
8. Exporter les données et les traitements
9. Lignes et entrées
10. Restructurer des données
11. Introdution au langage GREL
129/
Introduction au langage GREL
Pendant quelques secondes, une information s’affiche après
chaque transformation
Ex:
Elle indique la formule utilisée par OpenRefine.
Ici :
value.trim() supprime les espaces initiaux et finaux
value.replace(/s+/,’’) simplifie les espaces répétés
Ces formules se retrouvent aussi dans l’historique des
traitements.
130/130/
Introduction au langage GREL
Les facettes et transformations personnalisées reposent sur
des formules de ce type, saisies manuellement.
Elles utilisent le langage GREL (Google Refine Expression
Language, ou General Refine Expression Language).
Documentation :
https://github.com/OpenRefine/OpenRefine/wiki/General-
Refine-Expression-Language
Il est aussi possible d’utiliser deux autres langages (Python et
Clojure) pour des cas spécifiques.
131/131/
Introduction au langage GREL
Dans la colonne espece, ouvrir le menu Editer les cellules >
Transformer
132/132/
Formule
(sans = initial)
Résultat de
la formule
Appliquer des transformations
personnalisées
Activité : dans la colonne espece, remplacer tous les « o » par
des « O » : formule value.replace("o","O")
133/133/
Prévisualisation
du résultat
valider
Introduction au langage GREL
Syntaxe générale
 Pas de = avant les fonctions
 value désigne le contenu d’une cellule
 + permet de concaténer deux valeurs. Ex: "a"+"b" -> "ab"
 Nom des fonctions sensible aux majuscules
 Les fonctions sont suivies de (parametre1, parametre2…),
ou de () en absence de paramètre
 Une fonction peut s’écrire de deux manières :
 value.nom_de_la_fonction(parametres). Ex: value.trim ()
ou
 nom_de_la_fonction(value, parametres). Ex: trim (value)
134/134/
Introduction au langage GREL
Intérêt:
Certaines fonctions sont absentes d’Excel ou difficile à
reproduire, notamment :
- Utilisation d’expressions régulières
- Récupération de données sur Internet
- Manipulation de données au format JSON, XML, HTML
135/135/
Introduction au langage GREL
Deux menus utiles: aide et historique
136/136/
Aide précieuse!
Utiliser Crtrl+F pour rechercher une commande
Introduction au langage GREL
Deux menus utiles: aide et historique
137/137/
Historique
Permet de réutiliser une formule
Introduction au langage GREL
Exemple de fonctions utiles
length () longueur de la chaîne de caractère
trim () supprime les espaces initiaux et finaux
toUppercase() passe en majuscules (y compris lettres accentuées)
Ex: "école".toUppercase() -> « ÉCOLE »
toLowercase () passe en minuscules
indexOf (x) renvoie la position de x
(Attention, la numérotation commence à 0)
Ex: "bleu".indexOf (‘b‘) -> 0
substring (pos1,pos2) extrait les caractères entre pos1 et pos2
(Attention, la numérotation commence à 0
et pos2 est exclu)
Ex: "bleu".substring(1,3) -> « le » (lettres de position 1 et 2)
138/138/
Introduction au langage GREL
Exemple de fonctions utiles
replace (x, y) remplace la chaîne de caractère x par y.
Ex : "zorro".replace (‘zo’,’x’) -> "xrro"
replaceChars (x,y) replace les caractères contenus dans x par z
Ex : "zorro".replaceChars (‘zo’,’x’) -> "xrx"
split (x) décompose la valeur en tableau, en utilisant x comme
séparateur. Les éléments du tableau sont accessibles par [n] (numérotation à
partir de 0)
Ex : "01/12/2015".split(‘/’)[0] -> « 01 » (1er élément du tableau)
Ex : "01/12/2015".split(‘/’)[1] -> « 12 » (2er élément du tableau)
Ex : "01/12/2015".split(‘/’)[2] -> « 2015 » (3er élément du tableau)
join (t, s) inverse de split : agrège les éléments d’un tableau t en
utilisant comme séparateur la chaîne de caractères s.
139/139/
Introduction au langage GREL
Exemple de fonctions utiles
cross (cell c, Nom_projet2, Nom_colonne) permet de croiser deux projets :
retourne un tableau de 0, 1 ou + lignes du projet Nom_projet2 pour lesquelles
les cellules de la colonne Nom_colonne ont le même contenu que la cellule c.
parseJson (s) : analyse la chaîne s et renvoie un objet manipulable
Ex : value.parseJson()["element-niv1"]["element-niv2"]
parseHtml (s) : analyse la chaîne s et renvoie un objet manipulable avec
d’autres fonctions
Ex:
value.parseHtml().select("div#content")[0].select("tr").toString()
140/140/
Introduction au langage GREL
Récupération et exploiter des données sur Internet :
- API JSON
- API XML
- Page HTML
Remarque: il est nécessaire d’utiliser Python dans Openrefine
au lieu de GREL :
- pour récupérer des données en utilisant le protocole POST
- pour exploiter certaines données complexes après leur
récupération
141/141/
Introduction au langage GREL
Activité : récupérer la population des villes à partir de l’API
https://geo.api.gouv.fr/
La syntaxe de l’API est
https://geo.api.gouv.fr/communes?nom=NOMDECOMMUNE
La réponse est en JSON : tableau de X villes dont le nom
correspond à la requête, avec plusieurs propriétés pour
chacune, dont population
142/142/
Introduction au langage GREL
Activité : récupérer la population des villes à partir de l’API
https://geo.api.gouv.fr/
1re étape : Créer une colonne liste-urls contenant les URL
Colonne villes > Éditer colonne > Ajouter une colonne en fonction de
cette colonne
Formule :
"Racine_URL" + value
Ou encore mieux (évite les erreurs en cas de caractère parasite):
"Racine_URL" + value.escape(‘url’)
143/143/
Introduction au langage GREL
2e étape : Récupérer les données dans une colonne data
Colonne liste-urls > Éditer colonne > Ajouter une colonne en
moissonnant les URL
144/144/
Bug dans la
version 2.7:
décocher l’option
« Mettre les
réponses en cache »
« conserver »
pour repérer
d’éventuelles
erreurs de
connexion
Introduction au langage GREL
Résultat intermédiaire
145/145/
Introduction au langage GREL
3e étape : Exploitation des données : créer une nouvelle
colonne à partir de data
Colonne data > Éditer colonne > Ajouter une colonne à partir de
cette colonne
Formule : value.parseJson()[0]["population"]
146/146/
Introduction au langage GREL
Résultat final
147/147/
Pour aller plus loin
Documentation officielle
 Site
 Documentation (wiki)
Quelques tutoriels et retours d’expérience
 M. Bourdic, OpenRefine, "Excel aux hormones" pour nettoyage de données, 2017
 A. Courtin, “Reconcilier” une liste de nom d’architectes avec Wikidata en utilisant
OpenRefine, 2017
 Karen H, Using OpenRefine to Reconcile Name Entities, 2017
 Leçons du programme Library Carpentry. Open Refine for Librarians, 2016
 Leçons du programme Data Carpentry, 2015 ; variante Open Refine for Ecology
 T. Padilla, Getting Started with OpenRefine, 2015
 S. van Hooland , R. Verborgh et M. De Wilde, Cleaning Data with OpenRefine,
2013
 T. Hirst, Merging Datasets with Common Columns in Google Refine, 2011
 A. Falcone, Google Refine CheatSheets, 2011
146/

Mais conteúdo relacionado

Mais procurados

Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesMohamed Heny SELMI
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsMohamed Heny SELMI
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Data mining - Classification - arbres de décision
Data mining - Classification - arbres de décisionData mining - Classification - arbres de décision
Data mining - Classification - arbres de décisionMohamed Heny SELMI
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Mohamed Heny SELMI
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
La Transformation Digitale du Transport Ferroviaire
La Transformation Digitale du Transport FerroviaireLa Transformation Digitale du Transport Ferroviaire
La Transformation Digitale du Transport FerroviaireYliès Clamousse
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...Adad Med Chérif
 
Gestion de projet création d’une plateforme logistique
Gestion de projet création d’une plateforme logistiqueGestion de projet création d’une plateforme logistique
Gestion de projet création d’une plateforme logistiqueSaid ZARGUAN
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmiskamar MEDDAH
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Jean Rohmer
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaireBoris Guarisma
 
Algorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningAlgorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningBassem Brayek
 
Merise exercices-mcd_corriges
Merise  exercices-mcd_corrigesMerise  exercices-mcd_corriges
Merise exercices-mcd_corrigesMehdi El
 
Tableau De Bord De L activite Logistique
Tableau De Bord De L activite LogistiqueTableau De Bord De L activite Logistique
Tableau De Bord De L activite LogistiqueSouleymane Sow
 

Mais procurados (20)

Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes Principales
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Formation python
Formation pythonFormation python
Formation python
 
Data mining - Classification - arbres de décision
Data mining - Classification - arbres de décisionData mining - Classification - arbres de décision
Data mining - Classification - arbres de décision
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
 
Aide au diagnostic
Aide au diagnosticAide au diagnostic
Aide au diagnostic
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
La Transformation Digitale du Transport Ferroviaire
La Transformation Digitale du Transport FerroviaireLa Transformation Digitale du Transport Ferroviaire
La Transformation Digitale du Transport Ferroviaire
 
Exposé langage-b
Exposé langage-bExposé langage-b
Exposé langage-b
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
 
Gestion de projet création d’une plateforme logistique
Gestion de projet création d’une plateforme logistiqueGestion de projet création d’une plateforme logistique
Gestion de projet création d’une plateforme logistique
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmis
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Outils Web Sémantique
Outils Web SémantiqueOutils Web Sémantique
Outils Web Sémantique
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaire
 
Algorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningAlgorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learning
 
Merise exercices-mcd_corriges
Merise  exercices-mcd_corrigesMerise  exercices-mcd_corriges
Merise exercices-mcd_corriges
 
Tableau De Bord De L activite Logistique
Tableau De Bord De L activite LogistiqueTableau De Bord De L activite Logistique
Tableau De Bord De L activite Logistique
 

Semelhante a Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vos données

Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralitésSinovatia
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateMor THIAM
 
Statistique de TYPO3 dans le monde
Statistique de TYPO3 dans le mondeStatistique de TYPO3 dans le monde
Statistique de TYPO3 dans le mondeYannick Pavard
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overviewSymfonyMu
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementgplanchat
 
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande BertrandCaron4
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
 
Florence Labord Moodle
Florence Labord  MoodleFlorence Labord  Moodle
Florence Labord MoodleWalibi
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3sitengo
 
Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2Yannick Pavard
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2Yannick Pavard
 
Alfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendAlfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendMarc Dutoo
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Firas Kouẞàa
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitationThắng Thao
 

Semelhante a Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vos données (20)

Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
Statistique de TYPO3 dans le monde
Statistique de TYPO3 dans le mondeStatistique de TYPO3 dans le monde
Statistique de TYPO3 dans le monde
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplement
 
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
Florence Labord Moodle
Florence Labord  MoodleFlorence Labord  Moodle
Florence Labord Moodle
 
Cours 01.pptx
Cours 01.pptxCours 01.pptx
Cours 01.pptx
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3
 
Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Talend
TalendTalend
Talend
 
Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2Les nouveautés de TYPO3 4.2
Les nouveautés de TYPO3 4.2
 
#7 Migration
#7 Migration#7 Migration
#7 Migration
 
Alfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendAlfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & Talend
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitation
 

Mais de Mathieu Saby

Science ouverte et appels à projets
Science ouverte et appels à projetsScience ouverte et appels à projets
Science ouverte et appels à projetsMathieu Saby
 
Programmer dans Openrefine avec GREL
Programmer dans Openrefine avec GRELProgrammer dans Openrefine avec GREL
Programmer dans Openrefine avec GRELMathieu Saby
 
Usage des expressions régulières dans Openrefine
Usage des expressions régulières dans OpenrefineUsage des expressions régulières dans Openrefine
Usage des expressions régulières dans OpenrefineMathieu Saby
 
Analyse de données JSON dans Openrefine
Analyse de données JSON dans OpenrefineAnalyse de données JSON dans Openrefine
Analyse de données JSON dans OpenrefineMathieu Saby
 
Aide mémoire Openrefine 3.3 béta
Aide mémoire Openrefine 3.3 béta Aide mémoire Openrefine 3.3 béta
Aide mémoire Openrefine 3.3 béta Mathieu Saby
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
 
Gérer et diffuser ses données: principes et bonnes pratiques
Gérer et diffuser ses données: principes et bonnes pratiquesGérer et diffuser ses données: principes et bonnes pratiques
Gérer et diffuser ses données: principes et bonnes pratiquesMathieu Saby
 
Le projet du SCD de Nice: une approche globale des données de la recherche
Le projet du SCD de Nice: une approche globale des données de la rechercheLe projet du SCD de Nice: une approche globale des données de la recherche
Le projet du SCD de Nice: une approche globale des données de la rechercheMathieu Saby
 

Mais de Mathieu Saby (8)

Science ouverte et appels à projets
Science ouverte et appels à projetsScience ouverte et appels à projets
Science ouverte et appels à projets
 
Programmer dans Openrefine avec GREL
Programmer dans Openrefine avec GRELProgrammer dans Openrefine avec GREL
Programmer dans Openrefine avec GREL
 
Usage des expressions régulières dans Openrefine
Usage des expressions régulières dans OpenrefineUsage des expressions régulières dans Openrefine
Usage des expressions régulières dans Openrefine
 
Analyse de données JSON dans Openrefine
Analyse de données JSON dans OpenrefineAnalyse de données JSON dans Openrefine
Analyse de données JSON dans Openrefine
 
Aide mémoire Openrefine 3.3 béta
Aide mémoire Openrefine 3.3 béta Aide mémoire Openrefine 3.3 béta
Aide mémoire Openrefine 3.3 béta
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
Gérer et diffuser ses données: principes et bonnes pratiques
Gérer et diffuser ses données: principes et bonnes pratiquesGérer et diffuser ses données: principes et bonnes pratiques
Gérer et diffuser ses données: principes et bonnes pratiques
 
Le projet du SCD de Nice: une approche globale des données de la recherche
Le projet du SCD de Nice: une approche globale des données de la rechercheLe projet du SCD de Nice: une approche globale des données de la recherche
Le projet du SCD de Nice: une approche globale des données de la recherche
 

Último

Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 37
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 37
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 

Último (16)

Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 

Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vos données

  • 1. Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vos données BU UNS Atelier Learning Centre SophiaTech 23/10/2017 Mathieu Saby mathieu.saby@unice.fr 1/
  • 2. Plan 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introduction au langage GREL 2/
  • 3. Présentation d’Openrefine 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introduction au langage GREL 3/
  • 4. Nettoyer, préparer, enrichir des données Avant d’analyser des données il faut souvent les nettoyer ou les préparer, surtout si elles proviennent de sources multiples ou si leur qualité n’est pas garantie. La nuance est ténue mais on peut distinguer : - Le nettoyage : données hétérogènes, incomplètes, erronées ou bruitées, mal normalisées. - La préparation : format, organisation ou codage des données non adaptés à l’outil d’analyse ou aux questions à explorer. On peut également être amené à les enrichir, par exemple en les croisant avec d’autres données ou en récupérant des informations sur Internet. 4/
  • 5. Nettoyer, préparer, enrichir des données Quels outils? - Tableurs : Excel, Calc (Libreoffice), Google Drive - Langages : Bash, R, Python… - Outils spécialisés : OpenRefine, Talend Data Preparation, Trifacta, Data Science Studio… 5/
  • 6. Présentation du logiciel  Historique  2009 : logiciel Gridworks développé par David François Huynh de Metaweb, comme outil pour faciliter l’alimentation de leur base de connaissance sémantique Freebase  rachat de Metaweb par Google  2010-2012 : renommé Google Refine  libération du code par Google  2012 : renommé OpenRefine  Modèle économique  Logiciel opensource, donc gratuit  Maitenu par une (petite) communauté de développeurs  Versions  Dernière version : 2.7 (2017). À installer de préférence 6/
  • 7. La communauté  Site officiel: http://openrefine.org/  Documentation : https://github.com/OpenRefine/OpenRefine/wiki  Liste d’échange : https://groups.google.com/forum/#!forum/openrefine  StackOverflow : https://stackoverflow.com/questions/tagged/openrefine  Nombreux tutoriels, vidéos, blogs… 7/
  • 8. Présentation du logiciel  Ce n’est pas un tableur contrairement aux apparences:  logique de modification globale d’un fichier colonne par colonne, même s’il est possible d’éditer une cellule séparément  pas fait pour saisir des données, réaliser des calculs ou des graphiques 8/
  • 9. Fonctionnalités principales  Explorer un jeu de données : tris, facettes, regroupement de valeurs proches  Modifier l’organisation d’un fichier et le contenu des cellules, en mode graphique ou avec des formules  Enrichir des données (web services, scraping, réconciliation)  Documenter les modifications et les enrichissements pour pouvoir les rejouer à volonté 9/ Idéal pour des traiter des données hétérogènes
  • 10. Positionnement d’OpenRefine Avantages  Fonctions absentes des tableurs traditionnels  Interface graphique (vs. scripts)  Totalement libre et gratuit (vs. Dataiku DSS, Talend ou Trifacta)  Installation PC, Linux, Mac  Enregistrement des traitements réalisés  Maîtrise des données (vs outils en cloud)  Large communauté d’utilisateurs Inconvénients  Performance limitée (100 000 lignes maxi environ si nombreuses colonnes)  Ne traite pas de données en flux  Gourmand en mémoire  Pas de fonction collaborative  Formats d’imports limités  Pas de connexion avec des outils « big data »  Langage spécifique 10/
  • 11. Quelques exemples d’utilisation  Bibliothèques, archives, musées  Liste d’exemples recensés dans Bibliopedia  Corriger et modifier des données au format MARC  Créer un tableau à partir de références bibliographiques  Extraire des cotes archivistiques à partir d’inventaires en EAD  Comparer deux listes de revues  Supprimer des doublons dans une liste de revues au format KBART et vérifier leur appartenance à un package en interrogeant un webservice  Nettoyer une liste de cessionnaires de brevets  Récupérer l’identifiant BNF ou ABES d’une série de notices 11/
  • 12. Quelques exemples d’utilisation  Journalistes et réutilisateurs de données ouvertes  Normalisation, clustering et transposition colonnes-lignes de données publiques  Récupération de résultats électoraux sur une page web et nettoyage  Histoire  Normalisation et nettoyage de données issues d’un site de musée  Récupération de données sur le web  Science de la vie  Normalisation de données sur les abeiles  Nettoyage de données sur les oiseaux 12/
  • 13. Présentation d’Openrefine 1. Introduction au nettoyage et à la préparation de données 2. Présentation 3. Installation et paramétrage 4. Import des données 5. Espace de travail 6. Tris, filtres et facettes 7. Regrouper des valeurs proches 8. Appliquer des transformations courantes 9. Exporter les données et les traitements 10. Lignes et entrées 11. Restructurer des données 12. Introduction au langage GREL 13/
  • 14. Aspects techniques  Installation mono-poste, sous PC, Mac et Linux  Interface accessible via un navigateur internet (adresse http://127.0.0.1:3333/ )  Les données et le logiciel restent sur le PC (pas besoin de connexion Internet)  Extension possible avec des plug-ins développés par la communauté (pas tous compatibles avec la version 2.7)  Accès possible par API (permet une automatisation des traitements)  Peut être containerisé avec Docker 14/
  • 16. Contraintes liées à Java  OpenRefine est écrit en langage Java  Cela peut compliquer l’installation sous Mac : en cas de problème  Vérifier que Java 8 est installé (ce n’est pas le cas par défaut)  Vérifier que la variable d’environnement $JAVA_PATH contient bien le chemin de cette version  Pour utiliser plus de 3 Go de mémoire, il faut installer et utiliser la version 64 bits de Java 16/
  • 17. Paramétrage facultatif : ajouter de la mémoire Par défaut OpenRefine utilise 1 Go de mémoire vive au maximum. Il peut être utile de modifier la configuration pour allouer plus de mémoire : Sous Windows : dans le fichier refine.ini, modifier la ligne REFINE_MEMORY Pour que refine.ini soit pris en compte il faudra lancer OpenRefine avec refine.bat et non openrefine.exe 17/
  • 18. Paramétrage facultatif : ajouter de la mémoireSous Mac : ouvrir le fichier ‘/Applications/OpenRefine.app/Contents/info.plist’ et modifier la valeur `<string>-Xmx1024</string>` (par ex: `<string>- Xmx2048</string>` pour doubler la mémoire maximale) 18/
  • 19. Fermeture 19/  Puisque le logiciel tourne en tâche de fond, fermer le navigateur ne suffit pas fermer proprement Openrefine. Pour cela il faut…  Sous Windows : fermer la console  Sous Mac : utiliser le menu Quitter
  • 20. Import des données 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 20/
  • 21. Lancer OpenRefine Ouvrir un navigateur (Chrome ou Firefox) Windows : lancer de préférence refine.bat (prise en compte de la configuration). Possibilité de faire un lien dans le menu démarrer. Mac : chercher OpenRefine dans les applications Si OpenRefine ne s’ouvre pas, saisir http://localhost:3333 dans le navigateur 21/
  • 22. Les fichiers d’exercices Télécharger sur votre bureau deux mini jeux de données fictives  Exo 1 : http://bit.ly/2gBR06v  Exo 2: http://bit.ly/2zunAuQ 22/
  • 23. Importer des données Projet = un fichier de données + un ensemble de traitements Un projet peut être réouvert, ou importé depuis une autre installation d’OpenRefine 23/
  • 24. Importer des données Plusieurs formats de fichiers possibles Depuis plusieurs emplacements 24/
  • 25. Formats reconnus Données tabulées (lignes/colonnes) De préférence utiliser le format csv ou autre format brut (tsv…) L’import de fichiers au format Excel, LibreOffice ou Google est possible mais peut consommer beaucoup de ressources. Données XML et JSON Ne sont pas manipulées directement par Openrefine mais converties en données tabulées. La conversion peut consommer beaucoup de ressources. Elle fonctionne bien pour des fichiers simples, mais les fichiers complexes peuvent poser problème. 25/
  • 26. Importer des données Créer un nouveau projet à partir du fichier exo1.csv 26/
  • 27. Importer des données Charger le fichier dans OpenRefine le fichier précédemment enregistré sur le Bureau 27/
  • 28. Importer des données Ecran d’import en 2 parties : aperçu des données + paramètres 28/
  • 29. Importer des données Principaux paramètres d’import 29/ Encodage des caractères (en général UTF-8 ou ISO 8859-1) Séparateur de colonnes (en général , mais parfois ; si le fichier a été créé avec une version française d’Excel Modifier si entêtes multilignes Détection des nombres et des dates (dans le doute, à éviter) En général à décocher
  • 30. Importer des données Pour lire et écrire en français… choisir l’encodage correspondant à celui du fichier 30/ 1 av. St Barthélemy 1 av. St Barthélemy
  • 31. Importer des données Prudence avec la détection automatique des nombres et des dates ! Dans le doute, désactiver l’option. (remarque également valable pour Excel ou LibreOffice)  Une série de chiffres n’est pas forcément un nombre.  Ex: Numéros de téléphone : le 0 initial doit être préservé!  Formats de nombres et formats monétaires différents  Ex : 1,14 en France = 1.14 aux USA  Ex : 10 € mais $ 10  Formats de dates différents selon les pays.  Ex : 02-03-1979 = 2 mars 1979 en Europe 3 février 1979 aux USA 31/
  • 32. Importer des données Une fois les paramètres d’imports choisis, lancer l’import 32/ [Optionnel] Changer le nom du projet Créer un projet
  • 33. Importer des données Il est également possible d’importer plusieurs fichiers dans le même projet. Ils doivent être structurés de manière identique (nombres et noms des colonnes). 33/
  • 34. Importer des données Il est également possible d’importer plusieurs fichiers dans le même projet. La 1re colonne (File) du projet indiquera le nom du fichier d’origine pour chaque ligne. 34/
  • 35. Espace de travail 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 35/
  • 36. L’espace de travail 36/ Lien vers le projet ExportNouveau projetContenu du fichier Facettes et filtres Historique
  • 37. L’espace de travail 37/ Colonnes de données Nb lignes affichées Voir les lignes précédentes ou suivantesNb lignes du fichier Étoiles et marques: pour isoler certaines lignes Numéro de ligne (automatique)
  • 38. Différences avec un tableur On ne voit pas toutes les lignes. Ce n’est pas le but de l’outil On applique les formules à des colonnes entières, pas à des cellules Les données sont séparées des traitements : les formules ne sont pas contenues dans les cellules Une seule feuille Pas de graphiques 38/
  • 39. Comment explorer et manipuler les données Modification d’une cellule : bouton edit visible au survol  Ponctuelle  Pour toutes cellules ayant la même valeur (dans la même colonne ; ne s’applique pas aux cellules vides) Actions globales : menu visible en cliquant sur le bouton en haut de chaque colonne  Affichage sélectif (tris, filtres, facettes…)  Modifications (remplacements, nouvelles colonnes…) 39/
  • 40. Les menus contextuels Les plus fonctions les utilisées : facettes, édition de cellules et de colonnes, tri Fonction propre à la 1re colonne : suppression de lignes 40/ Colonne ordinaire Colonne « Toutes » (1re position)
  • 41. Réordonner ou supprimer des colonnes Dans la 1re colonne Toutes 41/
  • 42. Tris, filtres et facettes 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 42/
  • 43. Trier les données Activité : trier les données en fonction des valeurs de la colonne code_personne (ordre alphabétique, sans tenir compte des majuscules) 43/
  • 44. Trier les données Activité : trier les données en fonction des valeurs de la colonne code_personne 44/ Plusieurs options, mais le paramétrage de base correspont à notre besoin (a-z, insensible à la casse)
  • 45. Trier les données Activité : trier les données en fonction des valeurs de la colonne code_personne 45/ Pour l’ordre d’origine est préservé et le tri ne concerne que l’affichage
  • 46. Trier les données Retrier de façon permanente 46/ Menu visible après le tri
  • 47. Filtrer les données Activité : filtrer le fichier pour afficher les lignes dont la colonne code_personne contient le mot « P005 » ET la colonne animal_prefere le mot « chien » 47/
  • 48. Filtrer les données Activité : filtrer le fichier pour afficher les lignes dont la colonne code_personne contient le mot « P005 » ET la colonne animal_prefere le mot « chien » 48/
  • 49. Filtrer les données Toutes les opérations (export, nouveaux filtres, facettes, modifications groupées) s’opèreront uniquement sur les données filtrées. Ex: modification groupée la colonne animal_prefere : uniquement 1 lignes modifiée 49/
  • 50. Filtrer les données Deux options pour les filtres (peuvent s’additionner) 50/ Prendre ou compte ou non la casse (« nice » = « NICE » ?) Traiter ou non l’expression comme une expression rationnelle (ou expression régulière): Ex: Si l’option est activée, [ab][56] sera interprété comme « a5 ou a6 ou b5 ou b6 » P.A[0-9]* sera interprété comme « P suivi d’un caractère, suivi de A, suivi d’une suite de chiffres » Ni(ce|ssa) sera interprété comme « Nice ou Nissa » Pour éviter un bug, saisir l’expression rationnelle avant de cocher la case
  • 51. Filtrer les données Pour annuler un filtre, cliquez sur la croix dans le coin supérieur gauche du filtre Nous allons annuler tous les filtres Pour cela, cliquez sur Tout supprimer au dessus des filtres 51/
  • 52. Utiliser les facettes Les facettes permettent d’avoir un aperçu synthétique sur le contenu d’une colonne. Utile pour repérer des anomalies, isoler des valeurs à modifier, modifier globalement un codage… 52/ Ex : modifier et corriger un codage Vivant Vivant Vivant Mort Dead Vivant … 1 1 1 0 0 1 … 1 (35) 0 (501) Vivant (35) Mort (500) Dead (1)
  • 53. Utiliser les facettes Par défaut, seules les 2000 premières choix sont affichées. S’il y en a plus, Openrefine propose d’augmenter cette limite, ou de n’afficher que les choix les plus fréquents (« facette par nombre de choix »). Le choix reste mémorisé lors des utilisations ultérieures. 53/
  • 54. Utiliser les facettes Activité : afficher les facettes textuelles correspondant au contenu de la colonne ville. Quelles anomalies repère-t-on? 54/
  • 55. Utiliser les facettes Activité : afficher les facettes textuelles correspondant au contenu de la colonne ville. 55/ (blank) : valeur vide
  • 56. Utiliser les facettes Les options d’une facette 56/ Récupérer la liste Tri alphabétique (défaut) ou par nombre d’occurrences valeurs vides (blank) toujours à la fin Modifier la facette (complexe) Regrouper les valeurs semblables
  • 57. Utiliser les facettes Activité : dans la facette ville, afficher les valeurs par « nombre de choix », et ne conserver que celles présentes 2 fois. 57/
  • 58. Utiliser les facettes Activité : dans la facette ville, afficher les valeurs par « nombre de choix », et ne conserver que celles présentes 2 fois. 58/ 1 seule valeur, présente 2 fois histogramme
  • 59. Utiliser les facettes Activité : dans la facette ville, remplacer la valeur « Havre (Le) » par LE HAVRE Quel effet sur les données? 59/
  • 60. Utiliser les facettes Activité : dans la facette ville, remplacer la valeur « Havre (Le) » par LE HAVRE 60/
  • 61. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est CAEN
  • 62. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est CAEN Cliquer
  • 63. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est CAEN facette en orange : facette active
  • 64. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est Caen ou CAEN
  • 65. Utiliser les facettes Activité : modifier la facette pour sélectionner les lignes dont la ville est Caen, en plus de CAEN Survoler Cliquer
  • 66. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville n’est ni Caen ni CAEN 66/
  • 67. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville n’est ni Caen ni CAEN 67/ Cliquer
  • 68. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville n’est PAS Lyon facette en noir barré : facette inversée
  • 69. Utiliser les facettes: pour aller plus loin Facettes numériques, chronologiques, en nuage de point : suppose d’avoir des données reconnues par OpenRefine comme des dates ou des nombres (pas le cas dans notre exemple) 69/
  • 70. Utiliser les facettes: pour aller plus loin Facettes personnalisées : suppose une utilisation du langage GREL (voir plus loin) 70/
  • 71. Utiliser les facettes: pour aller plus loin Facettes courantes : plusieurs options souvent utiles: par mot, par doublons, par longueur de texte, par blanc (valeur vide ou non) 71/
  • 72. Utiliser les facettes: pour aller plus loin Activité : A partir de la colonne animal_prefere, appliquer une facette textuelle ordinaire, puis une facette « par mots ». Quelle différence? 72/ Facette textuelle Facette par mot
  • 73. Regrouper des valeurs proches 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 73/
  • 74. Regrouper des valeurs proches Activité : Créer des facettes textuelles pour la colonne ville, puis grouper les résultats pour repérer des variantes d’orthographe ou de présentation.
  • 75. Regrouper des valeurs proches Activité : Créer des facettes textuelles pour la colonne ville, puis grouper les résultats pour repérer des variantes d’orthographe ou de typographie. 75/
  • 76. Regrouper des valeurs proches Activité : Créer des facettes textuelles pour la colonne ville, puis grouper les résultats pour repérer des variantes d’orthographe ou de typographie. 76/ Cliquer sur une forme pour changer la forme retenue Sélectionner les groupes à fusionner Ou bien… Tout sélectionner
  • 77. Regrouper des valeurs proches Plusieurs algorithmes 77/ Méthodes rapides mais basiques Regroupe les expressions dont les « clés » sont identiques Regroupe les expressions ne différant que par la casse, l’accentuation, la ponctuation, le nombre d’espaces, l’ordre ou la répétition des mots - Ex : école = éc-ole = éCOLE = ecole - Ex : Liberté, égalité = EGALITE: LIBERTE : EGALITE Regroupe les expressions utilisant les mêmes caractères (paramètre 1) ou bigrammes (paramètre 2). - Ex (param 1) : paris = sirap = sirapa = pparaisiapa - Ex (param 2) : paris-plage = paris plage Regroupe les expressions ayant la même prononciation (en anglais) Regroupe les expressions ayant la même prononciation (en allemand)
  • 78. Regrouper des valeurs proches Plusieurs algorithmes 78/ Plus élaborées mais plus lentes Regroupe les expressions en fonction du nombre d’étapes élémentaires (suppression, ajout, modification de caractère) nécessaires pour passer de l’une à l’autre. Les variantes de caractères (accentués, majuscules, minuscules) sont traités comme des caractères différents. Augmenter le paramètre « rayon » (distance) diminue la sensibilité de l’algorithme : - Ex : paris = « distance de 1 » de Paris - Ex : paris = « distance de 2 » de Pars - Ex : paris = « distance de 5 » de dépaysé Regroupe les expressions par complexité aglorithmique (utilisé en génétique) Baisser le paramètre « taille de bloc » pour améliorer la détection (attention risque de ralentissement !
  • 79. Regrouper des valeurs proches Attention! Dans certains cas ces algorithmes peuvent faire des rapprochements non pertinents. Résultat : on passe de 9 villes à 4 villes 79/
  • 80. Appliquer des transformations courantes 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 80/
  • 81. Appliquer des transformations courantes Rappel: Si un filtre ou une facette sont actifs, les transformations ne s’appliquent qu’aux lignes sélectionnées. 81/81/
  • 82. Appliquer des transformations courantes Modifier la casse Activité: Transformer les valeurs de la colonne ville pour obtenir passer tous les noms en majuscules 82/82/
  • 83. Appliquer des transformations courantes Modifier la casse Editer les cellules > Transformations courantes > En majuscules 83/83/
  • 84. Appliquer des transformations courantes Supprimer les espaces superflus Activité: Ajouter manuellement plusieurs espaces au début et à l’intérieur d’une cellule, puis supprimer ces espaces en utilisant le menu. 84/84/
  • 85. Appliquer des transformations courantes Supprimer les espaces superflus Activité: Ajouter manuellement plusieurs espaces au début et à l’intérieur d’une cellule, puis supprimer ces espaces en utilisant le menu. 1/ ajout des espaces (les espaces ne seront pas visibles dans l’affichage général des données, mais ils ont bien été ajoutés) 85/85/
  • 86. Appliquer des transformations courantes Supprimer les espaces superflus 2/ suppression Deux opérations Editer les cellules > Transformations courantes > Supprimer les espaces de début et de fin Editer les cellules > Transformations courantes > Rassembler les espaces consécutifs 86/86/
  • 87. Appliquer des transformations courantes Transformer du texte en nombres ou en dates Malgré les apparence, ces nombres et ces dates sont considérés comme de simple suite de caractères. Mais l’hétérogénéité des données peut rendre leur reconnaissance délicate. 87/87/ JJ-MM-2017 JJ/MM/2017 JJ:MM:2017 JJ/ MM (2017) Unité en k€ Unité en € Séparateur décimal , Séparateur décimal .
  • 88. Appliquer des transformations courantes Transformer du texte en nombres ou en dates Editer les cellules > Transformations courantes > En nombre / En date 88/88/
  • 89. Appliquer des transformations courantes Transformer du texte en nombres ou en dates Cette approche ne suffit pas à résoudre les cas complexes (structure atypique, variation d’unités, séparateur décimal , )  besoin d’utiliser le langage GREL 89/89/ Les valeurs de type non textuel (dates, nombre, booléens) sont en vert, et alignés à droite
  • 90. Appliquer des transformations courantes Effacer les cellules d’une colonne Editer les cellules > Transformations courantes > Vider les cellules 90/90/
  • 91. Appliquer des transformations courantes Supprimer les valeurs répétées sur plusieurs lignes Editer les cellules > Vider 91/91/
  • 92. Appliquer des transformations courantes Supprimer les valeurs répétées sur plusieurs lignes Remarque : le mot « vider » a ici une signification différente que dans l’opération « vider les cellules », qui supprime tout le contenu des cellules. 92/92/
  • 93. Appliquer des transformations courantes Opération inverse : recopier une valeur dans une série de cellules vides situées en dessous Editer les cellules > Remplir 93/93/
  • 94. Appliquer des transformations courantes La suppression des valeurs répétées peut être nécessaire pour d’autres opérations : - Supprimer des doublons - Créer des « entrées » regroupant plusieurs lignes 94/94/
  • 95. Supprimer des doublons Activité : Simplifier le fichier en ne gardant qu’une seule ligne par personne (dans notre cas cela entraînera une perte d’information, mais c’est pour la démonstratio…) 95/
  • 96. Supprimer des doublons Activité : Simplifier le fichier en ne gardant qu’une seule ligne par personne - Tri du fichier en fonction de la colonne code_personne et enregistrement du tri - Suppression des valeurs répétées pour la colonne code_personne (Éditer les cellules -> Vider) - Facette par blanc sur la colonne code_personne (Facette courante -> Facette par blanc) - Sélection de la facette « true » dans le panneau de gauche - Suppression des lignes concernées (colonne Toutes > éditer les lignes > supprimer les lignes) 96/
  • 97. Exporter les données et les traitements 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 97/
  • 98. Exporter les données transformées Plusieurs formats d’export 98/98/
  • 99. Annuler ou rejouer un traitement Historique permettant d’annuler (« défaire ») ou rejouer (« refaire) les traitement sans limites 99/99/
  • 100. Annuler ou rejouer un traitement Limite : - n’enregistre pas les modifications manuelles des cellules - n’enregistre pas les facettes ni les tris - en cas de retour en arrière jusqu’à une opération N et d’ajout de nouvelles opérations, perte de l’historique des opérations qui suivaient l’opération N 100/100/
  • 101. Exporter les traitements Les traitements peuvent être exportés et réappliqués au jeu de données ou à un autre jeu présentant la même structure. Extraire l’historique pour enregistrer les traitements : 101/101/ Copier dans le presse-papier (Ctrl+C / Cmd+C) Créer un fichier texte sur l’ordinateur Ouvrir avec un éditeur de texte Coller le contenu du presse papier (Ctrl+V / Cmd+V) Enregistrer le fichier
  • 102. Réappliquer les traitements À partir d’un jeu de données fraîchement téléchargé 102/102/ Ouvrir le fichier texte dans lequel les traitements ont été enregistrés Sélectionner tout le contenu et copier dans le presse-papier (Ctrl+C / Cmd+C) Coller dans OpenRefine (Ctrl+V/ Cmd+V) Valider
  • 103. Réappliquer les traitements À partir d’un jeu de données fraîchement téléchargé 103/103/ Ouvrir le fichier texte dans lequel les traitements ont été enregistrés Sélectionner tout le contenu et copier dans le presse-papier (Ctrl+C / Cmd+C) Coller dans OpenRefine (Ctrl+V/ Cmd+V) Valider
  • 104. Lignes et entrées 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 104/
  • 105. Lignes et entrées Des lignes peuvent être regroupées en « entrées » (records) si elles se rapportent à un même objet. Travailler avec des entrées permet des traitements avancés. Pour créer des entrées : 1/ trier les données en fonction de la colonne servant de clé de regroupement 2/ déplacer cette colonne en 1re position du tableau 3/ supprimer les valeurs répétées dans cette colonne 105/105/
  • 106. Restructurer des données 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 106/
  • 107. Restructurer les données Cas fréquent : passer de plusieurs valeurs / cellule à une seule Axe horizontal (créer de nouvelles colonnes) Axe vertical (créer de nouvelles lignes) 107/107/ Nom Ville Dupont Nice|Tours Durand Bourges Martin Nice|Paris Nom Ville 1 Ville 2 Dupont Nice Tours Durand Bourges Martin Nice Paris Nom Ville Dupont Nice|Tours Durand Bourges Martin Nice|Paris Nom Ville Dupont Nice Dupont Tours Durand Bourges Martin Nice Martin ParisRisque : croire qu’il y a 2 Martin…
  • 108. Nouveau jeu de données Créer un nouveau projet à partir du fichier exo2.csv 108/108/
  • 109. Restructurer les données Éclater sur plusieurs lignes les cellules comprenant des valeurs multiples Passer de ceci À celà 109/109/
  • 110. Restructurer les données Éclater sur plusieurs lignes les cellules comprenant des valeurs multiples 1. Editer les cellules > Diviser les cellules multivaluées 2. Choisir le séparateur (ici « ; » ). Le séparateur peut être un mot 110/110/
  • 111. Restructurer les données Remplir automatiquement les nouvelles cellules créées (procédure vu plus haut) 1. Colonne espece: Editer les cellules > Remplir 2. Colonne nombre: Editer les cellules > Remplir 111/111/
  • 112. Restructurer les données Etape de nettoyage: Harmoniser les villes et les espèces en utilisant uniquement les facettes et le clustering 112/112/
  • 113. Restructurer les données Regrouper sur une seule ligne des valeurs multiples Passer de ceci À ceci 113/113/
  • 114. Restructurer les données Regrouper sur une seule ligne des valeurs multiples 1. Les données doivent être organisées en « entrées » (vu plus haut : tri sur 1re colonne puis Vider les cellules répétées) 114/114/ La ville sera utilisée pour définir les entrées
  • 115. Restructurer les données Regrouper sur une seule ligne des valeurs multiples 1. Editer les cellules > Joindre les cellules multivaluées 2. Choisir un séparateur 115/115/ Répéter pour les 2 colonnes 7 entrées 7 lignes
  • 116. Restructurer les données Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes 116/116/
  • 117. Restructurer les données 117/117/ Décocher par prudence Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes 1re option : définir un séparateur
  • 118. Restructurer les données Les opérations de « transposition » Revenir à cette étape
  • 119. Restructurer les données Les opérations de « transposition » Passer de A
  • 120. Restructurer les données Les opérations de « transposition » Transposer > Transposer les cellules au travers des colonnes en lignes Options : - résultat dans une seule colonne (« espece_nombre ») - préfixer le nom de la colonne d’origine à chaque cellule
  • 121. Restructurer les données Les opérations de « transposition » Passer de A
  • 122. Restructurer les données Les opérations de « transposition » Colonne espece_nombre > Transposer > Transposer les lignes en colonnes Options : - Transposer toutes les 2e lignes dans une nouvelle colonne
  • 123. Restructurer les données 123/123/ Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes Passer de A
  • 124. Restructurer les données Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes Colonne espece_nombre 1 > Diviser en plusieurs colonnes Options : - Séparateur « : » 125/
  • 125. Restructurer les données Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes Même opération pour la colonne espece_nombre 2 126/
  • 126. Restructurer les données Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes Supprimer les colonnes inutiles et renommer les colonnes restantes 126/
  • 127. Restructurer les données 127/127/ Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes 2e option : définir la longueur de chaque champ
  • 128. Restructurer les données 128/128/ Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes 2e option : définir la longueur de chaque champrésultat
  • 129. Restructurer des données 1. Présentation 2. Installation et paramétrage 3. Import des données 4. Espace de travail 5. Tris, filtres et facettes 6. Regrouper des valeurs proches 7. Appliquer des transformations courantes 8. Exporter les données et les traitements 9. Lignes et entrées 10. Restructurer des données 11. Introdution au langage GREL 129/
  • 130. Introduction au langage GREL Pendant quelques secondes, une information s’affiche après chaque transformation Ex: Elle indique la formule utilisée par OpenRefine. Ici : value.trim() supprime les espaces initiaux et finaux value.replace(/s+/,’’) simplifie les espaces répétés Ces formules se retrouvent aussi dans l’historique des traitements. 130/130/
  • 131. Introduction au langage GREL Les facettes et transformations personnalisées reposent sur des formules de ce type, saisies manuellement. Elles utilisent le langage GREL (Google Refine Expression Language, ou General Refine Expression Language). Documentation : https://github.com/OpenRefine/OpenRefine/wiki/General- Refine-Expression-Language Il est aussi possible d’utiliser deux autres langages (Python et Clojure) pour des cas spécifiques. 131/131/
  • 132. Introduction au langage GREL Dans la colonne espece, ouvrir le menu Editer les cellules > Transformer 132/132/ Formule (sans = initial) Résultat de la formule
  • 133. Appliquer des transformations personnalisées Activité : dans la colonne espece, remplacer tous les « o » par des « O » : formule value.replace("o","O") 133/133/ Prévisualisation du résultat valider
  • 134. Introduction au langage GREL Syntaxe générale  Pas de = avant les fonctions  value désigne le contenu d’une cellule  + permet de concaténer deux valeurs. Ex: "a"+"b" -> "ab"  Nom des fonctions sensible aux majuscules  Les fonctions sont suivies de (parametre1, parametre2…), ou de () en absence de paramètre  Une fonction peut s’écrire de deux manières :  value.nom_de_la_fonction(parametres). Ex: value.trim () ou  nom_de_la_fonction(value, parametres). Ex: trim (value) 134/134/
  • 135. Introduction au langage GREL Intérêt: Certaines fonctions sont absentes d’Excel ou difficile à reproduire, notamment : - Utilisation d’expressions régulières - Récupération de données sur Internet - Manipulation de données au format JSON, XML, HTML 135/135/
  • 136. Introduction au langage GREL Deux menus utiles: aide et historique 136/136/ Aide précieuse! Utiliser Crtrl+F pour rechercher une commande
  • 137. Introduction au langage GREL Deux menus utiles: aide et historique 137/137/ Historique Permet de réutiliser une formule
  • 138. Introduction au langage GREL Exemple de fonctions utiles length () longueur de la chaîne de caractère trim () supprime les espaces initiaux et finaux toUppercase() passe en majuscules (y compris lettres accentuées) Ex: "école".toUppercase() -> « ÉCOLE » toLowercase () passe en minuscules indexOf (x) renvoie la position de x (Attention, la numérotation commence à 0) Ex: "bleu".indexOf (‘b‘) -> 0 substring (pos1,pos2) extrait les caractères entre pos1 et pos2 (Attention, la numérotation commence à 0 et pos2 est exclu) Ex: "bleu".substring(1,3) -> « le » (lettres de position 1 et 2) 138/138/
  • 139. Introduction au langage GREL Exemple de fonctions utiles replace (x, y) remplace la chaîne de caractère x par y. Ex : "zorro".replace (‘zo’,’x’) -> "xrro" replaceChars (x,y) replace les caractères contenus dans x par z Ex : "zorro".replaceChars (‘zo’,’x’) -> "xrx" split (x) décompose la valeur en tableau, en utilisant x comme séparateur. Les éléments du tableau sont accessibles par [n] (numérotation à partir de 0) Ex : "01/12/2015".split(‘/’)[0] -> « 01 » (1er élément du tableau) Ex : "01/12/2015".split(‘/’)[1] -> « 12 » (2er élément du tableau) Ex : "01/12/2015".split(‘/’)[2] -> « 2015 » (3er élément du tableau) join (t, s) inverse de split : agrège les éléments d’un tableau t en utilisant comme séparateur la chaîne de caractères s. 139/139/
  • 140. Introduction au langage GREL Exemple de fonctions utiles cross (cell c, Nom_projet2, Nom_colonne) permet de croiser deux projets : retourne un tableau de 0, 1 ou + lignes du projet Nom_projet2 pour lesquelles les cellules de la colonne Nom_colonne ont le même contenu que la cellule c. parseJson (s) : analyse la chaîne s et renvoie un objet manipulable Ex : value.parseJson()["element-niv1"]["element-niv2"] parseHtml (s) : analyse la chaîne s et renvoie un objet manipulable avec d’autres fonctions Ex: value.parseHtml().select("div#content")[0].select("tr").toString() 140/140/
  • 141. Introduction au langage GREL Récupération et exploiter des données sur Internet : - API JSON - API XML - Page HTML Remarque: il est nécessaire d’utiliser Python dans Openrefine au lieu de GREL : - pour récupérer des données en utilisant le protocole POST - pour exploiter certaines données complexes après leur récupération 141/141/
  • 142. Introduction au langage GREL Activité : récupérer la population des villes à partir de l’API https://geo.api.gouv.fr/ La syntaxe de l’API est https://geo.api.gouv.fr/communes?nom=NOMDECOMMUNE La réponse est en JSON : tableau de X villes dont le nom correspond à la requête, avec plusieurs propriétés pour chacune, dont population 142/142/
  • 143. Introduction au langage GREL Activité : récupérer la population des villes à partir de l’API https://geo.api.gouv.fr/ 1re étape : Créer une colonne liste-urls contenant les URL Colonne villes > Éditer colonne > Ajouter une colonne en fonction de cette colonne Formule : "Racine_URL" + value Ou encore mieux (évite les erreurs en cas de caractère parasite): "Racine_URL" + value.escape(‘url’) 143/143/
  • 144. Introduction au langage GREL 2e étape : Récupérer les données dans une colonne data Colonne liste-urls > Éditer colonne > Ajouter une colonne en moissonnant les URL 144/144/ Bug dans la version 2.7: décocher l’option « Mettre les réponses en cache » « conserver » pour repérer d’éventuelles erreurs de connexion
  • 145. Introduction au langage GREL Résultat intermédiaire 145/145/
  • 146. Introduction au langage GREL 3e étape : Exploitation des données : créer une nouvelle colonne à partir de data Colonne data > Éditer colonne > Ajouter une colonne à partir de cette colonne Formule : value.parseJson()[0]["population"] 146/146/
  • 147. Introduction au langage GREL Résultat final 147/147/
  • 148. Pour aller plus loin Documentation officielle  Site  Documentation (wiki) Quelques tutoriels et retours d’expérience  M. Bourdic, OpenRefine, "Excel aux hormones" pour nettoyage de données, 2017  A. Courtin, “Reconcilier” une liste de nom d’architectes avec Wikidata en utilisant OpenRefine, 2017  Karen H, Using OpenRefine to Reconcile Name Entities, 2017  Leçons du programme Library Carpentry. Open Refine for Librarians, 2016  Leçons du programme Data Carpentry, 2015 ; variante Open Refine for Ecology  T. Padilla, Getting Started with OpenRefine, 2015  S. van Hooland , R. Verborgh et M. De Wilde, Cleaning Data with OpenRefine, 2013  T. Hirst, Merging Datasets with Common Columns in Google Refine, 2011  A. Falcone, Google Refine CheatSheets, 2011 146/

Notas do Editor

  1. Initiation à OpenRefine
  2. David Huyn : http://davidhuynh.net/ Ancien étudiant du MIT. Chez Google depuis 2010 A développé Openrefine mais aussi la suite d’outil SIMILE
  3. Talend, Trifacta : versions gratuites mais limitées à des petits jeux de données Dataiku : payant mais version gratuite disponible pour étudiants ; ne fonctionne pas directement sous Windows
  4. Si $JAVA_PATH ne contient pas le chemin de Java, cela peut entrainer des difficultés pour récupérer des données sur des sites utilisant le protocole sécurisé https
  5. Possibilité de faire un lien dans le menu démarrer.
  6. Si $JAVA_PATH ne contient pas le chemin de Java, cela peut entrainer des difficultés pour récupérer des données sur des sites utilisant le protocole sécurisé https
  7. Possibilité de faire un lien dans le menu démarrer.
  8. Possibilité de faire un lien dans le menu démarrer.
  9. Possibilité de faire un lien dans le menu démarrer.