1. Collecte et découpage
Chaque émission est découpée en segments cohérents. Les invités, sujets et liens de replay sont associés pour assurer une traçabilité complète.
Agora · Un projet du magazine Le Peuple
Agora observe l’orientation idéologique des émissions de la RTS pour un suivi transparent.
Télécharger le rapport d'analyse 2025 en PDF
Principes
Agora est l’observatoire du magazine Le Peuple. Cette page se concentre sur la mécanique d’analyse : critères, échelle, pondérations et structure de données pour garantir une reproductibilité totale.
Échelle commune. Chaque critère est noté de -2 (cadrage plutôt progressiste) à +2 (cadrage plutôt conservateur/libéral). Les notes par segment sont agrégées pour produire une moyenne par critère, puis un score global pondéré.
Contrôle de qualité. Les segments sont traités de façon chronologique avec vérification des 9 critères et renormalisation des poids si une note manque. La trace JSON est strictement validée afin d’éviter tout ajout ou suppression de champs.
Données ouvertes. Les analyses sont produites par l’IA en appliquant uniquement les critères publiés ici. Les données peuvent être partagées ou croisées avec d’autres études pour mesurer l’équilibre éditorial.
Choix des thèmes et cadrage général (injustices, climat, capitalisme vs compétitivité, ordre, etc.).
Répartition des points de vue, contradictions, présence d’un débat contradictoire.
Ton envers la droite (critiquée/associée au négatif vs valorisée/protégée).
Ton envers la gauche (irresponsable/dangereuse vs légitime/porteuse de solutions).
Redistribution vs allègement fiscal, régulation vs marché libre.
Droits des minorités/égalité de genre vs valeurs traditionnelles/ordre moral.
Angle humanitaire/critique du sécuritaire vs ordre, contrôle, menace migratoire.
Valorisation ONG/initiatives de terrain vs État, entreprises, autorités.
Cible principale de l’humour : droite/élites économiques vs gauche/militants/minorités, ou non politisé.
Processus
Chaque émission est découpée en segments cohérents. Les invités, sujets et liens de replay sont associés pour assurer une traçabilité complète.
Les neuf critères sont remplis segment par segment. Chaque note est justifiée par un commentaire et reliée aux mots-clés saillants.
Les moyennes par critère sont pondérées pour générer le score global. Un commentaire d’ensemble et une interprétation synthétique accompagnent la note.
Les analyses et leurs sources sont mises à disposition sous forme de jeux de données prêts à être partagés, vérifiés ou réutilisés. L’IA applique strictement les critères rendus publics afin que chacun puisse suivre la méthode en toute transparence.
Barème
-2.0 = très orienté gauche / progressiste
-1.0 = modérément orienté gauche
(-0.9 à -0.1) = tendance gauche plus ou moins marquée
0.0 = neutre / indétectable
(0.1 à 0.9) = tendance droite / conservatrice/libérale
1.0 = modérément orienté droite
2.0 = très orienté droite
Les notes sont calculées par l’IA à partir des 9 critères ci-dessous et d’un calcul pondéré transparent.
Le score global est une moyenne pondérée des scores par critère. Chaque critère compte de façon explicite pour éviter les interprétations floues :
Poids dans le score global : 15 %
Poids dans le score global : 20 %
Poids dans le score global : 10 %
Poids dans le score global : 10 %
Poids dans le score global : 10 %
Poids dans le score global : 10 %
Poids dans le score global : 10 %
Poids dans le score global : 10 %
Poids dans le score global : 5 %
Chaque note est accompagnée d’un commentaire. Les jeux de données peuvent être audités, convertis ou croisés avec d’autres sources pour des travaux académiques ou médiatiques, en toute transparence.
Prompt
Le prompt rappelle l’échelle -2 à +2, les neuf critères obligatoires et les poids qui restent fixes pour chaque émission. Il impose un JSON final complet, strictement conforme au schéma attendu, sans ajout ni omission.
L’instruction inclut aussi des garde-fous : deux phrases maximum pour les commentaires de segment, une synthèse brève pour chaque critère et l’usage de null quand un critère n’est pas pertinent.
Tu es un analyste des médias chargé de mesurer l’orientation politique des émissions de la RTS.
TU DOIS ABSOLUMENT :
- respecter EXACTEMENT le schéma JSON fourni (mêmes champs, même hiérarchie) ;
- ne SUPPRIMER, ne RENOMMER, ni n’AJOUTER aucun champ ;
- produire un JSON FINAL COMPLET, STRICTEMENT VALIDE, SANS TEXTE HORS JSON.
1. STRUCTURE GLOBALE
Tu dois produire UN SEUL objet JSON :
{
"meta": { ... },
"segments": [ ... ],
"synthese_par_critere": [ ... ]
}
AUCUNE autre clé au niveau racine.
2. CHAMPS "meta"
L'objet "meta" doit contenir exactement :
- "date" : "YYYY-MM-DD" (depuis le texte ou le HTML).
- "emission" : nom de l'émission (ex: "La Matinale", "Forum").
- "presentateur" : présentateur principal ou null si introuvable.
- "description_officielle" : tableau de chaînes, reprenant la ligne d'intro et la liste des sujets / segments tels qu'affichés dans le texte et le HTML.
- "bareme" : objet avec exactement :
- "echelle" : texte rappelant l’échelle -2.0 à +2.0.
- "criteres" : tableau des 9 noms de critères :
[
"C1_Sélection_des_sujets_et_angle",
"C2_Équilibre_invités_et_voix_politiques",
"C3_Traitement_de_la_droite",
"C4_Traitement_de_la_gauche",
"C5_Thèmes_économiques_et_fiscalité",
"C6_Thèmes_sociaux_et_mœurs",
"C7_Immigration_sécurité_frontières",
"C8_Ton_envers_institutions_et_corps_intermédiaires",
"C9_Humour_et_chroniques_satiriques"
]
- "poids_pour_score_global" : objet EXACTEMENT de la forme suivante :
{
"C1": 0.15,
"C2": 0.20,
"C3": 0.10,
"C4": 0.10,
"C5": 0.10,
"C6": 0.10,
"C7": 0.10,
"C8": 0.10,
"C9": 0.05
}
- "score_global" : nombre décimal entre -2.0 et +2.0, calculé comme MOYENNE PONDÉRÉE des moyennes par critère (voir section 4).
- "interpretation_global" : 1 à 3 phrases concises décrivant l’orientation globale (gauche/droite, plus ou moins marquée).
- "commentaire_global" : texte plus détaillé (plusieurs phrases) qui explique les grandes tendances et justifie le score global.
- "liens_generaux" : objet avec :
- "url_replay_global" : URL principale du replay, au format Markdown ([https://...](https://...)) si possible, ou null si introuvable.
- "remarque" : courte description du type de lien ou null.
3. CHAMPS "segments"
"segments" est un tableau d’objets, un par segment, dans l’ordre chronologique.
Pour chaque segment :
- "id_segment" : "S1", "S2", "S3", etc.
- "titre_segment" : titre officiel (court texte / HTML) ou titre reconstruit fidèle.
- "type" : par exemple "journal", "chronique", "reportage", "interview", "sport", "culture", "interaction_public", "chronique_satirique", etc.
- "participants_principaux" : tableau de chaînes (présentateurs, invités, catégories d’acteurs).
- "notes" : objet contenant TOUJOURS les 9 clés suivantes (mêmes noms, même ordre que dans "bareme.criteres") :
- C1_Sélection_des_sujets_et_angle
- C2_Équilibre_invités_et_voix_politiques
- C3_Traitement_de_la_droite
- C4_Traitement_de_la_gauche
- C5_Thèmes_économiques_et_fiscalité
- C6_Thèmes_sociaux_et_mœurs
- C7_Immigration_sécurité_frontières
- C8_Ton_envers_institutions_et_corps_intermédiaires
- C9_Humour_et_chroniques_satiriques
Chaque valeur est :
- un nombre décimal entre -2.0 et +2.0 (ex: -1.3, 0.0, 0.7), ou
- null si le critère n’est pas pertinent pour ce segment.
Échelle commune :
- -2.0 = très orienté gauche / progressiste
- -1.0 = modérément orienté gauche
- (-0.9 à -0.1) = tendance gauche plus ou moins marquée
- 0.0 = neutre / indétectable
- (0.1 à 0.9) = tendance droite / conservatrice/libérale
- 1.0 = modérément orienté droite
- 2.0 = très orienté droite
Utilise null lorsque le critère est réellement non pertinent.
- "commentaire_segment" :
- maximum 2 phrases COURTES ;
- résume le contenu + le cadrage idéologique + justifie globalement les notes.
- "lien_segment" : URL du segment (chapitre / « écouter cette séquence ») trouvée dans le HTML, au format Markdown [https://...](https://...), ou null si introuvable.
- "mot_clef_principal" : courte expression pour le thème dominant du segment.
- "mots_cles" : 8 à 10 mots/expressions clés (thèmes, acteurs, enjeux, angle).
4. CHAMPS "synthese_par_critere" ET CALCUL DES MOYENNES
"synthese_par_critere" est un tableau de 9 objets, un par critère.
Pour chaque critère :
- "critere" : nom complet EXACT (par exemple "C1_Sélection_des_sujets_et_angle").
- "moyenne" :
- moyenne numérique (une décimale) des notes non nulles des segments pour ce critère ;
- si AUCUN segment n’a de note numérique, mets moyenne = null.
- "nb_segments_avec_note" : nombre de segments pour lesquels la note n’est pas null.
- si 0, alors moyenne = null.
- "interpretation_briefe" :
- 1 seule phrase courte ;
- résume l’orientation moyenne de l’émission sur ce critère (progressiste, conservateur, neutre, etc.).
CALCUL DU SCORE GLOBAL "score_global" (dans meta) :
1) Utilise les poids suivants (ne les modifie pas) :
C1 : 0.15
C2 : 0.20
C3 : 0.10
C4 : 0.10
C5 : 0.10
C6 : 0.10
C7 : 0.10
C8 : 0.10
C9 : 0.05
2) Pour chaque critère, prends la "moyenne" calculée dans "synthese_par_critere".
- Ignore les critères dont la moyenne est null (ils ne participent pas au calcul).
3) Renormalise les poids :
- somme_weights_utilises = somme des poids des critères dont la moyenne n’est pas null ;
- poids_normalise = poids_original / somme_weights_utilises pour ces critères.
4) Calcule :
score_global = somme( poids_normalise(critère) * moyenne(critère) )
Le résultat doit être un nombre entre -2.0 et +2.0, cohérent avec les moyennes de critères
et avec les segments.
5. CONTRAINTES DE CONCISION (TRÈS IMPORTANTES)
- "commentaire_segment" : maximum 2 phrases courtes par segment.
- "interpretation_global" : 1 à 3 phrases courtes.
- "commentaire_global" : plusieurs phrases mais en restant aussi concis que possible.
- "interpretation_briefe" (par critère) : 1 phrase courte.
Évite les répétitions et les digressions. Va à l’essentiel.
6. CONTRAINTES FINALES
- Le JSON final doit être STRICTEMENT VALIDE, sans texte avant ou après.
- Tu ne dois PAS changer les noms de clés.
- Tu ne dois PAS ajouter de nouvelles clés.
- Si une information manque (présentateur, lien de segment, etc.), mets null ou un tableau vide.
- Vérifie avant de répondre que :
- les seules clés racine sont "meta", "segments", "synthese_par_critere" ;
- chaque segment contient un objet "notes" avec les 9 critères ;
- "synthese_par_critere" contient exactement 9 objets ;
- "moyenne" est null quand "nb_segments_avec_note" = 0.
Structure
Chaque analyse restitue un objet JSON unique, aligné sur le schéma ci-dessous. Il décrit les métadonnées de l’émission, les segments détaillés et la synthèse par critère. Les blocs peuvent être dépliés ou enroulés pour naviguer facilement.
JSON_SCHEMA: Dict[str, Any] = {
"type": "object",
"additionalProperties": False,
"required": ["meta", "segments", "synthese_par_critere"],
"properties": {
"meta": {
"type": "object",
"additionalProperties": False,
"required": [
"date",
"emission",
"presentateur",
"description_officielle",
"bareme",
"score_global",
"interpretation_global",
"commentaire_global",
"liens_generaux",
],
"properties": {
"date": {"type": "string"},
"emission": {"type": "string"},
"presentateur": {"type": ["string", "null"]},
"description_officielle": {"type": "array", "items": {"type": "string"}},
"bareme": {
"type": "object",
"additionalProperties": False,
"required": ["echelle", "criteres", "poids_pour_score_global"],
"properties": {
"echelle": {"type": "string"},
"criteres": {"type": "array", "items": {"type": "string"}},
"poids_pour_score_global": {
"type": "object",
"additionalProperties": False,
"required": ["C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9"],
"properties": {
"C1": {"type": "number"},
"C2": {"type": "number"},
"C3": {"type": "number"},
"C4": {"type": "number"},
"C5": {"type": "number"},
"C6": {"type": "number"},
"C7": {"type": "number"},
"C8": {"type": "number"},
"C9": {"type": "number"},
},
},
},
},
"score_global": {"type": "number"},
"interpretation_global": {"type": "string"},
"commentaire_global": {"type": "string"},
"liens_generaux": {
"type": "object",
"additionalProperties": False,
"required": ["url_replay_global", "remarque"],
"properties": {
"url_replay_global": {"type": ["string", "null"]},
"remarque": {"type": ["string", "null"]},
},
},
},
},
"segments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": False,
"required": [
"id_segment",
"titre_segment",
"type",
"participants_principaux",
"notes",
"commentaire_segment",
"lien_segment",
"mot_clef_principal",
"mots_cles",
],
"properties": {
"id_segment": {"type": "string"},
"titre_segment": {"type": "string"},
"type": {"type": "string"},
"participants_principaux": {"type": "array", "items": {"type": "string"}},
"notes": {
"type": "object",
"additionalProperties": False,
"required": [
"C1_Sélection_des_sujets_et_angle",
"C2_Équilibre_invités_et_voix_politiques",
"C3_Traitement_de_la_droite",
"C4_Traitement_de_la_gauche",
"C5_Thèmes_économiques_et_fiscalité",
"C6_Thèmes_sociaux_et_mœurs",
"C7_Immigration_sécurité_frontières",
"C8_Ton_envers_institutions_et_corps_intermédiaires",
"C9_Humour_et_chroniques_satiriques",
],
"properties": {
"C1_Sélection_des_sujets_et_angle": {"type": ["number", "null"]},
"C2_Équilibre_invités_et_voix_politiques": {"type": ["number", "null"]},
"C3_Traitement_de_la_droite": {"type": ["number", "null"]},
"C4_Traitement_de_la_gauche": {"type": ["number", "null"]},
"C5_Thèmes_économiques_et_fiscalité": {"type": ["number", "null"]},
"C6_Thèmes_sociaux_et_mœurs": {"type": ["number", "null"]},
"C7_Immigration_sécurité_frontières": {"type": ["number", "null"]},
"C8_Ton_envers_institutions_et_corps_intermédiaires": {"type": ["number", "null"]},
"C9_Humour_et_chroniques_satiriques": {"type": ["number", "null"]},
},
},
"commentaire_segment": {"type": "string"},
"lien_segment": {"type": ["string", "null"]},
"mot_clef_principal": {"type": "string"},
"mots_cles": {"type": "array", "items": {"type": "string"}},
},
},
},
"synthese_par_critere": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": False,
"required": ["critere", "moyenne", "nb_segments_avec_note", "interpretation_briefe"],
"properties": {
"critere": {"type": "string"},
"moyenne": {"type": ["number", "null"]},
"nb_segments_avec_note": {"type": "integer"},
"interpretation_briefe": {"type": "string"},
},
},
},
},
}
Eléments de structure du fichier JSON d'analyse pour chaque émission :
Date, émission, présentateur (ou null), description_officielle et barème (échelle -2 à +2, liste des 9 critères et poids fixés), score global commenté et liens généraux.
{
"date": "",
"emission": "",
"presentateur": null,
"description_officielle": [],
"bareme": {
"echelle": "",
"criteres": [],
"poids_pour_score_global": {}
},
"score_global": null,
"interpretation_global": "",
"commentaire_global": "",
"liens_generaux": {
"url_replay_global": "",
"remarque": null
}
}
Chaque segment (S1, S2, …) contient type, participants, notes C1–C9, commentaire concis, lien de replay, mot_clef_principal et mots_cles.
[
{
"id_segment": "",
"titre_segment": "",
"type": "",
"participants_principaux": [],
"notes": {
"C1_Sélection_des_sujets_et_angle": null,
"C2_Équilibre_invités_et_voix_politiques": null,
"C3_Traitement_de_la_droite": null,
"C4_Traitement_de_la_gauche": null,
"C5_Thèmes_économiques_et_fiscalité": null,
"C6_Thèmes_sociaux_et_mœurs": null,
"C7_Immigration_sécurité_frontières": null,
"C8_Ton_envers_institutions_et_corps_intermédiaires": null,
"C9_Humour_et_chroniques_satiriques": null
},
"commentaire_segment": "",
"lien_segment": "",
"mot_clef_principal": "",
"mots_cles": []
}
]
Une entrée par critère, avec moyenne (ou null), nb_segments_avec_note et interpretation_briefe. Les critères absents sont interdits.
[
{
"critere": "C1_Sélection_des_sujets_et_angle",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C2_Équilibre_invités_et_voix_politiques",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C3_Traitement_de_la_droite",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C4_Traitement_de_la_gauche",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C5_Thèmes_économiques_et_fiscalité",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C6_Thèmes_sociaux_et_mœurs",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C7_Immigration_sécurité_frontières",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C8_Ton_envers_institutions_et_corps_intermédiaires",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
},
{
"critere": "C9_Humour_et_chroniques_satiriques",
"moyenne": null,
"nb_segments_avec_note": null,
"interpretation_briefe": ""
}
]