Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

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

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 148 Publicité

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

Télécharger pour lire hors ligne

Atelier de découverte d'Openrefine organisé au Learning Centre SophiaTech
23/10/2017
par Mathieu Saby, BU de l'Université Nice Sophia-Antipolis

Adresse du dossier (contient la présentation aux formats Powerpoint et Google slide, l'affiche, et les données utilisées comme exercice): https://drive.google.com/drive/folders/0B1NKejaqcJG5MnJ2SXZSMFlVUEE?usp=sharing

Atelier de découverte d'Openrefine organisé au Learning Centre SophiaTech
23/10/2017
par Mathieu Saby, BU de l'Université Nice Sophia-Antipolis

Adresse du dossier (contient la présentation aux formats Powerpoint et Google slide, l'affiche, et les données utilisées comme exercice): https://drive.google.com/drive/folders/0B1NKejaqcJG5MnJ2SXZSMFlVUEE?usp=sharing

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

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

Publicité

Plus récents (20)

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

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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/
  15. 15. Installation http://openrefine.org/download.html 15/
  16. 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. 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. 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. 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. 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. 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. 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. 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. 24. Importer des données Plusieurs formats de fichiers possibles Depuis plusieurs emplacements 24/
  25. 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. 26. Importer des données Créer un nouveau projet à partir du fichier exo1.csv 26/
  27. 27. Importer des données Charger le fichier dans OpenRefine le fichier précédemment enregistré sur le Bureau 27/
  28. 28. Importer des données Ecran d’import en 2 parties : aperçu des données + paramètres 28/
  29. 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. 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. 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. 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. 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. 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. 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. 36. L’espace de travail 36/ Lien vers le projet ExportNouveau projetContenu du fichier Facettes et filtres Historique
  37. 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. 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. 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 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. 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. 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. 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. 46. Trier les données Retrier de façon permanente 46/ Menu visible après le tri
  47. 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. 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. 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. 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. 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 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. 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. 54. Utiliser les facettes Activité : afficher les facettes textuelles correspondant au contenu de la colonne ville. Quelles anomalies repère-t-on? 54/
  55. 55. Utiliser les facettes Activité : afficher les facettes textuelles correspondant au contenu de la colonne ville. 55/ (blank) : valeur vide
  56. 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. 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. 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. 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. 60. Utiliser les facettes Activité : dans la facette ville, remplacer la valeur « Havre (Le) » par LE HAVRE 60/
  61. 61. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est CAEN
  62. 62. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est CAEN Cliquer
  63. 63. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est CAEN facette en orange : facette active
  64. 64. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville est Caen ou CAEN
  65. 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. 66. Utiliser les facettes Activité : utiliser la facette ville pour afficher les lignes dont la ville n’est ni Caen ni CAEN 66/
  67. 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. 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. 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. 70. Utiliser les facettes: pour aller plus loin Facettes personnalisées : suppose une utilisation du langage GREL (voir plus loin) 70/
  71. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 83. Appliquer des transformations courantes Modifier la casse Editer les cellules > Transformations courantes > En majuscules 83/83/
  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. 84/84/
  85. 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. 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. 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. 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. 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. 90. Appliquer des transformations courantes Effacer les cellules d’une colonne Editer les cellules > Transformations courantes > Vider les cellules 90/90/
  91. 91. Appliquer des transformations courantes Supprimer les valeurs répétées sur plusieurs lignes Editer les cellules > Vider 91/91/
  92. 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. 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. 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. 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. 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. 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. 98. Exporter les données transformées Plusieurs formats d’export 98/98/
  99. 99. Annuler ou rejouer un traitement Historique permettant d’annuler (« défaire ») ou rejouer (« refaire) les traitement sans limites 99/99/
  100. 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. 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. 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. 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. 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. 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. 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. 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. 108. Nouveau jeu de données Créer un nouveau projet à partir du fichier exo2.csv 108/108/
  109. 109. Restructurer les données Éclater sur plusieurs lignes les cellules comprenant des valeurs multiples Passer de ceci À celà 109/109/
  110. 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. 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. 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. 113. Restructurer les données Regrouper sur une seule ligne des valeurs multiples Passer de ceci À ceci 113/113/
  114. 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. 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. 116. Restructurer les données Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes 116/116/
  117. 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. 118. Restructurer les données Les opérations de « transposition » Revenir à cette étape
  119. 119. Restructurer les données Les opérations de « transposition » Passer de A
  120. 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. 121. Restructurer les données Les opérations de « transposition » Passer de A
  122. 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. 123. Restructurer les données 123/123/ Eclater une colonne contenant plusieurs valeurs en plusieurs colonnes Passer de A
  124. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 136. Introduction au langage GREL Deux menus utiles: aide et historique 136/136/ Aide précieuse! Utiliser Crtrl+F pour rechercher une commande
  137. 137. Introduction au langage GREL Deux menus utiles: aide et historique 137/137/ Historique Permet de réutiliser une formule
  138. 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. 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. 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. 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. 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. 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. 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. 145. Introduction au langage GREL Résultat intermédiaire 145/145/
  146. 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. 147. Introduction au langage GREL Résultat final 147/147/
  148. 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/

Notes de l'éditeur

  • Initiation à OpenRefine
  • David Huyn : http://davidhuynh.net/
    Ancien étudiant du MIT. Chez Google depuis 2010
    A développé Openrefine mais aussi la suite d’outil SIMILE
  • 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
  • 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
  • Possibilité de faire un lien dans le menu démarrer.
  • 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
  • Possibilité de faire un lien dans le menu démarrer.
  • Possibilité de faire un lien dans le menu démarrer.
  • Possibilité de faire un lien dans le menu démarrer.

×