Nettoyer et préparer des données avec OpenRefine

1 158 vues

Publié le

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

Publié dans : Données & analyses
1 commentaire
5 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
1 158
Sur SlideShare
0
Issues des intégrations
0
Intégrations
117
Actions
Partages
0
Téléchargements
26
Commentaires
1
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Initiation à OpenRefine
  • Non prévu :
    Dédoublonner
    Enrichir un fichier en récupérant automatiquement des données sur le web
    Croiser des fichiers
    Travail avec des données numériques ou des dates
  • https://fr.pinterest.com/pin/342062534175200467/
  • Anglais : clean, cleanse, wrangle, prepare

    Voir https://en.wikipedia.org/wiki/Data_cleansing
  • Dataiku et Talend ne font pas que du nettoyage de données mais aussi des manipulations plus avancées
  • Le nettoyage n’est pas une tache automatique, cela demande de la réflexion…
  • Initiation à OpenRefine
  • Talend, Trifacta : versions gratuites mais limitées à des petits jeux de données
    Dataiku : payant mais version gratuite disponible pour étudiants
  • Initiation à OpenRefine

  • Version non modifiée : https://raw.githubusercontent.com/data-lessons/library-openrefine/gh-pages/data/doaj-article-sample.csv

    Autres jeux de données au besoin:
    https://github.com/data-lessons/library-openrefine/tree/gh-pages/data

    https://github.com/weecology/portal-teachingdb
    La base de données d'enseignement du projet Portal est une version simplifiée de la base de données de projets de portail conçue pour l'enseignement. Il fournit un exemple réel d'histoire de vie, de population et de données écologiques, avec une complexité suffisante pour enseigner de nombreux aspects de l'analyse et de la gestion des données, mais avec beaucoup de complexités supprimées pour permettre aux élèves de se concentrer sur les idées et les compétences fondamentales enseignées. (S. K. Morgan Ernest, Thomas J. Valone, and James H. Brown. 2009. Long-term monitoring and experimental manipulation of a Chihuahuan Desert ecosystem near Portal, Arizona, USA. Ecology 90:1708.)


    oil_production.csv Data on oil production by world region from 2000 to 2014, in thousands of barrels per day, from the U.S. Energy Information Administration.
    ucb_stanford_2014.csv Data on federal government grants to UC Berkeley and Stanford University in 2014, downloaded from USASpending.gov.


  • Initiation à OpenRefine
  • Dans OpenRefine, le regroupement signifie "trouver des groupes de valeurs différentes qui pourraient être des représentations alternatives de la même chose". Par exemple, les deux chaînes "New York" et "New York" sont très susceptibles de se référer au même concept et ont simplement des différences de capitalisation. De même, "Gödel" et "Godel" se réfèrent probablement à la même personne. Le regroupement est un outil très puissant pour le nettoyage des ensembles de données contenant des entrées mal orthographiées ou mal saisies. OpenRefine a mis en place plusieurs algorithmes de clustering. Expérimentez avec eux et en savoir plus sur ces algorithmes et leur fonctionnement.
    Pour en savoir plus: https://github.com/OpenRefine/OpenRefine/wiki/Clustering-In-Depth
  • Initiation à OpenRefine
  • Démonstration sans exercice
  • Manque transfos courantes
  • Manque transfos courantes
  • Manque transfos courantes
  • Manque transfos courantes
  • Manque transfos courantes
  • Manque transfos courantes
  • http://paldhous.github.io/ucsc/2016/investigative-policy/datasets.html

    https://icantiemyownshoes.wordpress.com/2014/04/15/openrefine-and-messy-legacy-access-points-in-an-archivists-toolkit-database/
    (variante: Library Carpentry)
    https://practicaldatamanagement.wordpress.com/2014/05/16/help-me-im-covered-in-bees-or-using-openrefine-to-clean-specimen-data/

  • 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

    ×