Inspiration
Our group was immediately intrigued by the The Advice Company Challenge: "Most Innovative Use of AI for Personal Finance". We wanted to build a project that helps people explore the subject of Finance as well as their own Personal Finance.
When we began discussing the topic, we all agreed that the heavy use of technical terminology and jargon amongst Finance professionals acts as a barrier to inexperienced individuals who wish to become more involved in their Personal Finance.
The film, "The Big Short", defines the problem well when one of the characters states: "Wall Street loves to use confusing terms to make you think only they can do what they do."
We wanted to create a tool which allows non-technical users to engage in conversations about Finance without a needing a dictionary by their side to look-up every other word.
What it does
Our Website translates the finance-related input text (or speech) into understandable text which is displayed on our website and can be played out loud via a button click.
Additionally, each technical term in the output text is linked to its corresponding definition. This feature allows users to learn the meaning of technical terms related to their input.
Finally, if a user's input relates to a specific stock, our program will recognize this. The stock ticker and current stock information (price, etc) will be displayed with the output. Users can see real-time information about the exact investment they're learning about.
How we built it
The process of transforming technical input text into understandable text is not simple.
After hours of experimenting with Co:Here, we established that the only way Co:Here is able to consistently output understandable text (while maintaining the underlying message of the text) is when Co:Hereis given the input text along with context of the text itself. For example, given the input text "Apple's stock responding positively to the Apple Card FICO Score adjustment", Co:Here is able to produce an understandable version of this text if the underlying context is also given, in this case: "input is stock-related".
Therefore, we use a the Co:HereClassifier to determine the context of the input text (related to the overall economy, specific stock). Using the context of the input text, we use the Co:Herecommand endpoint to produce the understandable output text.
To give users even more information with our tool, we search our output for key terms and phrases and give hyperlinks pointing to their definitions. We also search for the names and stock symbols of any companies on the S&P 500 to give users their current prices. To accomplish this, we first implemented two web scrapers. Our first web scraper was used to scrape the Investopedia Financial Terms Dictionary and get every term available along with links to their corresponding webpages. The second web scraper was used to scrape Wikipedia for a list of companies on the S&P 500 along with their stock symbol.
To efficiently search through our output text for these key terms, we implemented a Trie data structure to search for terms while iterating through the text. This allowed us to minimize the number of comparisons needed to find terms and thus improve the overall efficiency of our application. Any time we found a key term or phrase, we replaced it with a hyperlink to it's corresponding Investopedia page. Similarly, whenever we found a company from the S&P 500, we added it to a list of stock prices to display.
This project was primarily built with Python, Django, HTML with some Javascript.
Challenges we ran into
The main challenge throughout this hackathon was: perfecting the output. It took a lot of experimentation to create the final version of our input to output process. Over the weekend, we took a number of approaches with the aim of optimizing the understandable output. We tried building our own custom model, creating multiple command prompts, incorporating the generate endpoint. In the end, we found that using the Co:Here Classify endpoint in combination with a Generate command prompt yields the best outputs.
Accomplishments that we're proud of
Our whole group was very proud of our work on this project. This was Jonathan and Nick's first hackathon!! We were all proud that we created a quality fully-functional program over this weekend. When we started working, it was somewhat unclear whether our output would be able to carry the underlying message of our input text. We were all proud that our final product was able to produce a quality output text as wanted.
What we learned
Thomas: I learnt about the Trie data structure, which I used to parse through our output text to search for key terms or phrases and add hyperlinks pointing to their definitions. I used the same technique to search for company names and stock symbols from the S&P 500 to allow us to display their current prices. I was also able to learn about natural language processing using the Co:Here API. I have never worked with this type of machine learning before, so it was quite interesting to learn and will most likely be very applicable in the near future.
Nick: One of the things I learned to do throughout UofTHacks X was the use of Natural language processing using the Co:Here API and how to adjust the model to our needs and train it accordingly. It was quite interesting to play around with commands and training data to get the results that the group needed. Since natural language processing is becoming more prevalent it is important to have this kind of a skill in my toolbox. Additionally I learned more about Django and how to set up a server using Django to create a website as well as different elements of the page such as the input and output text fields in the program.
Henry: The majority of my learning throughout UofTHacks X was related to the Co:Here API. I am very impressed and interested in the recently popularized natural language processing platforms powered by large language models. I was very happy to spend this weekend interacting and building a program with the Co:Here API. I learned a lot about the abilities and limitations of the different endpoints of Co:Hereand of NPLs overall.
Jonathan: Over the course of UofTHacks X, I was able to improve upon my web development skills, experiment with natural language process, train an AI model, and improve my collaborative working skills. Firstly, it was very interesting to be able to experiment with the Co:Here API, and utilize it as the backbone of our project. Language process has quickly become very relevant, and so it was cool to be able to apply that to our own personal project in such a unique way. Additionally, I learnt a lot from the collaboration required to develop our web application. Working alongside my teammates over the past 36 hours has been able to teach me about their practices and techniques, which has allowed me to approach problems from a new perspective and improve my development skills.
What's next for Finance Bro Translator
If we decide to further develop Finance Bro Translator, we would continue to improve our output text. Creating more examples for our classify function could potentially achieve this. We could also introduce new features like "share understandable output" or improve our UI.

Log in or sign up for Devpost to join the conversation.