The Myers Briggs Type Indicator (or MBTI for short) is a personality type system that divides everyone into 16 distinct personality types across 4 axis:

  • Introversion (I) – Extroversion (E)
  • Intuition (N) – Sensing (S)
  • Thinking (T) – Feeling (F)
  • Judging (J) – Perceiving (P) It is one of, if not the, the most popular personality test in the world. It is used in businesses, online, for fun, for research and lots more. From scientific or psychological perspective it is based on the work done on cognitive functions by Carl Jung i.e. Jungian Typology. This was a model of 8 distinct functions, thought processes or ways of thinking that were suggested to be present in the mind. Usually the MBTI personality test consists of questionnaire which can take about 20 to 30 minutes and sometimes the user isn't totally correct about all their choices. With this we thought of why not make a model that could determine the personality type of a person by just analyzing their social media accounts!

What it does

It predicts your personality out of the 16 Myers-Briggs Type Personalities by your Twitter handle and compares your personality types with the people that you follow along with various insights on your personality like traits, eminent personalities and career choices displayed on a customized dashboard with a radar graph to analyze the percentages for other personality types.

How we built it

We used the following tech stack for the specific task :-

  • Twitter API for fetching tweets
  • tweepy for connecting the API with Python (
  • Flask for the backend server
  • Google colaboratory for collaborating on the model and accessing the free TPU 😂
  • Keras for training and testing the BERT model
  • BERT as a SOTA model for tweet predictions. (
  • Bootstrap for the homepage and the dashboard UI
  • chartjs for displaying graphs on the Dashboard

Challenges we ran into

  • Connecting the dashboard with the predicted results was something that required a lot of debugging.
  • Since we had no idea on how to visualize data in javascript dynamically, it took us a while to figure out the libraries and frameworks associated with it.

Accomplishments that we are proud of

  • Model achieved an accuracy of 85% on training data and about 79% on testing data.
  • Created an end to end application with great UI design that can be used by anyone and for anyone.

What we learned

  • Model deployment using flask
  • Data visualization on webapp using charts.js
  • Scraping and fetching data from twitter

What's next for Social BERTerfly

For now the personality test is limited to the user's twitter handle but soon we would inculcate other social media platforms such as facebook to get an even more detailed and accurate insights about their personality types.

Pod 1.1.2 Team Social BERTerfly

  • Vividha
  • Dipanwita Guhathakurta
  • Shilpita Biswas

Built With

Share this project: