Flyting is a ritual, poetic exchange between two people in Norse and Celtic cultures around 500-1500. The winner was the one who got the best reaction to his or her creative indusults. It was essentially the rap battle of it's time. Now as then, you would fare poorly in such a fight without a good insult. We knew we wanted to do a roasting program with webcrawling. We eventually also figured out that we wanted to turn those roasts onto poems. That is where FlyteMe comes in. Inspired by the old flyting ritual , we wanted to do something along the same lines.
What it does
Warning! Roasts might be NSFW!
Have you ever felt like you needed the right insult for the job?
FlyteMe is a dynamic insult poem generator which compares a face against hundreds of others and gives you a fitting roast, with a poetic twist. Essentially, the algorithm compares the face against many others from the subreddit r/roastme and it's corresponding comments. It then turns the comments into something that rhymes. It doesn't always make sense, but as long as it rhymes you are good to go!
How we built it
The first part of FlyteMe uses the Reddit API and the 'praw’ library to scrape r/roastme for images of people wanting to be roasted, and some of the corresponding roasts. Afterwards, the facial recognition takes the corresponding images and encodes them. This is done using the simple, yet powerful ‘face_recognition’ library. That encoding is then used to compare faces. The corresponding roasts is found and turned into a poem!
We struggled with an idea initially. We initially wanted to do something with memes, but couldn't come up with an idea with a good implementation. We then came up with the idea of FlyteMe. It combines many aspects of what our group wanted to do: natural language processing, machine learning, and web scraping.
Challenges we ran into
We had quite a few problems with this project. The facial recognition library took a long time to get working properly, and we considered several different libraries. Getting the data in the right format for both easy facial recognition and NLP was also a challenge. We went trough many iterations of all parts of the programs.
Accomplishments that we're proud of
We are very proud of managing to complete all parts of the program, and that we did what we set out to do.
What we learned
We learned a lot about the difficulties of finding the right libraries, and building a bigger program from them. We had a lot of fun, and learned more about coding as a team.