Réalisation d'un mashup de données avec DSS de Dataiku - Première partie

Preview:

Citation preview

Gautier Poupeaugautier.poupeau@gmail.com @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 »

Recommended