Upload
gautier-poupeau
View
1.283
Download
0
Embed Size (px)
Citation preview
Gautier [email protected] @lespetitescaseshttp://www.lespetitescases.net
Réalisation d’un mashup de données
Premier cours
Qu’est-ce-qu’un mashup ?
Tristan Eaton, 4-6 rue du Chevaleret, Paris 13CC-BY https://www.flickr.com/photos/lespetitescases/29003193065/
Un mashup est une œuvre/création originale mise au point à partir de l’assemblage/mise en relation d’œuvres/créations existantes.
Le mot mashup est le plus souvent utilisé pour la musique mais on le retrouve dans les autres arts ainsi que dans le monde numérique lorsqu’on parle de mashup de données.
Objectifs de l’exercice noté
Chaque groupe devra réaliser un mashup de données. Les propositions :
?
MONUMENTS HISTORIQUESRéutiliser des données en RDF : les mashups
Présentation du projet
• Créer une application à forte valeur ajoutée à partir de sources hétérogènes
• Consolider des données éparses, individuellement faibles pour créer une application riche.
REF DPT COM INSEE TICOPA00078014 10 Aix-en-Othe 10003 Chapelle Saint-AvitPA00078015 10 Aix-en-Othe 10003 Eglise de la NativitéPA00078016 10 Allibaudières 10004 EglisePA00078017 10 Arcis-sur-Aube 10006 Château (ancien)PA00078018 10 Arcis-sur-Aube 10006 EglisePA00078019 10 Arrembécourt 10010 Eglise Saint-EtiennePA00078020 10 Arsonval 10012 EglisePA00078021 10 Auxon 10018 Eglise
REF : PA00088801DPT : 75007ETUD : RecensementimmeublesMHINSEE : 75107TICO : Tour EiffelADRS : Champ-de-MarsSTAT : propriété de la communePPRO : La tour Eiffel : inscription par arrêté du 24 juin AUTR : Eiffel Gustave (maître de l'œuvre)SCLE : 4e quart 19e siècleun fichier .CSV contenant 43 720 enregistrements
de monuments
Objectifs
Source principale
Principes généraux
Maillage et enrichissement avec 6 sources complémentaires : stations de métro, de trains, bases de photos et description de Wikipedia…
Source principale
Sources complémentairesWeb Service degéo localisation
AIFnormalisation et enrichissement
AFSmoteur de recherche
AFS
Application Monuments Historiques
Modèle de données
Création des IHMsLe moteur de recherche pour créer simplement des
applications riches et faciles d’accès
http://labs.antidot.net/widgets/monuments
MUSÉES DE FRANCERéutiliser des données en RDF : les mashups
Présentation du projet
Construire un site agrégeant des informations sur les musées de France
Provenance des jeux de données utilisés
Modèle de données
Musée(data.gouv.fr
)
Musée(data.gouv.fr
)
Musée(MCC)
Musée(MCC)
Musée(Wikidata)Musée
(Wikidata)
Catégo Musée(Commons)
Catégo Musée(Commons)
Musée(BnF)
Musée(BnF)
Livre(BnF)Livre(BnF)
Oeuvre(Wikidata)Oeuvre
(Wikidata)
Artiste(Wikidata)Artiste
(Wikidata)
POI(OSM)POI
(OSM)
Identifiant Museofile
Identifiant Museofile
Nom du musée
Nom du musée
Coordonnées géographiquesCoordonnées
géographiques
Principes généraux d’élaboration
Captation Sémantisation
Alignement Exploitationdu graphe
L’ajout d’un nouveau format d’exposition se limite à l’ajout d’un module dans la chaîne d’exploitation du graphe et à l’écriture du mapping.
Création des IHMsUne page de recherche Une page agrégeant
toutes les données
PRÉSENTATION DU MASHUP
Jeux de données du mashup
Films sur Wikidata
via sparqlendpoint
Films sur OMDBvia API
Liste des films agréés CNC1996-2015
via data.gouv.fr
Liste des 1er films agréés CNC
2003-2015via data.gouv.fr
Distribution sur Wikidata
via sparqlendpoint
Visa d’exploitationIdentifiant Wikidata
Identifiant Imdb
Titre du film + Année
Développement du Mashup avec Dataiku DSS
DSS (Data Science Studio) est un logiciel édité par la société française Dataiku (http://www.dataiku.com/) qui offre un outil complet pour manipuler des données et les traiter avec des algorithmes de machine learning
Version gratuite et instructions d’installation
http://www.dataiku.com/dss/trynow/
Visualisation du Mashup avec Palladio
Palladio est une application Web du HDALab (http://hdlab.stanford.edu/) de Stanford qui permet de visualiser en quelques clics de souris sous différentes formes (Galerie, Graphe, Carte…) des données historiques en chargeant un ou plusieurs fichiers CSV.
http://hdlab.stanford.edu/palladio/
RÉCUPÉRATION DES DONNÉES SUR DATA.GOUV.FR
Page d’accueil de data.gouv.fr
Utilisation du moteur de recherche
Liste de résultats de recherche
Premier jeu de données pour le mashup
http://www.data.gouv.fr/fr/datasets/liste-des-films-cinematographiques-agrees/
Second jeu de données pour le mashup
http://www.data.gouv.fr/fr/datasets/liste-des-films-en-premiere-exclusivite/
CHARGEMENT DES DONNÉES DANS DATAIKU
Page d’accueil de Dataiku
Liste des projets existants
Créer un nouveau projet
Création du projet dans Dataiku
Page d’accueil du projet
Choisir l’origine du jeu de données
Charger un fichier depuis votre disque dur
Interface de chargement du fichier
Charger le fichier principal du mashup : liste des films agréés CNC 1996-2015 ListeFilmsPremièreExclusivité.xlsx
Interface de prévisualisation du fichier
Dans ce cas, les données à charger ne sont pas sur la première feuille affichée par défaut.
Les colonnes détectées automatiquement
Format du fichier
Eléments de configuration spécifiques à chaque format
Interface de prévisualisation du fichier
Ignorer les N premières lignes et indiquer la ligne précédant celle correspondant aux en-têtes de colonnes
Interface d’exploration du jeu de données
Manipulation d’une colonne
Analyse d’une colonne
Regroupement de valeurs proches
Filtrage des données
Liste des jeux de données
Reproduire la procédure en chargeant le fichier : liste des 1er films agréés 2003-2015 production cinématographique - liste des premiers films.xlsx
Affichage du flux de traitement
Les différents types de « recette » de manipulation de données
Type de recette
Synchroniser l’ensemble de données avec un entrepôt de données externe
Type de recette
Préparer les données : nettoyer, rendre cohérent, supprimer des colonnes, rassembler des colonnes…
Type de recette
Mettre au point un échantillon de données
Type de recette
Effectuer une opération d’agrégation : somme, moyenne, min, max, premier, dernier…
Type de recette
Joindre deux ensembles de données : équivalent à un join dans une base de données relationnelle
Type de recette
Séparer un jeu de données
Type de recette
Empiler des jeux de données
Type de recette
Coder une recette avec un langage de programmation : Python, R, Shell, SQL, Scala…
PRÉPARER LES DONNÉES
Interface de préparation de données
Ajouter une étapepour traiter les données
Le travail s’effectue sur un échantillon
Quand tous les traitements sont configurés, n’oubliez pas de cliquer sur « Run » pour l’appliquer à tout le jeu de données
Liste des traitements possibles
Filtrer les donnéesFiltrer, repérer ou supprimer des lignes en fonction d’une valeur, d’un intervalle de dates ou de nombres, de la validité de la donnée, de la présence d’une valeur, supprimer des colonnes
Nettoyage de donnéesNormaliser des données de mesure, repérer ou filtrer des données, remplir des cellules vides avec une valeur ou une valeur d’une ligne suivante ou précédente, convertir des nombres…
Manipulation de chaînes de caractèresDécouper, transformer (casse, trim, diacritiques, encodage URL, XML…), manipuler une chaîne, exécuter une expression régulière
Manipulation de nombresExtraire des nombres, convertir les nombres suivant un format national, convertir une date UNIX, effectuer des opérations entre les valeurs de colonnes, arrondir, convertir une devise
Séparer/extraireSéparer une colonne, extraire avec une expression régulière, séparer une adresse email, extraire une donnée dans une cellule contenant un flux Json
Manipulation de logs de serveur WebClasser les user-agent, découper une chaîne HTTP, générer un identifiant de visiteur, trouver le pays d’un internaute à partir de son adresse IP
Manipulation des datesAnalyser une chaîne de date, extraire des éléments de date, formater une date, calculer la différence entre deux dates, calcul si le jour est chômé
Manipulation de données géographiquesJoindre deux jeux de données par les coordonnées géographiques, géolocaliser (via API externe), changer le système de coordonnées, calculer distance entre deux points, géographie administrative à partir d’une coordonnée géographique…
Enrichir les donnéesEnrichir des données à partir des départements, des codes postaux, jointure entre deux jeux de données, extraire à partir d’une colonne géographique…
Restructurer les donnéesSéparer et générer des lignes, générer des lignes à partir d’un tableau dans une valeur de cellule…
Manipulation de longues chaînes Simplifier une chaîne (normalisation, stop words, stemmatisation), « tokeniser » une chaîne, extraire des ngrams, extraire des nombres, compter des occurrences
Jointure de deux jeux de donnéesJointure entre deux jeux de données avec des valeurs de cellules, jointure entre deux jeux de données avec des valeurs approchantes, jointure géographique
Manipulation d’objets complexesExtraire d’un tableau, trier les données d’un tableau, extraire d’un flux Json, concaténer des tableau Json
Exécuter du codeConstruire une formule avec du « pseudo-code », exécuter une fonction python
DiversConcaténer des colonnes, utiliser une ligne comme en-tête de colonne, copier une colonne, renommer une colonne
PROBLÈME DE TYPAGEListe_films_2015_1996_CNC
DSS détecte automatiquement les problèmes de typage
Problème de typage de données
Filtrer les données
pour sélectionner les données en « erreur »
et les visualiserDans notre cas, on voit qu’une colonne de type « integer » (entier) contient des valeurs avec des lettres, il est nécessaire de modifier le typage de données.
Modifier le type d’une colonne
Le changement de type a corrigé le problème
HARMONISER LES VALEURS D’UNE COLONNE
Liste_films_2015_1996_CNC
Analyse des données de la colonne
Répartition des valeurs et valeurs uniques
Regroupement des valeurs proches
Affichage des groupes de valeurs proches
Proposition de valeurs
Sélection des groupes à fusionner
Sélection des groupes à fusionner
Génération et application d’une étape
FORMATER DES DATESListe_films_2015_1996_CNC
Sélectionner le traitement pour analyser les dates
Indiquer le nom de la colonne à traiter
Construire le patron de datesLettre Date ou composant Type de données Exemples
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
uDay number of week (1 = Monday, ..., 7 = Sunday)
Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00
Indiquer le patron de la date et générer le résultat dans une nouvelle
colonne
Analyser le résultat du traitement
Certaines lignes sont vides donc le traitement n’a pas fonctionné pour ces lignes
Filtrer pour voir les lignes vides
Le patron est différent pour ces lignes
Ajouter le nouveau patron
Analyser le résultat
Il n’y a plus de ligne vide
Générer le résultat dans la même colonne
Formater la date
Configurer le nouveau patron
MODIFIER LES VALEURS D’UNE COLONNE
Liste_films_2015_1996_CNC
Analyser les entrées de la colonne
Double-cliquez sur la valeur à modifier
Une nouvelle étape apparaît et s’enrichit au fur et à mesure
Les valeurs sont modifiées dans le tableau
SUPPRIMER LES ESPACES BLANCS SUPERFLUS
Liste_films_2015_1996_CNC
Certaines colonnes peuvent contenir des espaces blancs en trop
Recherchez le traitement « trim »
Sélectionnez la colonne à modifier
Sélectionnez Remove leading/trailing whitespaces
Les espaces blancs superflus sont supprimés
EXERCICESListe_films_2015_1996_CNC
Effectuez les traitements suivants
• Harmoniser les valeurs de la colonne NATIONALITE• Enlever les espaces entre les slahs de la colonne
NATIONALITE• Harmoniser les valeurs de la colonne DISTRIBUTEUR• Remplacer dans la colonne ART ET ESSAI OUI par true et
NON par false
Penser à sauvegarder !!!
Exécuter sur l’ensemble du jeu de données
SUPPRIMER DES LIGNES VIDESliste_premiers_films_2015_2003
Repérer les lignes vides
Filtrer pour afficher les lignes vides
Choisir le traitement adapté
Indiquer la ou les colonne(s) à prendre en compte
AJOUTER UNE COLONNEliste_premiers_films_2015_2003
Choisir le traitement « formula »
Indiquez le nom de la nouvelle colonne
Editez le contenu de la nouvelle colonne
L’onglet « Reference » indique la liste des fonctions possibles
Dans notre cas, la valeur est toujours la même « true »
La colonne est créée
SUPPRIMER UNE COLONNEliste_premiers_films_2015_2003
Sélectionner le traitement adapté
Indiquer le nom de la colonne à supprimer
ou des colonnes à supprimer
EXERCICESliste_premiers_films_2015_2003
Modifier le type de VISA et corriger l’erreur de DEVIS
Le jeu de données est prêt
Le type doit correspondre à celui de l’autre jeu de données pour effectuer la jointure
RELIER DEUX JEUX DE DONNÉES
Sélectionner la recette de jointure
Déterminer les jeux de données impliqués
Interface de la recette de jointure
Choix du type de jointure
Choix des colonnes à joindre
Sélection des colonnes
Attention ! Les champs à joindre doivent avoir être du même type de données !!
Sélection des colonnes à conserver
Exécuter la jointure
Visualisation du « flow »