Sentiment Analysis

 Heads up: This feature is in Beta

What is Sentiment Analysis?

Sentiment analysis uses natural language processing to analyze text-based data and give a score that sums up the mood, opinion or feeling expressed within it. It works best when applied to comments, reviews and survey responses. In Watershed's case, our sentiment analysis feature classifies what is known as the polarity of a given text - this means (1), it classifies whether the text is positive, negative, or neutral and (2), it assigns it a score that quantifies the text.

How it works

Watershed calculates sentiment for any xAPI statements that contain a result.response with more than 3 characters and two "words", and do not have an activity.definition.type of cmi.interaction when the statement is received. The result.response field is where most xAPI activity providers send through any free text associated with the learner's actions (i.e., comments, forum posts or survey responses). This field is typically excluded when it is being used as part of a question answer. 

How we add the sentiment data to a statement

Each time we calculate the sentiment for a specific statement we append a result.extension array to it that contains the below data:

{ 
“http://watershedlrs.com/xapi/extensions/sentiment”: {
“generalSentiment” : “positive”,
“positivePolarity” : 0.661,
“neutralPolarity” : 0.339,
“negativePolarity” : 0,
“compoundPolarity” : 0.868
}
}

 Due to the immutability of xAPI statements the actual sentiment score is not added to the xAPI statement we stored in our LRS. This means then when requesting statements from the Statement API the score is not included. However, it is included when using the Data Export or Aggregation APIs.

Property Explanation Example value
generalSentiment The generalSentiment expresses in a single word the overall sentiment of the text. "positive", "negative", "neutral"

positivePolarity

The positive, neutral, and negative polarity are a sum of the raw categorization of the words that are identified as positive, negative, or neutral that is then normalized it to be between -1 (most extreme negative) and +1 (most extreme positive). It does not take into account syntax, multi-word phrases, modifiers, punctuation or contrastive conjunctions. 0.661
neutralPolarity
negativePolarity
compoundPolarity

The compound score is computed by averaging the scores of each word in the text that is then normalized to be between -1 (most extreme negative) and +1 (most extreme positive).

This is the most useful metric if you want a single measure of sentiment for the text as it measures the text as a whole taking into account syntax, multi-word phrases, modifiers, punctuation or contrastive conjunctions.

-0.556

Using the sentiment data

Measures

There is a category of measures in every enterprise Watershed account called "Sentiment Analysis" which contains measures that can access all of the data contained in the extension. 

mceclip0.png

Measure Name Explanation
General Sentiment Expresses the LAST value of the generalSentiment extension for the filtered dimension
Positive Sentiment Counts the number of statements that have the value of positive in the generalSentiment extension
Neutral Sentiment Counts the number of statements that have the value of neutral in the generalSentiment extension
Negative Sentiment Counts the number of statements that have the value of negative in the generalSentiment extension
Average Sentiment Score Averages the value of the compoundPolarity of all statements related to the filtered report dimension
Maximum Sentiment Score The maximum value of the compoundPolarity from all statements related to the filtered report dimension
Minimum Sentiment Score The minimum value of the compoundPolarity from all statements related to the filtered report dimension

Report Examples

Because the sentiment data is applied at the statement level you can utilize the data with any Dimension or Aggregation that applies to sentiment data. 

Metric reports and time based reports

The sentiment polarity (score), and the general sentiment can be nicely expressed across all activities over time. This shows the general 'state of the union' of how learners were feeling about the content:

Screenshot_2022-05-25_at_12.54.20.png

Metric reports can also nicely display things like the average of the compound polarity, and counts of all of the instances of the general sentiment.

Sentiment by activity or groups

Bar reports and leaderboards can easily display the sentiment 'ranking' of all of your activities. Stacked bars are particularly useful in visualizing this as they can show the counts of all of the general sentiment options in one:

Screenshot_2022-05-25_at_12.59.43.png

Correlation and Scatter reports

You can correlate sentiment with other bits of information, such as the learners' score to see if positive or negative sentiment polarities relate to course performance: Screenshot_2022-05-25_at_13.16.02.png

You can also visualize this using a scatter report to see those who are both high performers, and high scorers:

Screenshot_2022-05-25_at_13.16.31.png

What if I think the sentiment is wrong?

Sentiment analysis is a beta feature. This is because while we have utilized the best machine learning algorithms to build this feature, its “model” is still quite young. This is why we are launching it, though. We want to know your experiences with the data it generates so we can use your feedback to teach the model what it's gotten wrong so it can become smarter. If you feel that the sentiment for a specific activity is wrong, please contact the support team and they will look into it.

 

Was this article helpful?
0 out of 0 found this helpful

If you can't find what you need or you want to ask a real person a question, please contact customer support.