We have lost many of our friends to dating apps like Tinder, which induce compulsive swiping as a source of pleasure. After a while, most of our conversations were about the different people met through these platforms and how good or bad of a match he/she was. GPA started being mistaken for the number of matches found. We desperately wanted to save our friends from this pit of madness but not completely take away their means of connecting with amazing people. This is why we came up with Tinder++.
ENTER TINDER++: Our app automates the swiping based on preferences in the person's personality AND looks, saving countless hours of precious time and resulting in matches that are mostly correct.
What it does
We scrape the user profiles, one at a time. Upon scraping a stranger's profile, we check their bio for keywords that the user has specified. For example, let's say the bio says "I like football" and the keyword is "Football". Here, a match will occur and Tinder++ will judge the person . Our bio text analysis uses machine learning and hence is aware of negative sentences and does not perform mere matching of text, instead it takes into account whether the person actually has an affinity for the keyword. This feature allows unlimited keywords to be used, specified with positive/negative preference.
We also scrape the person's image, run our ethnicity algorithm and face matching algorithm. Our ethnicity algorithm specifies preferred ethnicity of a person as this is sometimes a useful feature for finding people for cultural events. We trained our model on LFW dataset, that gives us three ethnic categories["White", "Black", "Asian"] and two genders. Kindly do not that our app does not mean to offend anyone and is merely a filterer for specific occasions. Our face matching algorithm compares the face of the person to a pre-desired face(a celebrity perhaps) and approves the person based on the similarity.
We hope that this app would not only help people find their matches on tinder, but also saves them hours of time the comprises of mind numbing swiping and starting into a screen. This way, we not only get to meet interesting people, but also let the computer do the work, while we indulge in productive work.
How we built it
We used node.js for the server alongside express js that hosted a miniature simulation of Tinder for demo purposes. We chose to make our own simulation rather than actual Tinder to not go through unnecessary profiles while showcasing the demo, despite it being harder to create a simulation.
We used Python for our AI side of things. We used a simple Multi Layer Perceptron (MLP) Classifier to predict gender and ethnicity. This can further be improved by using a dynamic learning rate, more layers , dropouts etc. However it does a phenomenal job for our task and is also quite fast. We use nltk to perform sentiment analysis on the bio of the stranger. This is also extremely quick, making our process a smooth one overall.
Challenges we ran into
Training the MLP was difficult due to inconsistencies in dataset, combined with slow processing power of laptops. Finding a suitable model was also a tough process as Neural Networks do not show us how they learn and are very abstract. Speed was also a key factor. Since we are dealing with a lot fo input output, a small error could crash the program. Hence we had to arm ourselves with Try/Except blocks that plaster all the possible cracks, ensuring a smooth and seamless experience for our users.
Coordinating between the frontend and the backend was tricky as changes kept happening and had to be communicated synchronously.
Face matching was also a tricky feature to implement as there is no standard metric to define similarity between features. Hence we compare the HAAR CASCADE features of the two faces and measure the similarity.
Accomplishments that we're proud of
We have successfully managed to create a functional front end design, a robust and fast backend that provides accuracy combined with personalisation, leading to a straightforward and genuinely useful experience. This issue of spending too much time on Tinder is a major one plaguing University Students and as such, we really felt the need to solve this problem. Upon surveying our product amongst peers, we were thrilled to see the positive response and most people could relate to the problem that we are solving. We also managed to train an entire MLP in a 24 hr period, implement an accurate sentiment analysis tool and automate swiping using Selenium.
What we learned
We gained a deeper understanding of AI and Machine Learning, alongside fundamental knowledge of full stack development. We made countless errors and mistakes while working on this project, though in the end, every debugging instance led to a greater understanding of what we were doing and an incredible level of satisfaction. Each of our team members worked on various features and merging them was a tricky task. To handle this we worked collaboratively on Github which gave us a greater understanding of Git and how to better use it to our advantage in a collaborative setting.
What's next for Tinder++
In the future, we hope to release Tinder++ as a chrome extension to allow users to login into their Tinder accounts on Google Chrome and activate Tinder++ to automatically swipe for them on Tinder so they can continue to perform other tasks while Tinder++ continues to swipe profiles on their browser in the background. A chrome extension would make Tinder++ more accessible for users thereby making it easier for them to user.