docs/sentiment_details.md
# Sentiment API Documentation
- [Setup](#setup)
- [Parameters](#parameters)
- [Response](#response)
## Setup
First you need to configure your account adding your API key. Endpoint sohould be always the same but I keep it configurable.
```
Applied.configure do |c|
c.api_key = "your-api-key-for-applied-account"
c.endpoint = "http://api.ai-applied.nl/"
end
```
Then you need to create a new ```Sentiment``` object
```
element = Applied::Sentiment.new
```
## Parameters
The ```analyze``` method takes two parameters: ```data``` and ```options```.
### data
The ```data``` parameter contains text you need to analyze with additional informations. Here is an example item:
```
{
text: "Sono molto contento di quello che è successo",
language_iso: "ita",
id: 42
}
```
| Parameter | Mandatory | Description |
| --------- | --------- | ----------- |
| text | yes | The message text as a string |
| language_iso | yes | Specifying the language of this individual message (```eng``` for English, ```nld``` for Dutch, ```deu``` for German, ```fra``` for French, ```spa``` for Spanish, ```ita``` for Italian, ```rus``` for Russian) |
| id | yes | Unique message ID as a string or an integer you could use to identify your messages into response |
Data item should be placed into an Array.
You could send more than one message in a single call.
```
data = [
{text: "Sono molto contento di quello che è successo", language_iso: "ita", id: 42},
{text: "Sono molto arrabbiato per quello che è successo", language_iso: "ita", id: 69},
{text: "Sono molto indifferente a quello che è successo", language_iso: "ita", id: 99}
]
```
### options
The ```options``` parameter set configuration of the analysis.
| Parameter | Mandatory | Default | Description |
| --------- | --------- | ------- | ----------- |
| return_original | yes | false | Return full posted messages (true) together with the language annotation or only the message id's (false) annotated with language |
| classifier | yes | "default" | Specifies which classifier to use. Sentiment Analysis API offers two standard classifiers, "default" and "subjective". The "default" classifier provides a two-class classification ("positive"/"negative"), while the "subjective" classifier provides the "neutral" class as well. |
```
options = {
return_original: false,
classifier: "default"
}
```
## Response
```
response = element.analyze(data, options)
```
Ai Applied return a JSON data that is parsed to a Ruby Hash.
```
{
"status" => 1,
"id" => nil,
"response" => {
"data" => [
{"confidence_sentiment" => 0.735094833636812, "sentiment_class" => "positive", "id" => 42},
{"confidence_sentiment" => 0.9914339753287233, "sentiment_class" => "negative", "id" => 69},
{"confidence_sentiment" => 0.7537000605846166, "sentiment_class" => "negative", "id" => 99}
],
"description" => "OK: Call processed.",
"success" => true
}
}
```