We all love buzzfeed quizzes. Who doesn't want to know what kind of movie character they are? Turns out that they don't have an automated quiz generator and people are hired to write out the quizzes. Enter Elmo, the little genius from Sesame Street who can guess which movie character you are just based on chatting with you!
What it does
After you select a movie, you are given an opportunity to speak to ElmoBot. Elmo love to ask deep questions, you will feel like you are on a first date! After the conversation is done, it tells you which movie character you are most like.
How we built it
We scraped the internet for hundreds of movie scripts, then analyzed each movie script to separate out the words said by each character in the movie. We then used the IBM Watson's Personality Insights API to get the personality traits of each character. Similarly, we set up a chatbot using IBM Watson's Assistant and then feed all the chat data to the Personality Insights API to get the personality traits of our user. Then we do a least squares matching of the personality traits of the movie characters with the user and tell you who you are most like. We used Python in our back-end, using BeautifulSoup for web-scraping and SpaCy and regex to identify character names and separate out their words. We then coordinated all our databases in Cloudant and query from Watson Assistant to match up the user with a character
Challenges we ran into
- IBM Watson Assistant
- Web Scraping: we found a database online and got the web-scraping to work but there were a lot of links that simply didn't work anymore/didn't have the scripts so we downloaded some popular movies manually for the purposes of the demo
Accomplishments that we're proud of
We learned a lot of new things from a lot talented and experienced people which is what our main goal was coming to this hackathon, and to that end, we accomplished our goal. Having a functioning chatbot was pretty cool too!
What we learned
We learned how to use IBM-Watson's API, set up an online cloud database and how to find and use a lot of new Python libraries on the fly
What's next for Elmo
(Deploy a front-end //if we haven't finished just yet)
- Have a user login/FB login so that we can store past conversations as well for a bigger dataset, and then use personality-insights for other recommendations like movies, books or tv-shows you may like, products that you might want to buy, places you might want to visit, etc.
- Add a FB share button
- Web-scrape some other websites as well to have a more complete database,
- Improve dialogues and conversations more fluidly so that any other future recommendations we do are also part of the conversation with the chatbot
- Join movie franchises to give personality insights together (Eg: treat all the harry potter movies as one dataset)
- Integrate some other interesting conversation points