Étape 6 de 7

Base de données et analyse

Schéma relationnel normalisé avec NER, réseaux de cooccurrence et modélisation de l'engagement

Date de dernière mise à jour : 2026-04-04 16:43
6 Tables de base de données
2.9M+ Phrases de transcriptions
7.5M+ Phrases de commentaires
Flux de données

Pipeline de mise à jour continue

Entrée Transcriptions annotées + métadonnées + commentaires
Traitement PostgreSQL + NER + réseaux Leiden + OLS
Sortie Base de données prête pour la recherche (15M+ lignes)
Méthodologie

Comment ça fonctionne

Le schéma PostgreSQL contient 4 tables de base (videos, comments, video_transcripts, transcription_speakers) et 2 tables de variantes traitées (comments_processed, transcription_speakers_processed) ajoutant la tokenisation au niveau de la phrase, les entités NER en colonnes JSONB et 40+ colonnes de prédiction ML. Les données sont ingérées via un pipeline SQLAlchemy avec validation de types, déduplication et vérification d'intégrité référentielle. Les index sont optimisés pour les requêtes temporelles et les agrégations par chaîne.

Un modèle CamemBERT NER fine-tuné extrait les personnes, organisations et lieux de chaque phrase des transcriptions et commentaires. Les entités sont stockées comme tableaux JSONB (ex. {"PER": ["Macron", "Le Pen"], "ORG": ["RN"]}) permettant des requêtes JSON path et recherche plein texte efficaces. Le pipeline NER traite environ 10 000 phrases par seconde sur GPU, complétant le corpus en moins de 5 heures.

Les réseaux de cooccurrence d'entités sont construits avec NetworkX et iGraph : les nœuds représentent les entités, les arêtes connectent les entités mentionnées dans la même phrase, et les poids reflètent la fréquence de cooccurrence. L'algorithme Leiden détecte des communautés d'entités reliées. Des modèles de régression OLS (via statsmodels) testent les hypothèses sur la relation entre caractéristiques du discours et engagement, en contrôlant les effets fixes de chaîne et les tendances temporelles.

Cliquez sur chaque carte pour voir les détails

L'étape finale intègre toutes les sorties en amont (métadonnées vidéo, arborescences de commentaires, transcriptions étiquetées par locuteur et 40+ colonnes de prédictions NLP) dans une base de données PostgreSQL normalisée à six tables. Le schéma est conçu pour la flexibilité analytique : une seule requête SQL peut joindre les métadonnées d'une vidéo (vues, likes, date, orientation politique) avec les annotations NLP de sa transcription et les entités NER mentionnées par chaque locuteur. La base contient actuellement plus de 15 millions de lignes au niveau de la phrase et alimente les tableaux de bord interactifs de ce site.

Au-delà du stockage, cette étape réalise deux enrichissements analytiques majeurs. La reconnaissance d'entités nommées (NER) utilise un modèle CamemBERT NER fine-tuné combiné avec le pipeline de spaCy pour extraire personnes (PER), organisations (ORG) et lieux (LOC) au niveau de la phrase. Les entités sont stockées comme tableaux JSONB. L'analyse de réseaux de cooccurrence cartographie ensuite les relations entre entités fréquemment mentionnées avec NetworkX et iGraph, la détection de communautés via l'algorithme de Leiden révélant des clusters de figures et institutions co-mentionnées. Enfin, des modèles de régression OLS examinent comment les caractéristiques du discours prédisent les métriques d'engagement de l'audience.

En pratique

Exemple concret

De l'extraction d'entités à la modélisation de l'engagement

Le traitement NER sur les 800 transcriptions d'une seule chaîne d'extrême droite extrait 12 400 mentions uniques de personnes, 3 200 mentions d'organisations et 2 100 mentions de lieux. Le réseau de cooccurrence de cette chaîne révèle un cluster dense autour de figures politiques fréquemment discutées ensemble (ex. Emmanuel Macron, Marine Le Pen, Éric Zemmour), connectées par un poids d'arête proportionnel à leur fréquence d'apparition dans la même phrase. La détection de communautés Leiden identifie 7 clusters thématiques. Une régression OLS montre ensuite que les vidéos avec des mentions « immigration + sécurité » au-dessus de la médiane reçoivent 23% plus de vues que la moyenne de la chaîne (p < 0.01), tandis que les mentions de « rhétorique scientifique » n'ont pas d'effet significatif sur l'engagement.

Stack technique

Outils utilisés

PostgreSQL
SQLAlchemy
spaCy
CamemBERT (NER)
NetworkX
iGraph
Leiden
statsmodels
Architecture des données

Schéma de la base de données

Six tables dans un schéma relationnel normalisé, des métadonnées brutes aux annotations NLP au niveau de la phrase.

# Table Description Échelle
1 videos Une ligne par vidéo : ID, métadonnées de la chaîne, vues, likes, commentaires, tags, durée, date de mise en ligne, orientation politique, pays, genre. 23,658 rows
2 comments Tous les commentaires YouTube avec infos auteur, likes, horodatages, structure de réponses imbriquées et colonne d'analyse JSONB. 7.6M+ rows
3 video_transcripts Transcriptions diarisées complètes avec étiquettes de locuteurs et versions nettoyées du texte. 20,999 rows
4 transcription_speakers Segments individuels de locuteurs issus de la diarisation, ordonnés par position dans chaque vidéo. 601,348 rows
5 comments_processed Commentaires tokenisés au niveau de la phrase avec entités NER (PER, ORG, LOC) et colonnes de prédiction ML. 9.8M+ rows
6 transcription_speakers_processed Segments de locuteurs au niveau de la phrase avec extraction NER et suite complète d'annotations. 5.3M+ rows

Observatoire en continu

La base est mise à jour en continu : scan des chaînes, transcription et annotation des vidéos, extraction de commentaires, mise à jour des métadonnées (vues, likes, abonnés). Chaque scan produit un historique longitudinal exploitable via l'API.

Date de dernière mise à jour : 2026-04-04 16:43
Aujourd'hui
vidéos transcrites
commentaires extraits
Depuis janvier
vidéos transcrites
commentaires extraits
vidéos détectées
métadonnées mises à jour
chaînes scannées
Contacter l'équipe
Une question sur les données, l'API ou le projet ? Envoyez-nous un message.
Proposer une chaîne ou fonctionnalité
Aidez-nous à enrichir le corpus YOUPOL. Proposez une chaîne YouTube politique que nous devrions suivre, ou une fonctionnalité.