This workflow analyzes a large amount of Tweets using a pre-trained Tensorflow Net, or alternatively using NLTK language corpus lookup, to determine sentiment per US state.
This repository contains a parallel sentiment analysis implementation, orchestrated with the Abstract Function Choreography Language and runnable on the Apollo Engine
Fig 1: workflow.yaml control and data flow
git clone https://github.com/Apollo-Workflows/Sentiment-Analysis
cd Sentiment-Analysis
- Save the credentials for your cloud provider in the according subfolder:
- AWS: Go to the service IAM and create a new user with the access type
Programmatic access
and attach theAdministratorAccess
policy, which is part of the existing policies. You can copy theAccess key ID
andSecret access key
and put it into the following format and save it underaws/credentials
:[default] aws_access_key_id = <Your access key ID> aws_secret_access_key = <Your secret access key>
- IBM: Create the
ibmcloud_api_key
here add it toibm/terraform.tfvars
- AWS: Go to the service IAM and create a new user with the access type
-
- A: Deploy to all providers:
Run from root dir
docker run --rm -it --entrypoint=/app/deployAll.sh -v ${PWD}:/app/ chrisengelhardt/apollo-autodeploy
- B: Deploy single provider with custom settings:
Run
docker run --rm -v ${PWD}:/app/ chrisengelhardt/apollo-autodeploy --help
from within the directory of your chosen cloud provider
- A: Deploy to all providers:
Run from root dir
Note: For IBM you have to create a namespace first and place it into ibm.tf
at line namespace = "YOURNAMESPACE"
.
Usage: /app/deploy.sh [--help] [--region region] [--url] [--mapping]
Commands:
--help Show this help output.
--region region Sets a specific region for the deployment. Use a region from:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
--url Prints out all deployment urls
--mappings Creates typeMapping.json with the deployment urls
Twitter data set: Z. Cheng, J. Caverlee, and K. Lee. You Are Where You Tweet: A Content-Based Approach to Geo-locating Twitter Users. In Proceeding of the 19th ACM Conference on Information and Knowledge Management (CIKM), Toronto, Oct 2010 (Accessed Dec 14 2020)
Tensorflow Text classification model (used in sentim-inference
): Text classification | Tensorflow Lite (Accessed Dec 22 2020)
Textblob Library & NLTK corpora (used in sentim-inference-textblob
): sloria/TextBlob | GitHub (Accessed Dec 25 2020)