Role
Independent Researcher
Timeline
09/2019 – 05/2020
Today’s advances in machine learning (ML) technology enable Artificial Intelligence (AI) developers to teach machines how to make predictions based on past behaviors. This inductive style of learning gives machines the ability to cater to the needs of each user.
With this technology, the average user should not have to scroll through lists of dozens of restaurants to find one they like. YourFood asks the user what restaurants they have enjoyed eating at in the past and recommends new restaurants in their area based.
1. Pick your favorites: Pick the best restaurants you’ve ever visited in the past. We’ll use this info to help you find similar restaurants.
2. Find a spot: Want to find something around you? Or are you planning a trip? Either way, select a location to find a restaurant.
3. We'll create personal recs: Our machine learning algorithm uses reviews from your favorite restaurants and compares it to reviews from other restaurants in the selected area. The closest match is taken to you.
4. Eat! View details about one of our recommendations, pick a restaurant, and enjoy food that’s meant for you, no matter where you are.
To learn about the full research and build process, please read the research paper.
To start the project, I researched how other machine learning scientists have built recommendations and came up with a plan for building my own. I pulled restaurant data from Zomato API, and wrote a Python script using Google Collaboratory to create my engine. I used a list of sample restaurants a user may have liked and compared them with a set of restaurants from a local city. By running text vectorization on the reviews of the restaurants the user liked and the reviews of the local restaurants, I was able to find similar ones via a cosine similarity analysis.
I created a Flask server on PythonAnywhere to host this recommendations engine, and connected it with Firebase realtime database. I designed the iOS app using Sketch and built it using SwiftUI in Xcode. Finally, I connected the app with the Zomato API and the Flask server to display the recommended results.
Xcode
Swift
SwiftUI
Python
Flask
pandas
numpy
sckit-learn
Firebase