In Canada every year $160 million is lost due to scams and phishing attacks in the financial industry. Scammers target an older population that isn't tech savvy and immigrants who struggle with a language barrier. I wanted to do my part and use technology to give an advantage back to Canadians and help protect vulnerable members of our society from scammers.

What it does

I created an app that uses Machine Learning to help you figure out if a message you received is fake or real.

How we built it

The ML backend started by cleaning a dataset of spam and regular messages, tokenizing, and cleaning the data. Then a Keras Sequential Model was used for training and testing to make the ML predictions using 5000 key words. The ML backend was built using Jupyter Notebook.

I created a ML Prediction API to host the prediction calculation and serve an endpoint where the front end can query the machine learning model. The query is tokenized and given to the ML model to be predicted and the result is passed back to the front end. The ML Prediction API is hosted using Google Colab Notebook & Google Compute Engine.

I also created a Front End to serve users the interface to paste a copy of the message they are suspicious about. The front end is a static HTML website that is served using Flask and Jinja2 templates. The hosting of the Front End is done using Google App Engine.

Challenges we ran into

  1. I haven't done any Natural Language Processing before and there are a lot of concepts

  2. The datasets for spam are very dirty and needed a lot of cleaning and formatting

  3. There is a lot of moving parts to this hack, Data Science, Back End, Front End, ... need more coffee.

Accomplishments that we're proud of

I'm proud that I was able to figure out how to get my ML model to correctly detect spam and scams with a 90% accuracy. Given that it was my first time trying a Fin-Tech hack and using NLP I'm very proud of that outcome.

The website is live so feel free to try some messages out!

What we learned

I learned how to create a Keras Sequential Model to do NLP modelling. I also learned how to setup and productionalize a ML backend, and I learned that I hate front end work. :)

What's next for Does It Make Cents?

I want to present "Does It Make Cents" to Scotiabank and show them my amazing FinTech hack. I hope I was able to blow their socks off and hopefully get in contact with a recruiter for my last coop term.

Share this project: