]> git.somenet.org - pub/jan/aic18.git/blob - service-analysis/README.md
#42
[pub/jan/aic18.git] / service-analysis / README.md
1 # Sentiment Service
2
3
4 ## API
5 Provides a REST-API to get the average sentiment of a given list of texts
6 The service uses the the sentiment analysis service indico.
7
8 `GET`: `/` Displays the expected input for a POST
9
10 `POST`: `/` Calculates the average sentiment for a given list of texts
11 - param: Term[] as Content-Tye: `application/json`
12 example body of request:
13 ```json
14 [
15         {
16                 'text': 'text 1',
17         },
18         {       
19                 'text': 'text 2',
20         },
21         {       
22                 'text': 'text 3',
23         }
24 ]
25 ```
26 JSON string may contain more value-key pairs than 'text', but 'text' is needed for the sentiment analysis. Everything else will be ignored.
27
28 ## API errors
29 - `409`: input string does not meet specifications
30 - `503`: indico sentiment analysis not available
31
32 ## run with docker
33 - `docker build -t sentiment_analysis .`
34 - `docker container run -d -p YOUR_PORT:8081 sentiment_analysis`
35
36 ## run local
37 ### requirements
38 - python 3.7
39 - pip
40   -> indicoio
41   -> flask
42   -> flask_restfut
43 ### commands
44 - `python3.7 sentiment_analysis.py`
45 - positive sentiment test example:
46   -> `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you}]'`
47 - negative sentiment test example:
48   -> `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'`