Inspiration
Our main inspiration for this project was to alleviate the difficulties of being informed and educated about financial problems and events occurring on a daily basis.
What it does
Our application predicts the stock market values for the next 5 days for a particular company, as well as taking news articles from the web and analyzing their sentiment. Ultimately, these factors would have gone into producing a data map of companies, labeled in either green, yellow or red, green indicating how well they are growing (positive sentiment in general and growing stock trends), yellow (positive sentiment but declining stock trends, or negative sentiment but growing stock trends), or red (negative sentiment and declining stock trends).
How we built it
For the time series forcasting, we implemented a LSTM model using Tensorflow, matplotlib, pandas and numpy. For the sentiment analysis, we used the Selenium and Beautiful Soup python libraries to get the top 5 news financial news articles related to a particular company, web scrape the contents of the articles and feed the text through a sentiment analysis API to get a general sentiment. Then this sentiment analysis function would run on an AWS Lambda function and be triggered over a certain time step, to ensure that the most relavent news articles are being used. These would then be updated in our database (MongoDB). We would finally create the datamap of all companies and their respective colorings, along with a description created by generative AI technologies for each company.
Challenges we ran into
The time constraint was especially challenging in the latter parts of the project, ultimately preventing us from developing a full frontend for this application. There were additional challenges in the machine learning aspect, such as data not being in correct input shape or the stock api being used not retrieving enough data, or the sentiment analysis web scraping function extracting irrelevant content.
Accomplishments that we're proud of
Though we had our set of challenges, we learnt to push through these challenges and fortunately were able to develop a functioning time series forecasting model, a web scraping + sentiment analysis function, and critical backend functionality with MongoDB, Node.js, and Express.js. We learnt how to mitigate the obstacles we were facing and learn new technologies in the process.
What we learned
We learnt valuable skills in machine learning specifically with developing neural networks in TensorFlow, and a deeper understanding of the LSTM model and architecture. We learnt valuable insights in web scraping and running programs and applications on cloud infrastructure. We also learnt backend technologies and interacting with a database. And finally, learnt crucial design skills leveraging tools such as Figma.
What's next for FinSight
The next steps for this project is to develop a fully functional frontend, and create it as an interactive data map of all the companies and their corresponding colors. Another possible direction for this project is to have a section to educate users and general public about general financial trends and information regarding how to interpret financial information, and possible using more variables and features in our time series forcasting model.
Built With
- amazon-web-services
- beautiful-soup
- express.js
- matplotlib
- mongodb
- node.js
- numpy
- oneai-api
- pandas
- selenium
- tensorflow
- yfinanceapi
Log in or sign up for Devpost to join the conversation.