Emotions

About

Receptiviti’s Emotions engine, called SALLEE (Syntax-Aware LexicaL Emotion Engine; pronounced Sally), detects emotions and sentiment expressed in text. It is designed to score the emotions a person is expressing, which can include emotions they’re feeling in the present, emotions they've felt in the past or expect to feel in the future, or emotions they see or assume others are feeling. Each emotion can be seen as negative, neutral, or positive.

SALLEE analyzes the amount of emotion proportional to the size of a particular piece of text on everything from a short tweet to a long speech. This is particularly valuable when you want to understand how emotions change over time, in different contexts, and across different individuals. For longer documents, you can analyze the entire language sample at once to understand the emotions expressed in the text. Alternatively, you can break the document into smaller sections to understand how the emotions change section by section.

Emotion scores (including scores Goodfeel, Badfeel, and Ambifeel) will always fall between 0.0 and 1.0. Sentiment scores will always fall between -1.0 and +1.0. A sentiment score of 0 indicates either equal amounts of positive and negative emotions or no emotions present. Goodfeel, Badfeel, and Ambifeel will allow you to differentiate between degrees of negative, neutral, or positive emotions based on the scoring.

SALLEE’s impressive accuracy comes from its ability to process grammatical structure and contextual clues. For example, it accounts for intensifiers such as very, softeners such as sort of, and negations such as never. It can process the different ways people use the same swear words and idioms based on context. It can tell the difference between not really happy and really not happy, and can also understand the emotional relevance of emojis and hashtags.

SALLEE is particularly effective at capturing emotions from social media posts, short text samples, casual language, and mediums like conversation or text messages.

Note: There are two modes in which SALLEE can be called from the API: Sparse mode, and Default mode. Sparse Mode is designed for use cases where false positives are especially undesirable. More information can be found in the SALLEE Sparse mode section of this page.

Using the Receptiviti API, you can programmatically access 20 SALLEE measures.

  • 7 positive emotions
    • Admiration
    • Amusement
    • Calmness
    • Excitement
    • Gratitude
    • Joy
    • Love
  • 5 negative emotions
    • Anger
    • Boredom
    • Disgust
    • Fear
    • Sadness
  • 2 ambivalent emotions
    • Curiosity
    • Surprise
  • 6 summary metrics of emotions
    • Ambifeel
    • Badfeel
    • Goodfeel
    • Sentiment
    • Emotionality
    • Non-emotion

Ambifeel is a summary metric for the ambivalent emotions.

Badfeel is a summary metric for negative emotions.

Goodfeel is a summary metric for positive emotions.

Emotionality is the overall degree to which a text sample contains emotion.

Non-emotion is the overall degree to which a sample lacks emotion.

Sentiment provides a net score for the degree of good or bad emotionality contained with a text sample.

{
"plan_usage": {
"word_limit": 250000,
"words_used": 1438,
"words_remaining": 248562,
"percent_used": 0.58,
"start_date": "2021-01-01T00:00:00Z",
"end_date": "2021-01-31T23:59:59Z"
},
"results": [
{
"response_id": "ff75ed78-7373-45c8-8bc9-fe67a5980fac",
"language": "en",
"version": "v1.0.0",
"summary": {
"word_count": 3,
"words_per_sentence": 3,
"sentence_count": 1,
"six_plus_words": 0.6666666666666666,
"capitals": 0.043478260869565216,
"emojis": 0,
"emoticons": 0,
"hashtags": 0,
"urls": 0
},
"sallee": {
"admiration": 0,
"ambifeel": 0,
"amusement": 0,
"anger": 0,
"badfeel": 0.11538461538461539,
"boredom": 0,
"calmness": 0,
"curiosity": 0,
"disgust": 0,
"emotionality": 0.5769230769230769,
"excitement": 0.5769230769230769,
"fear": 0.11538461538461539,
"goodfeel": 0.5769230769230769,
"gratitude": 0,
"joy": 0,
"love": 0,
"non_emotion": 0.42307692307692313,
"sadness": 0,
"sentiment": 0.46153846153846156,
"surprise": 0
},
"receptiviti_measures": {...}
}
]
}

Measures

MeasureSummaryHigh Score Samples / Score
admirationIncludes aesthetic appreciation, awe, and pride. Includes the feeling of being impressed by anything or anyone. Includes both pride in yourself and admiration of others.oh WOW! I'm so impressed! 0.85
amusementIncludes laughter and humour, the feeling of watching good comedy, and casual laughter in conversation.Her laugh was SO infectious! 0.83
calmnessIncludes relaxation and peacefulness, such as feelings achieved from meditation or other relaxation exercises. Includes the feeling of watching a quiet landscape with a cup of tea.Take a deep relaxing breathe and stretch #yoga 0.75
excitementIncludes excitement or anticipation, waiting for something to happen. Includes the feeling of jitters before any event, such as a work presentation or a wedding. Includes the feeling of looking forward to the release of the next movie in your favourite series.Amp up this partay! 0.74
gratitudeIncludes thankfulness, satisfaction, relief. Includes the feeling of being pleasantly full (not bloated) after a good meal. Includes the sign of relief after almost breaking a dish but catching it at the last moment.Phew! SO VERY glad that the exam is over #RELIEF 0.7
joyIncludes happiness, enjoyment, and pleasure. Includes the feelings of being at a festival or reading a good book – whichever you prefer. Includes the feelings of playing a favourite game or doing a favourite hobby.Lets go walking - it's #sunny! :grinning: 0.72
loveIncludes adoration, romance, and affection. Includes the feeling of watching a cute video of an animal you’ve never met. Includes fondness or affection for friends.I absolutely adore rum and raisin icecream <3 0.79
angerIncludes annoyance, rage, and frustration. Ranges from the feeling of irritation at a fly buzzing around your head to the feeling of deep fury after being betrayed by a loved one.Stop! That's my muffin! 0.74
boredomIncludes momentary boredom and existential boredom. Ranges from the feeling of waiting around with nothing to do, to existential boredom or ennui, such as the feeling that every day in your life is the same.What a bland lecture! 0.78
disgustIncludes disgust and disdain, such as the visceral disgust felt about bodily fluids or rotting garbage. Includes social or conceptual disdain, the way you might feel about those with different political opinions.yuck! That's pretty gross! 0.84
fearIncludes worry, anxiety, and horror. Includes the feeling of being terrified at a scary movie. Includes vague feelings of anxiety about unknown factors such as money or health.I am terrified of dying :scared: 0.83
sadnessIncludes disappointment, grief, and sorrow. Includes intense feelings of mourning and loss. Includes mild disappointment after everyday losses, such as not finding something you want at the store.A singularly spectacular failure :cry: 0.84
curiosityIncludes confusion, interest, intrigue, and entrancement, such as the feeling of not being able to look away from the scene of an accident. Includes fixation on a hypnotic image or obsession with finding the answer to a mystery.I can't look away. Scooby...I wonder? 0.7
surpriseIncludes any surprise or shock, whether positive, negative, or neither. Includes coming home from work on your birthday and seeing friends jump out yelling “surprise!!!”. Includes the intense shock of finding out that a loved one has been in an accident.OMG!! Who? 0.92
ambifeelThe proportion of the text sample that expresses ambiguous or ambivalent emotions. For example, if you are craving something, you have positive feelings about it but also do not have access to it. The emotions Curiosity and Surprise contribute to this summary score.This is a little more unloading a secret, and searching for answers. 0.12
badfeelThe proportion of the text sample that expresses negative, or typically “bad” emotions. The emotions Boredom, Sadness, Disgust, Anger, and Fear contribute to this summary score.I had a really BAD day :( 0.76
goodfeelThe proportion of the text sample that expresses positive, or typically “good” emotions. The emotions Love, Joy, Amusement, Gratitude, Admiration, Calmness, and Excitement contribute to this summary score.That movie was BRILLIANT and AWESOME!!! 0.83
sentimentTotal sentiment on a scale from most negative to most positive. A sentiment score of 0 indicates either equal amounts of positive and negative emotions or no emotions present. Goodfeel, Badfeel, and Ambifeel will allow you to differentiate between degrees of negative, neutral, or positive emotions based on the scoringHow upsetting :sad: -0.94
emotionalityThe proportion of the text sample that expresses any emotion, as well as the intensity of that emotion.I'm so very sorry :'( 0.87
non_emotionThe portion of text that does not indicate any emotions.I have completed the task within schedule. 1

Specs and Examples

SALLEE is sensitive to punctuation and context. Adding modifiers (e.g., very, really), amplifiers (e.g., !, caps lock, explicatives), and negations (e.g., not) will affect how a text is scored. It is also important to note that because SALLEE measures relate to the proportion of emotion in a particular text, it is crucial that SALLEE be used to compare language within similar contexts, as you'll see in the following examples:

Example 1: That was the best movie

// partial response
{
"dictionary_measures": {
"admiration": 0.2,
"goodfeel": 0.2,
"sentiment": 0.2
}
}

count formula

The sentence above returns a 0.20 score for admiration, which means that about 20% of the statement was characterized as displaying admiration. The goodfeel score for this sentence is 0.2, and sentiment score is also 0.2 (on a scale from -1.0 to +1.0). This occurs because the word best counts for one out of the five words and it expresses a positive emotion with no amplifiers, softeners, or negations. The score is relatively low because best is not a particularly strong emotion word.

Example 2: That was an awesome movie

// partial response
{
"dictionary_measures": {
"admiration": 0.6,
"emotionality": 0.6,
"excitement": 0.4,
"goodfeel": 0.6,
"non_emotion": 0.4,
"sentiment": 0.6
}
}

By changing the word from best to awesome, the phrase expresses not only a stronger emotion, but also a wider range of emotions. With awesome, the score is 0.6 for admiration and 0.4 for excitement. The goodfeel, emotionality, and sentiment scores are also all 0.6 in this context. The reason emotionality and sentiment scores are the same as the goodfeel score is because there are no negative emotions in the sentence.

Since the sentence has an emotionality score of 0.6, the non_emotion score is 0.4 as the remainder of the text contains no discernible emotion. Although admiration and excitement account for approximately half of the text, approximately 0.4 (close to half) of the text does not convey any emotion, and therefore the score for the non_emotion is 0.4.

In this example, the SALLEE scores are not quite a true reflection of emotion as a proportion of total text (as in Example 1). This is because awesome is associated with multiple emotions (admiration and excitement), each of which have different valences.

For more information about valences and which words are associated with which emotions, please contact us.

Example 3: That ride was terrifying

// partial response
{
"dictionary_measures": {
"badfeel": 0.7692307692307693,
"fear": 0.7692307692307693,
"emotionality": 0.7692307692307693,
"non_emotion": 0.23076923076923073,
"sentiment": -0.7692307692307693
}
}

This sentence returns 0.77 for fear, a negative emotion because terrifying is a very strong emotional word. The score for sentiment is a negative value, as fear is considered a negative emotion.

Example 4:

Identifying the range of different emotions in longer and more complicated texts can present a challenge. As our communications grow longer, we often express a wider range of emotions in our language. At times, these emotions might even be polar opposites (e.g., I loved the meal, but the service was awful). Longer sentences often include more filler words (e.g., rambling), which can make inferring emotions even more difficult for humans.

However, as mentioned earlier, it is important to remember that SALLEE measures the proportion of emotion in a particular text. Therefore, it is crucial that SALLEE be used to compare language within similar contexts.

To illustrate the comparison of emotion in similar contexts, we’ll compare excerpts from two speeches:

Gandhi on the eve of the Dandi March in 1930: But let there be not a semblance of breach of peace even after all of us have been arrested. We have resolved to utilize all our resources in the pursuit of an exclusively nonviolent struggle. Let no one commit a wrong in anger. This is my hope and prayer. I wish these words of mine reached every nook and corner of the land.

// partial response
{
"dictionary_measures": {
"anger": 0.1553398058252427,
"calmness": 0.0970873786407767,
"disgust": 0.009708737864077669,
"fear": 0.08737864077669903,
"joy": 0.019417475728155338,
"sadness": 0.02912621359223301
}
}

George Brown in Favour of Confederation in 1865: For myself, sir, I care not who gets the credit of this scheme, I believe it contains the best features of all the suggestions that have been made in the last ten years for the settlement of our troubles; and the whole feeling in my mind now is one of joy and thankfulness that there were found men of position and influence in Canada who, at a moment of serious crisis, had nerve and patriotism enough to cast aside political partisanship, to banish personal considerations, and unite for the accomplishment of a measure so fraught with advantage to their common country.

// partial response
{
"dictionary_measures": {
"admiration": 0.040275213962074174,
"anger": 0.06041282094311126,
"disgust": 0.03356267830172848,
"fear": 0.14633327739553617,
"gratitude": 0.07501258600436315,
"joy": 0.05370028528276557,
"love": 0.06712535660345696,
"sadness": 0.03356267830172848
}
}

By comparing excerpts from these two speeches, we can see that George Brown’s speech elicits twice as much Fear as Gandhi’s does.

SALLEE Sparse Mode

For shorter language samples, the Receptiviti API can be used in Sparse mode. Sparse Mode is designed for use cases where false positives are especially undesirable. Sparse mode is available to all users who have subscribed to the Emotions package, and can also be set as the default mode on any Emotions account by request.

Sparse mode optimizes to minimize false positives, whereas standard has been optimized to generate fewer false negatives.

Calling the API in Sparse mode

To use Sparse mode, you can simply include "sallee_mode": "sparse" in the API request, as seen below:

{
"content": "This is my text sample",
"sallee_mode": "sparse"
}

In Postman, for example, you would add this to the payload (Body) with the raw button and JSON selected.

payload sparse sallee

You'll get a response structured like this (although individual results will vary):

"results": [
{
"response_id": "36cb614d-c72e-47a3-8fe3-309d1a7742a5",
"language": "en",
"version": "v1.0.0",
"sallee_mode": "sparse",
"summary": {
"word_count": 52,
"words_per_sentence": 52,
"sentence_count": 1,
"six_plus_words": 0.17307692307692307,
"capitals": 0.009852216748768473,
"emojis": 0,
"emoticons": 0,
"hashtags": 0,
"urls": 0
},
// <...>
"sallee": {
"sentiment": 0,
"goodfeel": 0,
"badfeel": 0,
"emotionality": 0,
"non_emotion": 1,
"ambifeel": 0,
"admiration": 0,
"amusement": 0,
"excitement": 0,
"gratitude": 0,
"joy": 0,
"love": 0,
"anger": 0,
"boredom": 0,
"disgust": 0,
"fear": 0,
"sadness": 0,
"calmness": 0,
"curiosity": 0,
"surprise": 0
},

Jupyter Notebooks SALLEE Demo Project

To walk through a demo project with SALLEE using Jupyter Notebooks, go here.