Skip to content

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 :

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é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

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