There are several pacakges in Python that are very useful to this project, see the image below.
- Install and setup ELK Stack
- Elasticsearch
- Kibana
- Python packages
- Tweepy
pip install tweepy
- TextBlob
pip install -U textblob python -m textblob.download_corpora
- Elasticsearch-py
pip install elasticsearch
- Tweepy
- Set up Twitter streaming API
- Set up Google Maps API
In config.py
, type in your own API keys and tokens.
consumer_key = "<Your_Twitter_Consumer_Key>"
consumer_secret = "<Your_Twitter_Consumer_Secret>"
access_token = "<Your_Twitter_Access_Token>"
access_token_secret = "<Your_Twitter_Access_Token_Secret>"
google_api_key = "<Your_Google_Map_API_Key>"
If you are not happy with the default values of index
and doc_type
, you can change them at main.py
, line 27-28.
index = "tweet-sentiment"
doc_type = "new-tweet"
Run the following command in your terminal
python3 main.py <any-topics-that-you-are-interested-in>
For example
python3 main.py coldplay muse suede
You can also directly run
python3 main.py
It will filter tweets on the default topics #interstellar, #inception, #dunkirk, interstellar, inception, dunkirk
.
As the program starts running, you will see ouputs on your console similar to this (the Topics
, Index
and doc type
values might vary depending on your configuration):
==> Topics ['#interstellar', '#inception', '#dunkirk', 'interstellar', 'inception', 'dunkirk']
==> Index: tweet-sentiment, doc type: new-tweet
==> Start retrieving tweets...
=> Retrievd a tweet
[sentiment] positive
[hashtags] Dunkirk
[country] None
[time] 2018-09-29T21:04:01+00:00
=> Retrievd a tweet
[sentiment] neutral
[hashtags] None
[country] None
[time] 2018-09-29T21:04:18+00:00
...
You can also check the streaming status by opening Kibana
and clicking on the Discover
tab.