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.
8 `GET`: `/` Displays the expected input for a POST
10 `GET`: `/health` Returns HTTP Status 200 if service is running
12 `POST`: `/` Calculates the average sentiment for a given list of texts using the online sentiment analysis tool indico (https://www.indico.io).
13 - param: Term[ ] as Content-Tye: `application/json`
14 example body of request:
18 'text': 'sample text 1',
21 'text': 'sample text 2',
24 'text': 'sample text 3',
28 `POST`: `/offline_analysis` Calculates the average sentiment for a given list of texts using TextBlob (https://textblob.readthedocs.io)
29 - param: Term[ ] as Content-Tye: `application/json`
30 example body of request:
34 'text': 'sample text 1',
37 'text': 'sample text 2',
40 'text': 'sample text 3',
44 JSON string may contain more value-key pairs than 'text', but 'text' is needed for the sentiment analysis. Everything else will be ignored.
45 For more examples see curl commands in local -> commands.
48 - `409`: input string does not meet specifications
49 - `503`: indico sentiment analysis not available
52 This sentiment analysis service uses the online sentiment analysis indico (https://www.indico.io).
53 The indico api key can be set in the file indico_api_key.txt. The current key does work, however excessive use of this service will require you to provide your own key, since the amount of requests for this key is limited.
54 In case of an 503 error, you can use the `/offline_analysis`.
57 - `docker build -t sentiment_analysis .`
58 - `docker container run -d -p YOUR_PORT:8081 sentiment_analysis`
68 - `python3.7 sentiment_analysis.py` to start the service
69 - positive online sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'`
70 - negative online sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'`
71 - positive offline sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081/offline_analysis -d '[{"text":"happy birthday, i love you"}]'`
72 - negative offline sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081/offline_analysis -d '[{"text":"i hate you, please die"}]'`
73 - health check test example: `curl -v -X GET http://localhost:8081/health`