French Emotion Recognition Model: french-emotion-recognition

This repository contains a fine-tuned version of the LiquidAI/LFM2-350M model, specialized in classifying emotions from French text.

GGUF Version Available Looking for a version that runs efficiently on your CPU? A GGUF-quantized version of this model is available here: JusteLeo/french-emotion-recognition-GGUF


🇬🇧 English Version

Model Description

This model is a fine-tune of LiquidAI/LFM2-350M. It has been trained to identify and classify the following emotions from a given text:

  • joy (joie)
  • anger (colere)
  • sadness (tristesse)
  • fear (peur)
  • surprise (surprise)
  • disgust (dégout)
  • neutral (neutre)

The model was trained on the following synthetic dataset: JusteLeo/French-emotion.

How to Use

This model can be used directly with the text-generation pipeline from the transformers library.

from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer

# Load the model and tokenizer
model_id = "JusteLeo/french-emotion-recognition"
model = AutoModelForCausalLM.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)

# Create the pipeline
emotion_classifier = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer
)

# --- Examples ---
prompts = [
    "Je viens de gagner au loto, c'est incroyable !", # "I just won the lottery, it's incredible!"
    "Ce plat a un goût vraiment étrange, je n'aime pas du tout.", # "This dish has a really weird taste, I don't like it at all."
    "La date limite pour le projet est demain et je n'ai rien commencé.", # "The project deadline is tomorrow and I haven't started anything."
    "Il est 15h00." # "It's 3:00 PM."
]

for prompt in prompts:
    # The model expects a simple instruction; the prompt is the sentence to analyze.
    # The generated response will be the detected emotion.
    result = emotion_classifier(
        prompt,
        max_new_tokens=10,  # 10 tokens are enough for the emotion name
        pad_token_id=tokenizer.eos_token_id,
        eos_token_id=tokenizer.eos_token_id
    )
    print(f"Sentence: '{prompt}'")
    # The response contains the prompt + emotion, we only display the generated part.
    print(f"Predicted Emotion: {result[0]['generated_text'][len(prompt):].strip()}")
    print("-" * 20)

Acknowledgements

  • A big thank you to Liquid AI for sharing the weights of their excellent LFM2-350M model.
  • Thanks also to Unsloth to share simple codes for the development process.

🇫🇷 Version Française

Description du Modèle

Ce modèle est un affinage de LiquidAI/LFM2-350M. Il a été entraîné pour identifier et classifier les émotions suivantes dans un texte donné :

  • joie
  • colere
  • tristesse
  • peur
  • surprise
  • dégout
  • neutre

Le modèle a été entraîné sur le jeu de données synthétique suivant : JusteLeo/French-emotion.

Comment l'utiliser ?

Ce modèle peut être utilisé directement avec la pipeline text-generation de la bibliothèque transformers.

from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer

# Charger le modèle et le tokenizer
model_id = "JusteLeo/french-emotion-recognition"
model = AutoModelForCausalLM.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)

# Créer la pipeline
emotion_classifier = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer
)

# --- Exemples ---
prompts = [
    "Je viens de gagner au loto, c'est incroyable !",
    "Ce plat a un goût vraiment étrange, je n'aime pas du tout.",
    "La date limite pour le projet est demain et je n'ai rien commencé.",
    "Il est 15h00."
]

for prompt in prompts:
    # Le modèle attend une instruction simple, le prompt est la phrase à analyser.
    # La réponse générée sera l'émotion détectée.
    result = emotion_classifier(
        prompt,
        max_new_tokens=10,  # Une dizaine de tokens est suffisant pour le nom de l'émotion
        pad_token_id=tokenizer.eos_token_id,
        eos_token_id=tokenizer.eos_token_id
    )
    print(f"Phrase : '{prompt}'")
    # La réponse contient le prompt + l'émotion, nous affichons seulement la partie générée.
    print(f"Émotion prédite : {result[0]['generated_text'][len(prompt):].strip()}")
    print("-" * 20)

Remerciements

  • Un grand merci à Liquid AI pour avoir partagé les poids de leur excellent modèle LFM2-350M.
  • Merci également à Unsloth de partager des codes simples pour le processus de fine-tuning.
Downloads last month
5
Safetensors
Model size
354M params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for JusteLeo/french-emotion-recognition

Base model

LiquidAI/LFM2-350M
Finetuned
(11)
this model
Quantizations
1 model