Détection d'émotions dans un texte
La détection d’émotions repère les émotions exprimées dans un texte écrit : colère, joie, tristesse, peur, frustration, surprise. Elle s’appuie uniquement sur les mots employés, pas sur un visage ni une voix. Sur un message ou un lot de retours, elle montre non seulement si le ton est négatif, mais quelle émotion précise le porte.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Quelles émotions l’outil repère
Là où une analyse de sentiment se contente de « positif ou négatif », la détection d’émotions nomme le ressenti : colère, joie, tristesse, peur, dégoût, surprise, frustration. Un même avis négatif peut relever de la colère (« c’est inadmissible ») ou de la déception (« j’attendais mieux ») — deux situations qui n’appellent pas la même réponse. En distinguant ces registres, l’outil aide à réagir avec le bon ton plutôt qu’avec une réponse type.
Émotion du texte, pas du visage
Point essentiel : l’outil infère l’émotion à partir du texte écrit, et de lui seul. Il ne s’agit pas de reconnaissance biométrique des émotions — aucune analyse de visage, de voix ou de signal corporel n’intervient. Il lit des mots et en déduit un ton probable, exactement comme un lecteur humain qui perçoit l’agacement dans une phrase. Cette distinction est importante, notamment au regard des règles européennes qui encadrent strictement la biométrie émotionnelle.
Sentiment ou émotion : lequel choisir
Le sentiment donne une boussole rapide : le message est-il globalement bon ou mauvais ? L’émotion apporte la nuance : est-ce de la colère, de l’inquiétude, de l’enthousiasme ? Pour prioriser une file de messages, le sentiment suffit souvent. Pour adapter finement une réponse ou comprendre l’humeur d’une communauté, l’émotion est plus parlante. Les deux se complètent, et rien n’empêche de croiser leurs résultats sur un même lot.
Un message ou tout un lot
Depuis cette page, vous analysez un texte à la fois et lisez l’émotion dominante. Par API, vous traitez un lot entier de messages pour dresser une carte des émotions d’une communauté ou d’un flux de retours sur une période. Les canaux e-mail et messagerie viendront ensuite. Le traitement est identique quel que soit le canal ; seul change l’endroit d’où vous lancez l’analyse.
Cas d’usage
Prioriser les messages de clients excédés
Sur le service après-vente d’une boutique en ligne, tous les messages négatifs ne se valent pas. La détection d’émotions distingue le client en colère du client simplement déçu. Camille Moreau, à l’accueil, traite d’abord les colères, avant qu’elles ne se transforment en avis publics cinglants.
Prendre le pouls d’une communauté
L’animateur d’un forum veut savoir si l’ambiance se tend après une annonce. En passant les derniers messages en détection d’émotions, il voit monter la frustration bien avant que le conflit n’éclate, et peut intervenir à temps.
Comprendre des retours au-delà du oui/non
Après une enquête, une association a des centaines de commentaires libres. Le sentiment dit qu’ils sont majoritairement négatifs ; l’émotion précise qu’il s’agit surtout d’inquiétude, pas de colère — une nuance qui change la manière d’y répondre.
Questions fréquentes
S’agit-il de reconnaissance biométrique des émotions ?
Non. L’outil infère l’émotion à partir du texte écrit uniquement. Il n’analyse ni visage, ni voix, ni aucun signal corporel. Ce n’est pas de la biométrie émotionnelle, mais une lecture des mots, comme le ferait un lecteur attentif.
Quelle différence avec l’analyse de sentiment ?
Le sentiment classe en positif, négatif ou neutre. L’émotion va plus loin en nommant le ressenti : colère, joie, tristesse, frustration. Deux avis également négatifs peuvent porter des émotions très différentes, qui appellent des réponses différentes.
Sur quels textes fonctionne-t-elle le mieux ?
Sur des messages où une personne s’exprime : avis, commentaires, e-mails, retours d’enquête. Sur un texte purement factuel, sans charge affective, l’outil renvoie logiquement une émotion neutre ou faible.
Combien coûte une analyse ?
$0.003 par requête et $0.0135 par élément analysé, soit par message. Le coût suit donc le nombre de textes, s’affiche avant l’envoi et ne suppose aucun abonnement.
Les messages analysés sont-ils conservés ?
Non. Chaque texte est traité pour renvoyer l’émotion, puis n’est pas conservé sur nos serveurs, ni réutilisé pour autre chose.
Le résultat est-il toujours juste ?
C’est une estimation, pas une vérité absolue. Sur un message ambigu ou très court, l’émotion perçue peut se discuter. Traité en volume, l’outil donne néanmoins une tendance fiable, à confirmer par la lecture des cas sensibles.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/text/emotion \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/text/emotion", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/emotion",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/emotion", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/emotion", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.emotion",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_tokens | 20000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |