Acquisition et structuration de données
Programme:
Dans ce chapitre vous allez apprendre :
- Les principes généraux de l'acquisition et de la structuration des données
- Apprendre à 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 à la structuration des 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 recherche, 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 Interfaces (API) sont des ensembles normalisé de classes, de méthodes, de fonctions et de constantes qui servent de façade par laquelle un logiciel offre des services à d'autres logiciels. Il s'agit de programmes informatiques 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 APIs officielles 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ées pour extraire des informations depuis le code HTML d'une 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 qui est plus puissant mais présente une courbe d'apprentissage plus lente
-
Découvrez les bases avec le module
BeautifulSoupen 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 scraping et l'utilisation d'API
Extraire des données des réseaux sociaux
Si vous souhaitez creuser 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 à chercher 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 l'acquisition, la structuration et la préparation de données à partir de ce notebook