Our whole group had a strong interest in Natural Language Processing, and there has been a lot of excitement about cryptocurrencies recently. We are also very aware of the impact social media can have, and we wanted to show that there is a relationship between tweets about cryptocurrencies and the cryptocurrencies’ prices.
What It Does:
People are often doubtful of analyzing public sentiment for predicting stock prices because people tend to be more reactive than causative to the market changes. However, we believe that with cryptocurrency, it's the opposite. For example, when people's public sentiment is highly positive and many are tweeting good things about Bitcoin we think that the future value of Bitcoin from that moment would increase. We do the exact same for Ethereum.
On our website, we display two graphs: cryptocurrency exchange rate data (price) with the public sentiment regarding that cryptocurrency over time. Our program uses a weighted algorithm to determine the overall sentiment of the day, and we include factors such as the number of retweets, favorites, etc. The base of the total score is the sentiment score of the tweet. Looking at the data, we can see that a high sentiment drives an increase in bitcoin prices the next day, while a low sentiment causes a decrease the next day.
How We Built It:
We used the CoinAPI to collect exchange rate data by the hour for Bitcoin and the Twitter Search API to filter out tweets that contained Bitcoin. We then used a Python library to perform sentiment analysis on these tweets. Then, we implemented our own algorithm in order to use that sentiment score and other metadata about the tweet get a weighted, overall daily sentiment score. Finally, we built data visualizations using Python’s Bokeh library and built the rest of the front end using HTML/CSS/Bootstrap.
Challenges We Ran Into:
The biggest challenge we ran into was the limits on our API calls. For example, Twitter only gives us access to 7 days of tweets, when it’d be great to see more. Another challenge we faced was embedding a dynamic graph (created in python) in our HTML code, and we had difficulties decided which visualizations would best represent our data.
Accomplishments That We’re Proud of:
Aside from solving the challenges we ran into, we’re proud of how well we worked together as a team, and we felt that we were very efficient with our time-management.
What We Learned:
We learned many things after working on this project including collecting market data using cryptocurrency API’s, creating data visualizations using python libraries, and performing sentiment analysis using Textblob, another python library.
What’s Next for CryptoSentiment:
We would like to get premium access to the API’s we utilized in order to have more data to show. It would also allow us to update our information more frequently, which is very important. Another aspect we’d like to improve on is the algorithm for determining the overall score of a tweet. We are currently taking the original sentiment score from -1 to 1, but it is important to account for retweets, favorites, perhaps how many followers the user has to give it a weighted score from -100 to 100. Accounting for these in an accurate way is very difficult, and we need to do more research on how to analyze Twitter data. We’d also like to expand beyond Bitcoin, which simply involves more API calls. Finally, we would like to utilize machine learning to make predictions about the exchange rates based on our sentiment analysis.