🌍 Détection des articles de presse française traitant des sujets liés au climat

🇬🇧 / 🇺🇸 : as this model is trained only on French data, all explanations are written in French in this repository. The goal of the model is to classify titles of French newspapers in two categories : if it's about climate or not.

🗺️ Le contexte

Ce modèle de classification de titres d'article de presse française a été réalisé pour l'association Data for good à Grenoble et plus particulièrement pour l'association Quota climat.

L'objectif de ce modèle est de savoir si un article de presse traite du sujet du climat à partir de son titre. Cette tache est complexe car l'algorithme n'a pas accès au contenu des articles de presse. Néanmoins, à l'aide des modèles de langage basés sur les tranformeurs et plus particulièrement les modèles basés sur une architecture BERT, on peut obtenir des résultats intéressants. Nous avons étudié les deux principaux modèles basés sur cette architecture et entrainés sur des corpus en français : FlauBERT et CamemBERT

📋 L'utilisation du modèle final

Le modèle final présenté n'est évidemment pas parfait et possède des biais. En effet, certains choix du modèles peuvent être discutables : ceci provient du périmètre de définition de la notion de climat.

Pour tester le modèle avec le langage Python, il y a deux solutions :

Pour tester le modèle, il suffit d'installer la bibliothèque Python transformers dans un environnement virtuel et exécuter le code suivant :

from transformers import pipeline

pipe = pipeline("text-classification", model="pierre-loic/climate-news-articles")
sentence = "Guerre en Ukraine, en direct : le président allemand appelle à ne pas « bloquer » Washington pour la livraison d’armes à sous-munitions"
print(pipe(sentence))
[{'label': 'NE TRAITE PAS DU CLIMAT', 'score': 0.6566330194473267}]

Pour appeler l'API d'Hugging Face, il vous faut un token que vous pouvez récupérer dans votre espace personnel. Il ne vous plus qu'à exécuter le code suivant :

import requests

API_URL = "https://api-inference.huggingface.co/models/pierre-loic/climate-news-articles"
headers = {"Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

def query(payload):
	response = requests.post(API_URL, headers=headers, json=payload)
	return response.json()
	
output = query({
	"inputs": "Canicule : deux nouveaux départements du Sud-Est placés en vigilance orange lundi",
})
print(output)
[[{'label': 'TRAITE DU CLIMAT', 'score': 0.511335015296936}, {'label': 'NE TRAITE PAS DU CLIMAT', 'score': 0.48866504430770874}]]

🔎 Le détail du travail d'entrainement

La méthodologie utilisée

Différentes pistes d'étude ont été explorées pour aboutir au modèle final :

Les données

Les données proviennent d'une collecte de titres d'articles de presse française collectés durant plusieurs mois. Nous avons labellisé environ 2000 de ces titres pour entrainer le modèle.

Le modèle final

Le modèle retenu est un modèle de type FlauBERT avec un fine-tuning pour la classification des articles de presse. Les données d'entrainement ont été sous-échantilonnées (undersampling) pour équilibrer les classes.

Les améliorations envisageables

Pour améliorer le modèle, il pourrait être intéressant d'intégrer plus de données sur les domaines où le modèle se trompe le plus.