Skip to content

Emotion Taxonomies

Sentimatrix supports three emotion taxonomies with different granularity levels.

GoEmotions (28 Classes)

The default taxonomy with fine-grained emotion detection:

result = await sm.detect_emotions(
    "I'm so excited about this!",
    taxonomy="goemotion"  # default
)

print(result.primary)  # "excitement"

Categories: admiration, amusement, anger, annoyance, approval, caring, confusion, curiosity, desire, disappointment, disapproval, disgust, embarrassment, excitement, fear, gratitude, grief, joy, love, nervousness, optimism, pride, realization, relief, remorse, sadness, surprise, neutral

Ekman's 6 Basic Emotions

Universal emotions recognized across cultures:

result = await sm.detect_emotions(
    "I can't believe they did that!",
    taxonomy="ekman"
)

print(result.primary)  # "anger" or "surprise"

Categories: - Anger - Disgust - Fear - Joy - Sadness - Surprise

Plutchik's Wheel (8 Primary)

Emotions with opposite pairs and intensity variations:

result = await sm.detect_emotions(
    "This is terrifying!",
    taxonomy="plutchik"
)

print(result.primary)    # "fear"
print(result.intensity)  # "high"

Emotion Pairs: - Joy ↔ Sadness - Trust ↔ Disgust - Fear ↔ Anger - Surprise ↔ Anticipation

Choosing a Taxonomy

Use Case Recommended
Fine-grained analysis GoEmotions
Simple categorization Ekman
Intensity analysis Plutchik
Cross-cultural Ekman
Customer feedback GoEmotions