Sentiment Analysis

Analyze speaker sentiment based on spoken text (Lexical Emotion Analysis)

‚Äč

Overview

Sentiment Analysis will help you interpret and quantify if the conversation in the text is Positive, Negative, or Neutral. It also provides you a measure as to how subjective the conversation is with a subjectivity score.

Sentiment Types

See the table below for the output definition of the model

Sentiment

Description

Example

Very Positive

a statement or sentence that is highly positive

"Brilliant work John, you really came through."

Positive

a statement or a sentence that is marginally positive

"Okay let's hope everything is fine."

Neutral

a statement or a sentence that is neutral

"..sure I will do that tomorrow"

Very Negative

a statement or sentence that is highly negative

"I don't think that will happen today"

Negative

a statement or a sentence that is marginally Negative

"I am not happy with the outcome.."

Input Type Supported: Text

post
Compute Metadata

https://api.marsview.ai/v1/nlp/sentiment
Request
Response
Request
Headers
appSecret
required
string
<sample-app-secret>
appId
required
string
<sample-app-Id>
Content-Type
optional
string
application/json
Body Parameters
data.text
required
boolean
Raw text on which sentiments have to be computed.
Response
200: OK
A Transaction ID is returned in the JSON body once the processing job is launched successfully. This Transaction ID can be used to check the status of the job or fetch the results of the job once the metadata is computed
{
"status":true,
"transaction_id":32dcef1a-5724-4df8-a4a5-fb43c047716b,
"message": " Compute job for file-id: 32dcef1a-5724-4df8-a4a5-fb43c047716b launched successfully"
}
400: Bad Request
This usually happens when the settings for computing the metadata are not configured correctly. Check the request object and also the dependencies required to compute certain metadata objects. ( For Example: Speech to Text has to be enabled for Action Items to be enabled)
{
"status":false,
"error":{
"code":"MCST07",
"message":"DependencyError: emotion_analysis depends on speech_to_text"
}
}

Example API Call

Request

CURL
CURL
curl --request POST 'https://api.marsview.ai/v1/nlp/sentiment' \
--header 'appSecret: 32dcef1a-5724-4df8-a4a5-fb43c047716b' \
--header 'appId: 1ZrKT0tTv7rVWX-qNAKLc' \
--header 'Content-Type: application/json' \
--data-raw '{
"data":{
"text":"A watch is a portable timepiece intended to be carried or worn by a person. It is designed to keep a consistent movement despite the motions caused by the person's activities. A wristwatch is designed to be worn around the wrist, attached by a watch strap or other type of bracelet, including metal bands, leather straps or any other kind of bracelet. A pocket watch is designed for a person to carry in a pocket, often attached to a chain. The study of timekeeping is known as horology. Watches progressed in the 17th century from spring-powered clocks, which appeared as early as the 14th century. During most of its history the watch was a mechanical device, driven by clockwork, powered by winding a mainspring, and keeping time with an oscillating balance wheel. These are called mechanical watches.[1][2] In the 1960s the electronic quartz watch was invented, which was powered by a battery and kept time with a vibrating quartz crystal.
By the 1980s the quartz watch had taken over most of the market from the mechanical watch. Historically, this is called the quartz revolution (also known as quartz crisis in Swiss)."
}
}'

Response

Given below is a sample response JSON when the Status code is 200.

{
"status":true,
"transaction_id":32dcef1a-5724-4df8-a4a5-fb43c047716b,
"message": " Compute job for file-id: 32dcef1a-5724-4df8-a4a5-fb43c047716b launched successfully"
}

post
Request Metadata

https://api.marsview.ai/v1/nlp/sentiment/fetch
This method is used to fetch soecific Metadata for a particular file_id. It can also be used for long polling to track the progress of compute under the status object.
Request
Response
Request
Headers
Content-Type
optional
string
application/json
appId
optional
string
<sample-app-id>
appSecret
optional
string
<sample-app-secret>
Body Parameters
fileID
optional
string
fileId of the audio/video file
Response
200: OK
The output consists of two objects. The data object returns the requested metadata if it is computed. The status object shows the current state of the requested metadata. Status for each metadata field can take values "Queued"/"Processing"/"Completed". Shown below is a case where "sentiment analysis" Job is in "Queued" state and "Completed" state.
QUEUED STATE
COMPLETED STATE
QUEUED STATE
{
"status":{
"sentiment_analysis":"Queued",
}
"data":{
"sentiment_analysis":{}
}
}
COMPLETED STATE
{
"status":{
"sentiment_analysis":"Completed"
}
"data":{
"sentiment_analysis":{
"sentences":[
...
{
"start_char" : "1235"
"end_char" : "1347",
"sentence": "A watch is a portable timepiece intended to be carried or worn by a person",
"sentiments" : [
{
"sentiment":"Very Positive",
"confidence":0.81
},
{
"sentiment":"Positive",
"confidence":0.17
},
]
},
{
"start_time" : "1349"
"end_time" : "1450",
"sentence":" It is designed to keep a consistent movement despite the motions caused by the person's activities",
"sentiments" : [
{
"sentiment":"Neutral",
"confidence":0.97
}
]
},
...
]
}
}
}

Response Object Fields

Fields

Description

start_char

Starting character of the sentence in original text

end_time

Ending character of the sentence in original text

sentiments

List of sentiment objects for that particular chunk

sentiments.sentiment

Name Tag for the Type of sentiment detected.

sentiments.confidence

Confidence of the sentiment (ranges from 0 to 1). Higher the better

sentiments.sentence

A sentence extracted from original text