Currency Rate Trend Analyzer and Visualization Tool
Select desired currency for which data will be retrieved
Filter for articles relating to that currency, involved in financial news (News APIs, Google Cloud Classifying API)
Conduct sentiment analysis on each article body, title, and description (Google Cloud Natural Language Processing API)
Once data has been collected for multiple currencies, view the trend of past data compared to the historic exchange rate (XE Rate API)
Driven by our desire for some possible money as students, our curiosity for Natural Language Processing and machine learning, as well as our laziness when it comes to staying up to date with news, we felt that an exchange rate predictor and trend analyzer was the perfect project.
What it does
Given two major currencies as input, Machine Earnings aggregates financial news articles relating to the currencies being compared. Sentiment analysis is then conducted to determine if the tone of each article is positive or negative; the trends of the scores for the two currencies are then compared, along with historic exchange rate data provided by the XE Rates API in order to forecast an exchange rate. Results are then shown through easy to interpret graphical displays.
How we built it
Using a collection of News APIs, we collected a large set of articles across a desired date range. Filtering of articles was then conducted using Google Cloud's classification API to ensure each article was related to the currency, and to financial news. Afterwards, we gave each article a sentiment score using Google's Natural Language API, and aggregated the scores to have a holistic view of the currency's positioning in the market. By contrasting scores and using historic exchange rates from the XE Rate API, Machine Earnings aims to show trends and forecast future exchange rates. These results were then displayed graphically using Plotly, allowing for easy visual understanding of the data.
Challenges we ran into
Good news comes at a price. With our timeline and budget, we were not able to pool together and analyze as much data as we would have liked, but even with ~600 financially related articles for each currency over a 3 month span, we were still not able to find any trends. While not conclusively, this strongly suggests that the tonality of news articles is not very indicative of the respective exchange rates. Gerry's laptop also had some performance issues - the result of pair programming on one keyboard turned quite difficult!
Accomplishments that we're proud of
Working as partners allowed for us to each tackle individual aspects of the project, while collaborating on the more challenging components. We were able to work with and integrate multiple APIs, and we accomplished what we set out to do. While the results shown by the data unfortunately did not show what we had hoped, Machine Earnings was a humbling reminder that there is still value in analyzing data with no obvious end result.
What we learned
We learned a ton about machine learning, and the news APIs that exist! Machine Earnings also allowed for us to interact with Natural Language Processing and the XE Rate API. Lastly, we learnt that there are no easy shortcuts around reading the news...
What's next for Machine Earnings
We are actively looking for other ways to apply what we learned while working on Machine Earnings. We would like to get full access to the APIs we used, which would allow for us to have more data to work with for future projects. We'd also like to invest some time in improving the algorithm for determining the best way to aggregate the data into simple terms.