4 Provides a REST-API to get the average sentiment of a given list of texts.
5 The service uses the sentiment analysis service indico.
7 `GET`: `/` Displays the expected input for a POST
9 `GET`: `/health` Returns HTTP Status 200 if service is running
11 `POST`: `/` Calculates the average sentiment for a given list of texts using the online sentiment analysis tool indico (https://www.indico.io).
12 - param: Term[ ] as Content-Tye: `application/json`
13 example body of request:
17 'text': 'sample text 1',
20 'text': 'sample text 2',
23 'text': 'sample text 3',
27 `POST`: `/offline_analysis` Calculates the average sentiment for a given list of texts using TextBlob (https://textblob.readthedocs.io)
28 - param: Term[ ] as Content-Tye: `application/json`
29 example body of request:
33 'text': 'sample text 1',
36 'text': 'sample text 2',
39 'text': 'sample text 3',
43 JSON string may contain more value-key pairs than 'text', but 'text' is needed for the sentiment analysis. Everything else will be ignored.
44 For more examples see curl commands in local -> commands.
47 - `409`: input string does not meet specifications
48 - `503`: indico sentiment analysis not available
51 This sentiment analysis service uses the online sentiment analysis indico (https://www.indico.io).
52 The indico api key can be set in the file `analysis.env`. 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.
53 In case of an 503 error, you can use the `/offline_analysis`.
56 - `docker image build -t service-analysis .`
57 - `docker container run --env-file=analysis.env -d -p YOUR_PORT:8081 service-analysis:latest`
68 - `python3.7 sentiment_analysis.py` to start the service
71 - positive online sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'`
72 - negative online sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'`
73 - 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"}]'`
74 - 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"}]'`
75 - health check example: `curl -v -X GET http://localhost:8081/health`
76 - invalid input example (error: 409): `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[]'`