Our friend group has a fun tradition of voting superlatives for each other (for example, "most likely to slip on a banana peel"). The idea for our project came from wanting to be able to ask an app a question about a new superlative, and to have it be able to predict which friend most fits that superlative based on previous superlative data.
What it does
Our app processes a superlatives survey where a group of people vote on each other for questions of the form "most ", and is able to answer new superlative questions about each person based on what it learned about the group.
How we built it
We used a language model, BERT, to embed the survey questions into "question vectors" The user can prepare a few new superlative questions, and we embed those into "prompt vectors" generated a "personality vector" for each person by taking a weighted average of the question vectors, where the weight for each question vector is the percentage of the votes the person got in that particular question. We take the cosine similarly of the prompt vectors and the person vectors, which tells us who fits the prompt the best.
Challenges we ran into
Data wrangling converting from google forms to suitable CSV data with percentage votes. Choosing the right averaging operation to aggregate "question vectors" into a "person vector". Choosing the right language model for sentence embeddings.
Accomplishments that we're proud of
Successfully integrated language models and predictions make sense. Tested on our friends and we had a blast.
What we learned
NLP techniques, pandas dataframe
What's next for Magic 8
Using Stable Diffusion, we can generate an image that roughly corresponds in meaning to the "person vector", so everyone can get their own "personality image"! Build a user interface and have more people try it out!
Log in or sign up for Devpost to join the conversation.