Nettoyer et préparer des données
avec OpenRefine
BU UNS
Formation URFIST PACAC
25/4/2017
M. Saby
1/
Plan
1. Introduction au nettoyage et à la préparation de données
2. Présentation d’OpenRefine
3. Importer des données
4. T...
Nettoyer et préparer des données
3/
Du rêve …à la réalité
Nettoyer et préparer des données
Avant d’analyser des données il faut souvent les nettoyer ou
les préparer, surtout si ell...
Nettoyer et préparer des données
Quelques exemples
5/
Modifier l’organisation des données
Nom Code
postal
Ville
Dupont 061...
Nettoyer et préparer des données
Quelques exemples
Avant de dédoublonner, s’assurer que 2 lignes ne désignent pas des réal...
Nettoyer et préparer des données
Quelques exemples
7/
Harmoniser des valeurs textuelles
Nice
France, Nice
Nice
NICE
[Nice,...
Nettoyer et préparer des données
Quelques exemples
8/
Harmoniser des dates
15/5/2017
5/15/2017
2017-05-15
15 mai 2017
May ...
Nettoyer et préparer des données
Quelques exemples
9/
Coder et simplifier
Alive
Vivant
Vivant
Mort
Dead
1
1
1
0
0
Le codag...
Nettoyer et préparer des données
Quelques exemples
10/
Extraire des valeurs
Né en 1960
Born on 1978
1958
Naissance: 1985
1...
Nettoyer et préparer des données
Quelques exemples
11/
Repérer les valeurs manquantes
Nom Code postal Ville
Dupont 06100 N...
Nettoyer et préparer des données
Quelques exemples
12/
Repérer des incohérences
Nom Code postal Ville
Dupont 06100 Nice
Ma...
Nettoyer et préparer des données
Quelques exemples
13/
Repérer les valeurs statistiquement aberrantes
Nom Age Profession
D...
Nettoyer et préparer des données
Quelques exemples
14/
Croiser des données
Nom Code postal
Dupont 06100
Martin 18000
David...
Nettoyer et préparer des données
Quelques exemples
15/
Enrichir les données avec une source externe
Risque d’erreur
Nom
Pr...
Quels outils ?
Tableurs
Scripts
Programmes dédiés
16/
Quels outils?
Un outil gratuit à exploiter au maximum!
17/
Crédit: https://commons.wikimedia.org/wiki/File:PSM_V46_D167_Ou...
Présentation d’OpenRefine
18/
Positionnement d’OpenRefine
Avantages
 Fonctions absentes des tableurs
traditionnels
 Interface graphique (vs. scripts)
...
Présentation du logiciel
 Historique
 2010 : Gridworks développé par Metaweb, comme outil lié à
leur base de connaissanc...
Présentation du logiciel
 Aspects techniques
 Écrit en langage Java (peut compliquer l’installation sous Mac)
 Installa...
Présentation du logiciel
 Apparence d’un tableur mais ça n’en est pas un
 Fonctionnalités principales
 Explorer un jeu ...
Importer des données
23/
Lancer OpenRefine
Ouvrir un navigateur (Chrome ou Firefox)
Windows : lancer de préférence refine.bat (prise en compte de
l...
Importer des données
Jeu de données utilisées pour la formation: liste d’articles
scientifiques, tirée du DOAJ, et légèrem...
Importer des données
Projet = un fichier de données + un ensemble de traitements
Un projet peut être réouvert, ou importé ...
Importer des données
Plusieurs formats de fichiers possibles
Depuis plusieurs emplacements
27/
Importer des données
Charger le fichier dans OpenRefine le fichier précédemment
enregistré sur le Bureau
28/
Importer des données
Ecran d’import en 2 parties : aperçu des donnés + paramètres
29/
Importer des données
Jouons avec les principaux paramètres… Quelles différences
dans l’aperçu?
30/
Encodage des
caractères...
Importer des données
Lire et écrire en français…
31/
Importer des données
Pourquoi être prudent avec la détection automatique des
nombres et des dates (valable avec OpenRefine...
Importer des données
Pourquoi être prudent avec la détection automatique des
nombres et des dates (valable avec OpenRefine...
Importer des données
Une fois les paramètres d’imports choisis, lancer l’import
34/
[Optionnel]
Changer le nom du projet
C...
Travailler avec OpenRefine:
principes généraux
35/
L’espace de travail
36/
Lien vers le projet
ExportNouveau
projetContenu du fichierFacettes
et filtres
Historique
L’espace de travail
37/
Colonnes de donnéesNb lignes affichées
Voir les lignes
précédentes ou suivantesNb lignes du fichie...
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 à de...
Comment explorer et manipuler les données
Modification d’une cellule : bouton edit visible au survol
 Ponctuelle
 Pour t...
Les menus contextuels
Les plus fonctions les utilisées : facettes, édition de cellules et
de colonnes, tri
Fonction propre...
Réordonner ou supprimer des colonnes
Dans la 1re colonne Toutes
41/
Tris, filtres et facettes
42/
Trier les données
Activité : trier les données en fonction des valeurs de la
colonne Authors (de A à Z, sans tenir compte ...
Trier les données
Activité : trier les données en fonction des valeurs de la
colonne Authors (de A à Z, sans tenir compte ...
Trier les données
Activité : trier les données en fonction des valeurs de la
colonne Authors (de A à Z, sans tenir compte ...
Trier les données
Retrier de façon permanente
46/
Nouveau menu
Trier les données
47/
Les lignes ont été effectivement réordonnées
Filtrer les données
Activité : filtrer le fichier pour afficher les lignes dont la
colonne Authors contient le mot « Peter...
Filtrer les données
Activité : filtrer le fichier pour afficher les lignes dont la
colonne Authors contient le mot « Peter...
Filtrer les données
Toutes les opérations (export, nouveaux filtres, facettes,
modifications groupées) s’opèreront uniquem...
Filtrer les données
Pour annuler un filtre, cliquez sur la croix dans le coin supérieur
gauche du filtre
Nous allons annul...
Utiliser les facettes
Une « facette » donne un aperçu synthétique du contenu d’une
colonne, ce qui facilite les opérations...
Utiliser les facettes
Activité : afficher les facettes textuelles correspondant au
contenu de la colonne Language.
Résulta...
Utiliser les facettes
Les options d’une facette
54/
Récupérer la liste Tri alphabétique ou par occurrence
valeurs vides (b...
Utiliser les facettes
Activité : dans la facette Language, afficher les valeurs par
« nombre de choix », et ne conserver q...
Utiliser les facettes
Activité : dans la facette Language, afficher les valeurs par
« nombre de choix », et ne conserver q...
Utiliser les facettes
Annuler l’opération en fermant l’histogramme
Activité : dans la facette Language, remplacer la valeu...
Utiliser les facettes
Activité : dans la facette Language, remplacer la valeur English
par EN
58/
Utiliser les facettes
Activité : utiliser la facette Language pour filtrer les données et
afficher uniquement les lignes s...
Utiliser les facettes
Activité : utiliser la facette Language pour filtrer les données et
afficher uniquement les lignes s...
Utiliser les facettes
Activité : vérifier la langue réelle d’après les titres
61/
15 titres en anglais
Utiliser les facettes
Activité : puis ajouter la bonne valeur dans Language
62/
Utiliser les facettes
Afficher un histogramme à partir d’une facette
63/
Utiliser les facettes
Activité : Remplacer toutes les valeurs « English » par « EN »
Résultat : 3 langues
Anomalies : 15 v...
Utiliser les facettes: pour aller plus loin
Facettes numériques, chronologiques, en nuage de point :
suppose d’avoir des d...
Utiliser les facettes: pour aller plus loin
Facettes personnalisées : suppose une utilisation du langage
GREL (voir plus l...
Utiliser les facettes: pour aller plus loin
Facettes courantes : plusieurs options souvent utiles: facette
par mot, par do...
Utiliser les facettes: pour aller plus loin
Activité : A partir de la colonne Title, appliquer une facette par
mots. Quel ...
Utiliser les facettes: pour aller plus loin
Activité : A partir de la colonne Title, appliquer une facette par
mots. Quel ...
Utiliser les facettes: pour aller plus loin
Activité : Certains articles portent-ils le même DOI (numéro
censé être unique...
Utiliser les facettes: pour aller plus loin
Activité : Certains articles portent-ils le même DOI (numéro
censé être unique...
Utiliser les facettes: pour aller plus loin
Activité : Un code ISSN fait 9 caractères (XXXX-XXXX).
Certaines valeurs de la...
Utiliser les facettes: pour aller plus loin
Activité : Un code ISSN fait 9 caractères (XXXX-XXXX).
Certaines valeurs de la...
Utiliser les facettes: pour aller plus loin
Activité : Combien de lignes contiennent une information dans
la colonne Licen...
Regrouper des valeurs proches
75/
(« clusterisation »)
Regrouper des valeurs proches
Activité : Créer des facettes textuelles pour la colonne
Publisher, puis grouper les résulta...
Regrouper des valeurs proches
Activité : Créer des facettes textuelles pour la colonne
Publisher, puis grouper les résulta...
Regrouper des valeurs proches
Plusieurs algorithmes
78/
Regrouper des valeurs proches
Ex: La méthode « plus proches voisins » basé sur la distance de
Levenshtein détecte 5 groupe...
Regrouper des valeurs proches
Pourquoi « MDPI AG » et « MDPI AG » sont-elles considérées
comme des valeurs proches et non ...
Regrouper des valeurs proches
Valider la suggestion
81/
cocher
Prudence!
Ces algorithmes peuvent faire des rapprochements non
pertinents.
Ex. sur la colonne Authors:
82/
Ces deux valeur...
Transformations courantes du
contenu des colonnes
83/
Appliquer des transformations courantes
Activité: Transformer les valeurs de la colonne Title pour
obtenir ce résultat
84/...
Appliquer des transformations courantes
Editer les cellules > Transformations courantes > En majuscules
85/85/
Appliquer des transformations courantes
Activité: Ajouter manuellement plusieurs espaces au début et
à l’intérieur d’une c...
Appliquer des transformations courantes
Activité: Ajouter manuellement plusieurs espaces au début et
à l’intérieur d’une c...
Appliquer des transformations courantes
Activité: Supprimer ces espaces en utilisant le menu
Deux opérations
Vérification:...
Éclater les cellules comprenant des
valeurs multiples
89/
Deux cas envisageables
Axe horizontal (créer de nouvelles colonnes)
Axe vertical (créer de nouvelles lignes)
90/90/
Nom Vi...
Diviser une colonne en fonction de son
contenu
Activité : examiner la structure générale des données de la
colonne Citatio...
Diviser une colonne en fonction de son
contenu
Activité : examiner la structure générale des données de la
colonne Citatio...
Diviser une colonne en fonction de son
contenu
Activité : éclater cette colonne en 4 colonnes, en conservant la
colonne in...
Diviser une colonne en fonction de son
contenu
94/94/
décocher
conserver
Diviser une colonne en fonction de son
contenu
95/95/
Éclater une colonne sur plusieurs lignes
Peut-on appliquer la même méthode aux colonnes Authors et
Subjects pour créer une...
Éclater une colonne sur plusieurs lignes
Peut-on appliquer la même méthode aux colonnes Authors et
Subjects pour créer une...
Éclater une colonne sur plusieurs lignes
Solution: créer de nouvelles lignes
1. Editer les cellules > Diviser les cellules...
Éclater une colonne sur plusieurs lignes
Solution:
1. Editer les cellules > Diviser les cellules multivaluées
99/99/
Astuc...
Éclater une colonne sur plusieurs lignes
Solution:
1. Editer les cellules > Diviser les cellules multivaluées
100/100/
Éclater une colonne sur plusieurs lignes
Solution:
2. Nettoyer les valeurs
101/101/
Repérer les variantes singulier/plurie...
Éclater une colonne sur plusieurs lignes
Solution:
3. Editer les cellules > Joindre les cellules multivaluées
Les données ...
Éclater une colonne sur plusieurs lignes
Activité: Comment obtenir ce résultat (3 colonnes, 1 ligne pour
chaque sujet clas...
Éclater une colonne sur plusieurs lignes
1. Diviser les cellules multivaluées de la colonne Subject
2. Dans les colonnes U...
Éclater une colonne sur plusieurs lignes
3. Supprimer les colonnes inutiles et reclasser les colonnes
restant avec le menu...
Éclater une colonne sur plusieurs lignes
4. Trier sur la colonne Subjects
5. Menu Sort > Retrier de façon permanente
6. Ex...
Exporter et réappliquer les
traitements
107/
Annuler ou rejouer un traitement
Permet d’annuler (« défaire ») ou rejouer (« refaire) un traitement
sans limites
108/108/
Exporter et réappliquer les traitements
Les traitements peuvent être exportés et réappliqués au jeu de
données initial ou ...
Exporter les traitements
Extraire l’historique pour enregistrer les traitements
110/110/
Copier dans le presse-papier
(Ctr...
Réappliquer les traitements
À partir d’un jeu de données fraîchement téléchargé
111/111/
Ouvrir le fichier texte dans lequ...
Personnaliser ses opérations avec
des formules
Introduction au langage GREL
Démonstration sans exercice
112/
Appliquer des transformations
personnalisées
Pendant quelques secondes, une information s’affiche après
une modification d...
Appliquer des transformations
personnalisées
Les transformations personnalisées reposent sur des formules
de ce type, sais...
Appliquer des transformations
personnalisées
Activité : dans la colonne Author, ouvrir le menu Editer les
cellules > Trans...
Appliquer des transformations
personnalisées
Activité : dans la colonne Author, ouvrir le menu Editer les
cellules > Trans...
Appliquer des transformations
personnalisées
Activité : dans la colonne Author, ouvrir le menu Editer les
cellules > Trans...
Appliquer des transformations
personnalisées
Activité : dans la colonne Author, ouvrir le menu Editer les
cellules > Trans...
Appliquer des transformations
personnalisées
Deux menus utiles: aide et historique
119/119/
Aide précieuse!
Utiliser Crtrl...
Appliquer des transformations
personnalisées
Deux menus utiles: aide et historique
120/120/
Historique
Permet de réutilise...
Appliquer des transformations
personnalisées
Syntaxe générale
 Pas de = avant les fonctions
 + permet de concaténer deux...
Appliquer des transformations
personnalisées
Exemple de fonctions utiles
length () longueur de la chaîne de caractère
trim...
Appliquer des transformations
personnalisées
Exemple de fonctions utiles
replace (x, y) remplace la chaîne de caractère x ...
Appliquer des transformations
personnalisées
Exemple de fonctions utiles
cross (cell c, Nom_projet2, Nom_colonne) permet d...
Créer une colonne en fonction d’une autre
Activité : examiner la structure des données de la nouvelle
colonne Citation 4, ...
Créer une colonne en fonction d’une autre
Activité : examiner la structure des données de la nouvelle
colonne Citation 4
P...
Créer une colonne en fonction d’une autre
Activité : créer une nouvelle colonne Annee ne contenant que
l’année de l’articl...
Créer une colonne en fonction d’une autre
Activité : créer une nouvelle colonne Annee ne contenant que
l’année de l’articl...
Créer une colonne en fonction d’une autre
Activité : créer une nouvelle colonne Annee ne contenant que
l’année de l’articl...
Ce que nous n’avons pas vu…
Enrichir un jeu de données avec des informations issues du web
(sur la base d’une URL ou d’un ...
Pour aller plus loin
Documentation officielle
 Site
 Documentation (wiki)
Quelques tutoriels et retours d’expérience
 M...
Prochain SlideShare
Chargement dans…5
×

Nettoyer et préparer des données avec OpenRefine

2 206 vues

Publié le

Formation d'initiation à OpenRefine réalisée à l'URFIST PACAC le 25/4/2017

Publié dans : Données & analyses

Nettoyer et préparer des données avec OpenRefine

  1. 1. Nettoyer et préparer des données avec OpenRefine BU UNS Formation URFIST PACAC 25/4/2017 M. Saby 1/
  2. 2. Plan 1. Introduction au nettoyage et à la préparation de données 2. Présentation d’OpenRefine 3. Importer des données 4. Tris, filtres et facettes 5. Regrouper des valeurs proches 6. Transformer le contenu des colonnes 7. Éclater les cellules comprenant des valeurs multiples 8. Exporter les données après transformation 9. Exporter et réappliquer les traitements 10. Personnaliser ses opérations avec des formules (non présenté) 2/
  3. 3. Nettoyer et préparer des données 3/ Du rêve …à la réalité
  4. 4. Nettoyer et préparer 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 non officielles. Nettoyage : données hétérogènes, incomplètes, erronées ou bruitées, mal normalisées. Préparation : format, organisation ou codage des données non adaptés à l’outil d’analyse ou aux questions à explorer. 4/
  5. 5. Nettoyer et préparer des données Quelques exemples 5/ Modifier l’organisation des données Nom Code postal Ville Dupont 06100 Nice Martin 18000 Bourges Durand 06000 Nice Nom Dupont Martin Durand Code postal 06100 18000 06000 Ville Nice Bourges Nice
  6. 6. Nettoyer et préparer des données Quelques exemples Avant de dédoublonner, s’assurer que 2 lignes ne désignent pas des réalités différentes (homonymie) 6/ Traitement des doublons Code postal Ville 06100 Nice 18000 Bourges 06000 Nice Code postal Ville 06100 Nice 18000 Bourges 06000 Nice 06100 Nice Code postal Ville Occurrence 06100 Nice 2 18000 Bourges 1 06000 Nice 1 ou
  7. 7. Nettoyer et préparer des données Quelques exemples 7/ Harmoniser des valeurs textuelles Nice France, Nice Nice NICE [Nice, Fr] Nice (France) Corriger des valeurs textuelles Nietzsche Nietsche Nieztsche Nietzshe Nietzsche F. Nietzsche Friedrich Nietzche Marcel Proust Proust, Marcel Nietzsche, Friedrich Proust, Marcel
  8. 8. Nettoyer et préparer des données Quelques exemples 8/ Harmoniser des dates 15/5/2017 5/15/2017 2017-05-15 15 mai 2017 May 15th 2017 2017-05-15 Convertir des unités de mesure 1 km 1000 m 0,621 mi 0°C 32°F 273,15°K 1 km 0°C Le changement d’unités peut introduire des approximations dans les mesures Format américain : MM-JJ-AAAA
  9. 9. Nettoyer et préparer des données Quelques exemples 9/ Coder et simplifier Alive Vivant Vivant Mort Dead 1 1 1 0 0 Le codage doit être explicite et documenté !
  10. 10. Nettoyer et préparer des données Quelques exemples 10/ Extraire des valeurs Né en 1960 Born on 1978 1958 Naissance: 1985 1960 1978 1958 1985 Extraire des valeurs multiples Né en 1960, mort en 2015 Born in 1978, died in 2000 1958, alive 1985-2017 1960 2015 1978 2000 1958 1985 2017
  11. 11. Nettoyer et préparer des données Quelques exemples 11/ Repérer les valeurs manquantes Nom Code postal Ville Dupont 06100 Nice Martin 18000 Bourges David Durand 06000 Nice Actions possibles: - supprimer la ligne - remplacer par « N/A » - chercher à corriger Une valeur manquante n’est pas forcément une anomalie! Tout dépend du contexte,
  12. 12. Nettoyer et préparer des données Quelques exemples 12/ Repérer des incohérences Nom Code postal Ville Dupont 06100 Nice Martin 18000 Bourges David 06000 Montpellier Durand 06000 Nice Actions possibles: - supprimer la ligne - remplacer par « N/A » - chercher à corriger Il faut connaître le contexte de production des données pour savoir quelle est la valeur incohérente (06000 ou Montpellier?)
  13. 13. Nettoyer et préparer des données Quelques exemples 13/ Repérer les valeurs statistiquement aberrantes Nom Age Profession Dupont 80 Lycéen Martin 18 Retraité David 18 Lycéen Durand 65 Retraité Actions possibles: - supprimer la ligne - remplacer par « N/A » - chercher à corriger Demande une analyse statistique et une connaissance de l’objet étudié,
  14. 14. Nettoyer et préparer des données Quelques exemples 14/ Croiser des données Nom Code postal Dupont 06100 Martin 18000 David Durand 06000 Code postal Ville 06100 Nice 06000 Nice 18000 Bourges 34000 Montpellier Nom Code postal Ville Dupont 06100 Nice Martin 18000 Bourges David Durand 06000 Nice Penser aux cas où les valeurs du tableau A ne peuvent pas être croisées avec celles du tableau B (3e ligne)
  15. 15. Nettoyer et préparer des données Quelques exemples 15/ Enrichir les données avec une source externe Risque d’erreur Nom Proust, Marcel Nietzsche, Friedrich Nom Identifiant Naissance Mort Proust, Marcel Marcel_Proust 1871 1922 Nietzsche, Friedrich Friedrich_Nietzsche 1844 1900
  16. 16. Quels outils ? Tableurs Scripts Programmes dédiés 16/
  17. 17. Quels outils? Un outil gratuit à exploiter au maximum! 17/ Crédit: https://commons.wikimedia.org/wiki/File:PSM_V46_D167_Outer_surface_of_the_human_brain.jpg
  18. 18. Présentation d’OpenRefine 18/
  19. 19. Positionnement d’OpenRefine Avantages  Fonctions absentes des tableurs traditionnels  Interface graphique (vs. scripts)  Totalement libre et gratuit (vs. Dataiku, 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 (100000 lignes maxi environ)  Pas de fonction collaborative  Formats d’imports limités  Pas de connexion avec des outils « big data »  Langage spécifique 19/
  20. 20. Présentation du logiciel  Historique  2010 : Gridworks développé par Metaweb, comme outil lié à leur base de connaissance Freebase  2010-2012 : renommé Google Refine (rachat de Metaweb)  2012 : renommé OpenRefine (libération du code par Google)  Modèle économique  Logiciel opensource, donc gratuit  Petite communauté de développeurs  Versions  Dernière version bêta : 2.7rc2 (2017). À installer de préférence à la 2.5  Dernière version officielle : 2.5 (2011, développée par Google) 20/
  21. 21. Présentation du logiciel  Aspects techniques  Écrit en langage Java (peut compliquer l’installation sous Mac)  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) 21/
  22. 22. Présentation du logiciel  Apparence d’un tableur mais ça n’en est pas un  Fonctionnalités principales  Explorer un jeu de données : tris, facettes, regroupement de valeurs proches  Modifier des données en mode graphique ou avec des formules  Enrichir des données  Documenter tous les traitements  Extensions possible avec des plug-ins, mais ne sont pas tous compatibles avec la dernière version 22/
  23. 23. Importer des données 23/
  24. 24. 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 24/
  25. 25. Importer des données Jeu de données utilisées pour la formation: liste d’articles scientifiques, tirée du DOAJ, et légèrement modifiée pour les besoins de l’exercice. Télécharger le fichier donnees-exo.csv à l’adresse xxxxxxx et enregistrez le sur le Bureau 25/
  26. 26. 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 26/
  27. 27. Importer des données Plusieurs formats de fichiers possibles Depuis plusieurs emplacements 27/
  28. 28. Importer des données Charger le fichier dans OpenRefine le fichier précédemment enregistré sur le Bureau 28/
  29. 29. Importer des données Ecran d’import en 2 parties : aperçu des donnés + paramètres 29/
  30. 30. Importer des données Jouons avec les principaux paramètres… Quelles différences dans l’aperçu? 30/ 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 Entête du fichier Détection des nombres et des dates (dans le doute, à éviter) Mettre à jour l’aperçu
  31. 31. Importer des données Lire et écrire en français… 31/
  32. 32. Importer des données Pourquoi être prudent avec la détection automatique des nombres et des dates (valable avec OpenRefine comme tout autre logiciel) ? 32/
  33. 33. Importer des données Pourquoi être prudent avec la détection automatique des nombres et des dates (valable avec OpenRefine comme tout autre logiciel) ?  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 33/
  34. 34. Importer des données Une fois les paramètres d’imports choisis, lancer l’import 34/ [Optionnel] Changer le nom du projet Créer un projet
  35. 35. Travailler avec OpenRefine: principes généraux 35/
  36. 36. L’espace de travail 36/ Lien vers le projet ExportNouveau projetContenu du fichierFacettes et filtres Historique
  37. 37. L’espace de travail 37/ Colonnes de donnéesNb 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. 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 38/
  39. 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. 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. 41. Réordonner ou supprimer des colonnes Dans la 1re colonne Toutes 41/
  42. 42. Tris, filtres et facettes 42/
  43. 43. Trier les données Activité : trier les données en fonction des valeurs de la colonne Authors (de A à Z, sans tenir compte des majuscules) 43/
  44. 44. Trier les données Activité : trier les données en fonction des valeurs de la colonne Authors (de A à Z, sans tenir compte des majuscules) 44/
  45. 45. Trier les données Activité : trier les données en fonction des valeurs de la colonne Authors (de A à Z, sans tenir compte des majuscules) 45/ Pour l’instant l’ordre original est préservé (le tri concerne juste l’affichage)
  46. 46. Trier les données Retrier de façon permanente 46/ Nouveau menu
  47. 47. Trier les données 47/ Les lignes ont été effectivement réordonnées
  48. 48. Filtrer les données Activité : filtrer le fichier pour afficher les lignes dont la colonne Authors contient le mot « Peter » ET la colonne Title le mot « crystal » Combien de lignes correspondent à ces deux critères? 48/
  49. 49. Filtrer les données Activité : filtrer le fichier pour afficher les lignes dont la colonne Authors contient le mot « Peter » ET la colonne Title le mot « crystal » Résultat: 17 lignes 49/
  50. 50. 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 Language : uniquement 17 lignes modifiées 50/
  51. 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. 52. Utiliser les facettes Une « facette » donne un aperçu synthétique du contenu d’une colonne, ce qui facilite les opérations de filtrage et de modifications. Activité : afficher les facettes textuelles correspondant au contenu de la colonne Language. Combien de langues sont représentées? Quelles anomalies constate-t-on? 52/
  53. 53. Utiliser les facettes Activité : afficher les facettes textuelles correspondant au contenu de la colonne Language. Résultat : 3 langues (anglais, espagnol, français) Anomalies : - « EN » et « English » pour l’anglais - 15 valeurs vides 53/ (blank) : valeur vide
  54. 54. Utiliser les facettes Les options d’une facette 54/ Récupérer la liste Tri alphabétique ou par occurrence valeurs vides (blank) toujours à la fin Modifier la facette (complexe) Regrouper les valeurs semblables
  55. 55. Utiliser les facettes Activité : dans la facette Language, afficher les valeurs par « nombre de choix », et ne conserver que celles présentes entre 50 et 200 fois dans le fichier 55/
  56. 56. Utiliser les facettes Activité : dans la facette Language, afficher les valeurs par « nombre de choix », et ne conserver que celles présentes entre 50 et 200 fois dans le fichier 56/ 1 seule valeur, présente 107 fois histogramme
  57. 57. Utiliser les facettes Annuler l’opération en fermant l’histogramme Activité : dans la facette Language, remplacer la valeur English par EN 57/
  58. 58. Utiliser les facettes Activité : dans la facette Language, remplacer la valeur English par EN 58/
  59. 59. Utiliser les facettes Activité : utiliser la facette Language pour filtrer les données et afficher uniquement les lignes sans valeur dans Language, vérifier la langue réelle d’après les titres, puis ajouter la bonne valeur dans Language 59/
  60. 60. Utiliser les facettes Activité : utiliser la facette Language pour filtrer les données et afficher uniquement les lignes sans valeur dans Language facette en orange : utilisé pour filtrer les données (afficher les données correspondant à la facette) facette en noir barré : filtre inversé (afficher les données ne correspondant pas à la facette) 60/
  61. 61. Utiliser les facettes Activité : vérifier la langue réelle d’après les titres 61/ 15 titres en anglais
  62. 62. Utiliser les facettes Activité : puis ajouter la bonne valeur dans Language 62/
  63. 63. Utiliser les facettes Afficher un histogramme à partir d’une facette 63/
  64. 64. Utiliser les facettes Activité : Remplacer toutes les valeurs « English » par « EN » Résultat : 3 langues Anomalies : 15 valeurs vides ; EN et English pour l’anglais 64/
  65. 65. 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) 65/
  66. 66. Utiliser les facettes: pour aller plus loin Facettes personnalisées : suppose une utilisation du langage GREL (voir plus loin) 66/
  67. 67. Utiliser les facettes: pour aller plus loin Facettes courantes : plusieurs options souvent utiles: facette par mot, par doublons, par longueur de texte, par blanc 67/
  68. 68. Utiliser les facettes: pour aller plus loin Activité : A partir de la colonne Title, appliquer une facette par mots. Quel est le mot le plus fréquent? Sélectionner toutes les lignes dont le titre ne contient pas ce mot. Combien sont-elles? 68/
  69. 69. Utiliser les facettes: pour aller plus loin Activité : A partir de la colonne Title, appliquer une facette par mots. Quel est le mot le plus fréquent? Sélectionner toutes les lignes dont le titre ne contient pas ce mot. Combien sont-elles? 69/
  70. 70. Utiliser les facettes: pour aller plus loin Activité : Certains articles portent-ils le même DOI (numéro censé être unique)? 70/
  71. 71. Utiliser les facettes: pour aller plus loin Activité : Certains articles portent-ils le même DOI (numéro censé être unique)? 71/ Facette supplémentaire : Colonne DOI > Facette textuelle Colonne DOI > Facettes courantes > Facette des doublons En apparence, 25 réponses. Mais la plupart des cellules sont vides…
  72. 72. Utiliser les facettes: pour aller plus loin Activité : Un code ISSN fait 9 caractères (XXXX-XXXX). Certaines valeurs de la colonne ISSNs ont-elles une longueur supérieure? Pourquoi? 72/
  73. 73. Utiliser les facettes: pour aller plus loin Activité : Un code ISSN fait 9 caractères (XXXX-XXXX). Certaines valeurs de la colonne ISSNs ont-elles une longueur supérieure? Pourquoi? 73/ Colonne ISSNs > Facettes courantes > Facette de la longueur du texte Deux catégories de valeurs : longueur=9 ou longueur=19 Filtrage sur les valeurs de longueur 19 Les 41 lignes contiennent 2 ISSN séparés par |
  74. 74. Utiliser les facettes: pour aller plus loin Activité : Combien de lignes contiennent une information dans la colonne Licence? 74/ Colonne Licence > Facettes courantes > Facette par blanc [traduction incorrecte : « blanc » signifie ici « valeur vide »] 995 cellules ne sont pas vides donc contiennent une information
  75. 75. Regrouper des valeurs proches 75/ (« clusterisation »)
  76. 76. Regrouper des valeurs proches Activité : Créer des facettes textuelles pour la colonne Publisher, puis grouper les résultats pour repérer des variantes d’orthographe ou de présentation 76/
  77. 77. Regrouper des valeurs proches Activité : Créer des facettes textuelles pour la colonne Publisher, puis grouper les résultats pour repérer des variantes d’orthographe ou de présentation, et expliquer le résultat 77/
  78. 78. Regrouper des valeurs proches Plusieurs algorithmes 78/
  79. 79. Regrouper des valeurs proches Ex: La méthode « plus proches voisins » basé sur la distance de Levenshtein détecte 5 groupes de valeurs 79/
  80. 80. Regrouper des valeurs proches Pourquoi « MDPI AG » et « MDPI AG » sont-elles considérées comme des valeurs proches et non identiques? 80/ ESPACE FINAL Invisible par défaut
  81. 81. Regrouper des valeurs proches Valider la suggestion 81/ cocher
  82. 82. Prudence! Ces algorithmes peuvent faire des rapprochements non pertinents. Ex. sur la colonne Authors: 82/ Ces deux valeurs sont différentes !
  83. 83. Transformations courantes du contenu des colonnes 83/
  84. 84. Appliquer des transformations courantes Activité: Transformer les valeurs de la colonne Title pour obtenir ce résultat 84/84/
  85. 85. Appliquer des transformations courantes Editer les cellules > Transformations courantes > En majuscules 85/85/
  86. 86. Appliquer des transformations courantes Activité: Ajouter manuellement plusieurs espaces au début et à l’intérieur d’une cellule, puis supprimer ces espaces en utilisant le menu 86/86/
  87. 87. Appliquer des transformations courantes Activité: Ajouter manuellement plusieurs espaces au début et à l’intérieur d’une cellule (les espaces ne seront pas visibles dans l’affichage général des données, mais ils ont bien été ajoutés) 87/87/
  88. 88. Appliquer des transformations courantes Activité: Supprimer ces espaces en utilisant le menu Deux opérations Vérification: les espaces ont bien été supprimés 88/88/
  89. 89. Éclater les cellules comprenant des valeurs multiples 89/
  90. 90. Deux cas envisageables Axe horizontal (créer de nouvelles colonnes) Axe vertical (créer de nouvelles lignes) 90/90/ 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 Paris
  91. 91. Diviser une colonne en fonction de son contenu Activité : examiner la structure générale des données de la colonne Citation, éclater cette colonne en 4 colonnes, en conservant la colonne initiale, et sans forcer le logiciel à deviner le type des données dans les nouvelles colonnes 91/91/
  92. 92. Diviser une colonne en fonction de son contenu Activité : examiner la structure générale des données de la colonne Citation 4 informations séparées par des virgules - Titre de la revue - Volume - Numéro - Pages (année) 92/92/
  93. 93. Diviser une colonne en fonction de son contenu Activité : éclater cette colonne en 4 colonnes, en conservant la colonne initiale, et sans forcer le logiciel à deviner le type des données dans les nouvelles colonnes 93/93/
  94. 94. Diviser une colonne en fonction de son contenu 94/94/ décocher conserver
  95. 95. Diviser une colonne en fonction de son contenu 95/95/
  96. 96. Éclater une colonne sur plusieurs lignes Peut-on appliquer la même méthode aux colonnes Authors et Subjects pour créer une liste de tous les auteurs et tous les sujets, détecter les variantes d’orthographe et regrouper les valeurs proches? 96/96/
  97. 97. Éclater une colonne sur plusieurs lignes Peut-on appliquer la même méthode aux colonnes Authors et Subjects pour créer une liste de tous les auteurs et tous les sujets, détecter les variantes d’orthographe et regrouper les valeurs proches? Non, car  Dans la colonne Citations on a: 4 informations différentes séparées par une virgule.  Dans les colonnes Authors et Subjects on a : des informations de même type, répétées un nombre variable de fois, séparées par une barre | 97/97/
  98. 98. Éclater une colonne sur plusieurs lignes Solution: créer de nouvelles lignes 1. Editer les cellules > Diviser les cellules multivaluées 2. Nettoyer les valeurs 3. Editer les cellules > Joindre les cellules multivaluées 98/98/
  99. 99. Éclater une colonne sur plusieurs lignes Solution: 1. Editer les cellules > Diviser les cellules multivaluées 99/99/ Astuce: Pour saisir le caractère | - Windows : AltGr+6 - Mac : Alt + Maj + L
  100. 100. Éclater une colonne sur plusieurs lignes Solution: 1. Editer les cellules > Diviser les cellules multivaluées 100/100/
  101. 101. Éclater une colonne sur plusieurs lignes Solution: 2. Nettoyer les valeurs 101/101/ Repérer les variantes singulier/pluriel, etc
  102. 102. Éclater une colonne sur plusieurs lignes Solution: 3. Editer les cellules > Joindre les cellules multivaluées Les données ont repris leur forme initiale (1001 lignes) mais les noms des auteurs ont été harmonisés! 102/102/
  103. 103. Éclater une colonne sur plusieurs lignes Activité: Comment obtenir ce résultat (3 colonnes, 1 ligne pour chaque sujet classés alphabétiquement, avec le lien vers l’article concerné) et l’exporter dans Excel? 103/103/
  104. 104. Éclater une colonne sur plusieurs lignes 1. Diviser les cellules multivaluées de la colonne Subject 2. Dans les colonnes URL et DOI, utiliser le menu Editer les cellules > Remplir 104/104/
  105. 105. Éclater une colonne sur plusieurs lignes 3. Supprimer les colonnes inutiles et reclasser les colonnes restant avec le menu Toutes > Editer les colonnes > Retrier/supprimer les colonnes 105/105/
  106. 106. Éclater une colonne sur plusieurs lignes 4. Trier sur la colonne Subjects 5. Menu Sort > Retrier de façon permanente 6. Exporter 106/106/ Astuce: Si l’export Excel ou ods prend trop de temps, exporter en valeurs séparées par des virgules
  107. 107. Exporter et réappliquer les traitements 107/
  108. 108. Annuler ou rejouer un traitement Permet d’annuler (« défaire ») ou rejouer (« refaire) un traitement sans limites 108/108/
  109. 109. Exporter et réappliquer les traitements Les traitements peuvent être exportés et réappliqués au jeu de données initial ou à un autre jeu de données présentant la même structure! 109/109/
  110. 110. Exporter les traitements Extraire l’historique pour enregistrer les traitements 110/110/ 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
  111. 111. Réappliquer les traitements À partir d’un jeu de données fraîchement téléchargé 111/111/ 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
  112. 112. Personnaliser ses opérations avec des formules Introduction au langage GREL Démonstration sans exercice 112/
  113. 113. Appliquer des transformations personnalisées Pendant quelques secondes, une information s’affiche après une modification des données réalisée via le menu: 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. 113/113/
  114. 114. Appliquer des transformations personnalisées Les 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 114/114/
  115. 115. Appliquer des transformations personnalisées Activité : dans la colonne Author, ouvrir le menu Editer les cellules > Transformer, puis utiliser la fonction value.trim() permettant de supprimer les espaces initiaux et finaux 115/115/
  116. 116. Appliquer des transformations personnalisées Activité : dans la colonne Author, ouvrir le menu Editer les cellules > Transformer 116/116/ Formule (sans = initial) Résultat de la formule
  117. 117. Appliquer des transformations personnalisées Activité : dans la colonne Author, ouvrir le menu Editer les cellules > Transformer 117/117/ Erreur ! Il manque les () après trim
  118. 118. Appliquer des transformations personnalisées Activité : dans la colonne Author, ouvrir le menu Editer les cellules > Transformer 118/118/ Cette fois c’est bon! Valider pour appliquer
  119. 119. Appliquer des transformations personnalisées Deux menus utiles: aide et historique 119/119/ Aide précieuse! Utiliser Crtrl+F pour rechercher une commande
  120. 120. Appliquer des transformations personnalisées Deux menus utiles: aide et historique 120/120/ Historique Permet de réutiliser une formule
  121. 121. Appliquer des transformations personnalisées Syntaxe générale  Pas de = avant les fonctions  + permet de concaténer deux valeurs. Ex: "a"+"b" -> "ab"  Nom des fonctions sensible aux majuscules  value désigne le contenu d’une cellule  Les fonctions sont suivies de () contenant les paramètres  Les fonctions sont suivis de () s’il n’y a pas de paramètres  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) 121/121/
  122. 122. Appliquer des transformations personnalisées 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) 122/122/
  123. 123. Appliquer des transformations personnalisées 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) 123/123/
  124. 124. Appliquer des transformations personnalisées 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. Syntaxe délicate à maîtriser 124/124/
  125. 125. Créer une colonne en fonction d’une autre Activité : examiner la structure des données de la nouvelle colonne Citation 4, et créer une nouvelle colonne Annee ne contenant que l’année de l’article (utiliser le langage GREL, avec au moins deux des fonctions suivantes: split, substring, length, replaceChars,indexOf)
  126. 126. Créer une colonne en fonction d’une autre Activité : examiner la structure des données de la nouvelle colonne Citation 4 Pp debut-fin (Année)
  127. 127. Créer une colonne en fonction d’une autre Activité : créer une nouvelle colonne Annee ne contenant que l’année de l’article (utiliser le langage GREL, avec au moins deux des fonctions suivantes: split, substring, length, replaceChars,indexOf)
  128. 128. Créer une colonne en fonction d’une autre Activité : créer une nouvelle colonne Annee ne contenant que l’année de l’article (utiliser le langage GREL, avec au moins deux des fonctions suivantes: split, substring, length, replaceChars,indexOf) Plusieurs formules possibles, dont: value.split('(')[1].substring(0,4) value.substring(length(value)-5,length(value)-1) substring(value.replaceChars('()',''), value.indexOf('(')))
  129. 129. Créer une colonne en fonction d’une autre Activité : créer une nouvelle colonne Annee ne contenant que l’année de l’article (utiliser le langage GREL, avec au moins deux des fonctions suivantes: split, substring, length, replaceChars,indexOf)
  130. 130. Ce que nous n’avons pas vu… Enrichir un jeu de données avec des informations issues du web (sur la base d’une URL ou d’un service de « réconciliation ») Traiter des valeurs numériques Croiser deux jeux de données Utiliser les expressions régulières
  131. 131. 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

×