Acquisition et structuration de données
Programme:
Dans ce chapitre vous allez apprendre :
- Les principes généraux de l'acquisition et structuration de données
- Apprendre a acquérir des données provenant du web: Open Data, API, scraping
- Apprendre à organiser et structurer différents types de données
Leçon: généralités et tour d'horizon
Faisons un tour d'horizon des notions relatives à l'acquisition et structuration de données en data science.
Leçon en autonomie : Acquisition de données
L'acquisition de données est la première étape indispensable à tout projet de data science. En plus des données métiers dont vous pouvez disposez dans le cadre d'un projet de data science, il est très souvent possible d'enrichir les données provenant du web, en utilisant différents moyens :
Acquérir des données publiques / open data
Il existe un grand nombre de plateformes pour télécharger, requêter ou encore poster des données en Open Data. Ces données ont l'avantage de posséder une licence qui permet et encourage leur réutilisation.
De nombreuses organisations internationales comme la plateforme Our world in data, nationales comme la plateforme française Datagouv ou celle régionnale DataSud, possèdent des plateformes Open Data.
D'autres services privés proposent de nombreux jeux de données en Open Data (ou parfois avec des conditions d'utilisation plus restrictives) comme la rubrique datasets de la plateforme Kaggle, le moteur de recherche de data set de Google, Dataset search ou encore la plateforme UCI machine learning qui proposent des data set orientés recherches, en particulier pour les problèmes de machine learning
Enfin, il existe de nombreux services proposant des data sets spécialisés dans des thématiques précises (médecine, économie, environnement, ...). Voici deux exemples recensant des sources de dataset par thématique:
- Cette page d'un utilisateur de kaggle répertoriant plus de 96 sources
- Le dépot Awesome Public Datasets collaboratif sur Github, très complet qui répertorie des datasets dans beaucoup de catégories
- ...
N'hésitez pas à faire vos propres recherches pour trouver des sources additionnelles en fonction de vos besoins !
Faire des requêtes de données à un service en utilisant une API
Les Application Programming Interface (API) sont des Il s'agit d'un programmes informatique qui permettent à des applications de communiquer entre elles et de s'échanger mutuellement des services ou des données.
Il s'agit souvent d'un moyen privilégié pour extraire automatiquement des informations de sites ou services, surtout si vous suivez les API officielle et leur documentation.
Les limitations des APIs
- Il y a souvent des limitations concernant l'extraction de données (volume de données à chaque requête, ...)
- Lorsque vous cherchez à accèder à des services nécessitant une authentification, vous devrez générer au préalable des tokens d'accès au service
- Certains services peuvent rendre l'utilisation de leur APIs payantes
Avant de vous lancer dans leur utilisation, voici des principes théoriques et pratiques que vous pouvez lire :
- Commencez par prendre connaissance des questions éthiques et pratiques liées à l'extraction de données sur le web
- Découvrez les principes des API Restful appliqués à la data science et apprenez à les utiliser avec python
Pour aller plus loin
Si vous avez besoin d'approfondir l'usage des API de type REST, vous pouvez suivre cette courte leçon d'Open Classroom
Démo : utilisation d'une API
Extraire depuis le code HTML d'une page web: le web scraping
En python, les trois librairies parmi les plus utilisée pour extraire des informations depuis le code HTML de page web sont : requests
un package pour faire des requêtes HTTP et accéder au code source de la page web ciblée et deux scrapers, BeautifulSoup
un scraper facile à prendre en main, et Scrapy
plus puissant mais plus avec une courbe d'apprentissage plus lente
-
Découvrez les bases avec le module
BeautifulSoup
en suivant cet article de blog, cette courte leçon accompagnée d'exemples ou encore cette leçon plus complète issu du cours de Data Science de l'ENSAE. -
Pour ce qui est du cas particulier de l'extraction d'image vous pouvez suivre cette leçon
-
Si vous préférez utiliser scrapy, vous pouvez suivre cet exemple
Démo : web scraping
Pour aller plus loin
Vous pouvez suivre ce cours du master de l'ENSAE qui contient des exercices corrigé sur le scrtaping et l'utilisation d'API
Extraire des données des réseaux sociaux
Si vous souhaitez creusez le cas précis d'extraction de données provenant des réseaux sociaux, vous pouvez piocher dans cette série de notebooks bien détaillés avec du code
Apprenez à rechercher des motifs particuliers dans les données
Il est courant d'avoir besoin d'extraire des informations particulières dans une partie des données collectées avant ou après leur structuration (par exemple extraire des adresses e-mails provenant d'une base de mails ). Les expressions régulières sont une des méthodes les plus puissantes pour ce genre de cas d'usage.
- Découvrez comment utiliser les expressions régulières en python, avec cette courte leçon. Vous pouvez allez plus loin en les pratiquant au travers des exemples de cette page assez complète sur le sujet
Outils utilisant les Large Langage Models
Avec les récents progrès de l'IA sur les LLMs, il existe des frameworks utilisant les capacités des LLMs à extraire de l'information pour scraper le contenu d'une page web à partir d'un prompt d'entrée 😍.
Voici quelques frameworks open source populaires réalisant cette tâche:
- crawl4ai
- Scrapegraph-ai
Leçon en autonomie: agrégation et structuration de données
Découvrez des types et structures de données pour organiser l'architecture de vos données
- Découvrez cette très bonne introduction aux principes algorithmiques pour la datascience et aux structures de données
- Apprenez à manipuler trois types de formats de fichiers très courants en data science : le csv, le json et le xml
- Découvrez le HDF5 un conteneur de fichier très utile pour stocker des données hétérogènes. Apprenez à utiliser le
package h5py
, une implémentation en python très utilisée au travers de ce très court tutoriel d'initiation ou de ce tutoriel détaillé - Optionnellement, vous pouvez vous formez à l'analyse de données géospatiales en suivant ce mini-cours sur kaggle
Avec pandas
Pandas permet de lire et écrire beaucoup de formats populaires, par exemple le json
, xml
, sql
vers le format DataFrame
. Pour des exemples, voyez le user guide
Evaluation
Vous allez réaliser un exercice noté concernant la acquisition, la structuration et la préparation de données à partir de ce notebook