Python pour les SHS

Pourquoi programmer en Python ?

Léo Mignot (& Émilien Schultz)

2025-12-08

Meme/20

Petit tour de table

  • Léo
    • Recherche & Instrumentation SHS
  • Vous
    • Discipline/sujet d’intérêt ?
    • Type de données ?
    • Quel usage de Python (dans l’idéal) ?
      • ça peut être juste la curiosité …

Objectifs de cette formation

  • Montrer l’intérêt de Python pour les SHS
  • Mettre le pied à l’étrier
  • Éclairer certains aspects plus avancés
    • (on n’aura pas le temps mais …)

Ce que cette formation n’est pas

  • De la théorie sur la programmation
  • Un tour complet du langage
  • Une formation à être développeurs.ses
  • La seule manière d’aborder la programmation
  • Un cours spécialisé (ML, etc.)

Déroulement de la session

  • Tour de piste
  • Bases du langage (dans un notebook)
  • Lire des données csv et faire des traitements basiques
  • Mettre les mains dans le cambouis

Dépôt Github : https://github.com/leomignot/DataSHS_initiation_python

D’abord

  • D’abord répondre à 3 questions
    1. Pourquoi programmer (en recherche) ?
    2. Pourquoi Python ?
    3. Comment s’y mettre ?

Pourquoi programmer (en recherche) ?

La numérisation de la science

  • Numérisation comme point de passage obligé
  • Explosion et circulation des données
    • Comment les actionner ?
  • Courant profond et puissant de la science ouverte
    • Reproductibilité
  • Nouvelles méthodes & terrains en SHS
    • NLP…

La programmation scientifique

  • Script : réaliser des petites tâches spécifiques
  • Interactivité : tester et expérimenter
  • Spécificité : des outils spécifiques
  • Temporaire : évolution permanente
  • “Amateurisme” : pas le coeur de métier

« in contrast to software engineering, there is no externally specified goal or design target. Instead, the user explores and discovers their goal as they gain understanding from iteratively executing the code and thinking about the results and their data. » (Granger et Perez, 2021)

Les raisons de programmer en recherche

  • Formaliser et automatiser son traitement
  • Dépasser ce qui est prévu dans les logiciels
  • Construire des outils pour soi et les autres
  • Utiliser les ressources que d’autres développent
  • Mieux maîtriser l’infrastructure numérique en général

Un pont vers la reproductibilité

Juliette Taka, & Nicolas M. Thiéry. (2018). Publishing reproducible logbooks explainer comic strip. Zenodo. https://doi.org/10.5281/zenodo.4421040

Non exclusif avec les logiciels

Donc : un apprentissage multiniveaux

  • Se familiariser aux environnements informatiques
    • Ligne de commande, …
  • Penser la structures des données et leur diversité
    • Format de fichier : csv ou xls ?
  • Penser la matérialité des pratiques
    • Stockage mémoire vive, cloud ou disque dur ?

Pourquoi Python ?

Parce que tout est possible

Et plus généralement

Une lingua franca

Python : un langage & un écosystème

Comment s’y mettre ?

Au commencement : un choix

Une diversité d’outils adaptés à des pratiques différentes

Une question récurrente

Python ou R ? Des points communs

  • Python et R ++ pour traitement de données
  • Python ++ interface informatique/privé
  • R ++ pour statistiques
  • Python ++ pour ML
  • Python ++ production

“the best second langage”

La particularité des SHS

  • centralité de la problématique
  • diversité de méthodes
  • diversité des données
  • diversité de cultures numériques
    • des communautés très computationnelles
    • d’autres moins …

Programmer, pour faire quoi ?

Important de construire une idée de ce qu’on peut faire.

Un vaste panorama de possibilités

  • des petites tâches
  • des opérations “discrètes”
  • des nouvelles opérations
  • de nouvelles collaborations

Différents types d’usages

Usages “orientés mimétisme”

import scripttoutfait
scripttoutfait.run()

Usages “orientés scripts”

  • Manipuler des données
    • Découper un fichier trop volumineux
  • Transformer des données
    • Pour Iramuteq ou pour l’analyse de réseaux (mise en forme de corpus)
  • Automatiser des tâches
    • Conversion pdf > textes
  • Script dans logiciel QGIS ou dans OpenRefine

Usages “orientés statistiques”

  • Construire un graphique
    • Juxtaposition de plusieurs éléments temporels
  • Faire des statistiques
    • Notebook permettant l’exploration statistique des données d’une enquête en ligne
  • Exploration de textes
    • Bibliothèques de TAL pour analyse thématique
  • Parallélisation des calculs sur des serveurs

Usages “orientés automatisation”

  • Systématiser des collectes API
    • OCR Gallica, forums…
  • Surveillance d’événements
    • Modifications d’un site
  • Workflow exécutable
    • Ensemble des étapes collecte/analyse/résultats
  • Déployer un site web en Python

Usages “orientés IA”

  • Requêter les API (OpenAI, etc.)
  • Manipuler les modèles
    • Possibilités ouvertes par HuggingFace & co
  • Entraîner des modèles
    • Détection d’entitées nommées à façon
    • Fine tuner des LLM

Usages “orientés instrumentation”

  • Généraliser son code en fonction ré-exécutable
  • Publier une bibliothèque
  • Déployer un service en ligne

Usages “orientés logiciel”

  • Développer une bibliothèque dédiée générique (Ipysigma)
  • Développer un module pour un logiciel (QGIS?)
  • Développer des interfaces spécifiques
    • Mettre un modèle en service

Donc, tous programmeurs.euses ?


  • Non
    • Et pas nécessairement en Python
  • Mais une culture numérique devient indispensable
  • Cela facilite les échanges
  • Et une adaptation aux évolutions
    • LLM, IA, tralala

Les LLM changent (un peu) la donne (???)

Conception étendue de la programmation

Ressources

Exécuter du code

Notebooks computationnels ?

Philosophie générale de la programmation lettrée

Préprint : Du laboratoire à Jupyter : La trajectoire d’un instrument logiciel libre de la science ouverte, 2023

Nous : notebooks Jupyter

Avantages :

Quelques limites :

  • Orde d’exécution des cellules
  • Vite confus

Si vous voulez des critiques : I don’t like notebooks.- Joel Grus

Depuis quel outil ?

Pour la séance, au choix :

Plus avancés :