In April, I did something I’ve never done before: I participated in a hackathon. This post is part 2 of 2, and tells the insane story of how my team earned 2nd place at Galvanize’s Cognitive Builder Faire. Part 1 was Getting to Know Watson (Part 1): The Tools at Galvanize’s Cognitive Builder Faire.
Why I Was Even At A Hackathon In The First Place
I went to Galvanize’s Cognitive Builder Faire with one goal: get a peak behind the curtain at the black box itself and figure out how to make IBM Watson and other artificial intelligence tools accountable to long-standing laws, such as civil rights and fair housing laws. Spoiler alert: I did not solve this problem. However, I did earn second place by writing the pitch and helping design a rapping chatbot.
I tend to spend most of my time focusing on projects that have social justice angles or at least will improve the world somehow. But honestly, when Zeal Caiden of Publicity.ai got up and pitched that he and Shawn Cosby were going to be working on a chatbot that embodied an artificially intelligent version of Kanye West, I had to admit that the project sounded super cool. So after chatting with a few other people, I meandered over and introduced myself. There wound up being 5 people on our team, but I spent most of my time working with Megan O’Rorke on what would have been the user interface if we’d had a week to work on the project (my work on the dialogue interface didn’t wind up getting incorporated into the version we pitched).
Cool Stuff Gets Noticed
Throughout the 24 or so hours that we had to work on the project, people from IBM (they were standing by on-site in case we had any questions about their tools – which, by the way, was crazy cool), people from Galvanize, and even just members of other teams stopped by to check out our project. I think it’s pretty safe to say we were hands down the most anticipated pitch (no pressure, right?!).
Building a Rapping Chatbot
There were two main stages of building Kanye Watson (awesome name, right?!): scraping and algorithm building. Then came pitching, which, if $eed is any indication, is a whole beast all by itself. Because I can, these headings are all going to be Kanye West lyrics. You’re welcome, XD
Keep it real or keep it moving, keep grinding
The project began with Shawn Cosby doing what I have done so many times before: sitting down for something like three hours and not moving until the code he needed to write got written. However, there’s one giant difference between Shawn and I: Shawn is a seriously talented programmer, whereas I dabble. I recently wrote a data scraping tool to assist me in drafting cover letters by scraping relevant information from job postings. It works kinda okay, and I still tweak it to improve it. In contrast, Shawn used a combination of Ruby, open URI, NokoGiri, and, well, sweat, to scrape Kanye West’s lyrics into a google spreadsheet so stunningly readable it’s a shame that the spreadsheet itself isn’t a user-facing tool.
Side Note Where I Give Myself a Break on Data Scraping
I’m going to go ahead and take this opportunity to make myself feel better by reminding myself and all of you that Shawn had to write code to effectively scrape data from exactly one website (AZLyrics) where the data generally appeared the same way, even when he was scraping data from different webpages. In contrast, I’ve tried to write my job information scraping tool to work on all job boards. Okay, back to building a rapping chatbot.
We’re living in that 31st century, futuristic fly shit
Next came algorithm building. Satyugjit Virk and Zeal Caiden talked out the technicalities of how to make the chatbot actually respond to user input, rather than randomly spouting out Kanye West lyrics. While no code I wrote was used for this, my awareness of available features came in handy: it was I who identified an already existing tool that we could harness to make Kanye Watson’s response lyrics rhyme with the user’s inputted lyrics. After some brief Googling (have I mentioned that I’m crazy good at Googling?), I identified that Datamuse’s API had a rhyming tool. Armed with that feature and IBM Watson’s Natural Language Understanding API (specifically, we used the sentiment and emotion scoring tools), the team went to work building out a custom 6-dimensional algorithm that scored the nearly 10,000 lines of real Kanye West lyrics that Shawn had scraped out of the internet and, in real time, would score the rap lyrics that a user would “message” to the Kanye Watson chatbot.
I made that bitch famous
Keep in mind that Kanye’s lyrics are generally pretty NC-17, and that the above lyric is tame in the grand scheme of Kanye West lyrics. That, and I wrote most of the pitch, so the lyric seemed appropriate 🙂
By Sunday morning, it was becoming pretty clear that we probably weren’t going to be using the dialogue interface I’d started to build out in IBM’s Watson Conversation Workspace the previous day. So I shifted to something else I knew I would be good at: drafting a pitch that directly addressed the judging criteria. It turns out that the “IRAC” (Issue Rule Analysis Conclusion) format for legal writing translates super well to pitch writing. Of course, the IRAC format also tends to result in 25 page law review articles, so my first draft of our pitch was, like, a page and a half. But while the rest of my team worked diligently to make sure our demo would blow everyone’s minds, I focused on writing a pitch that would convince everyone that our tool was a solution to the hackathon’s stated challenges. For the record, the challenge we targeted was:
“How can you help artists to build communities and promote their art?”
Photo-op this priceless, frame our wanted posters
For your enjoyment, this is a snippet from what our pitch would’ve said if I’d had unlimited time to introduce the demo:
Kanye Watson is unlike any other chatbot because Kanye Watson collaborates with users to rap! Before today, only the rich and famous had a chance to collaborate with Kanye West to make awesome music. Kanye Watson is a game changer because it gives YOU a chance to collaborate with Kanye West! Kanye Watson combines IBM Watson’s Natural Language Understanding APIs and Datamuse’s API to power an AI that embodies the music essence of Kanye West.
In reality, this was the intro I gave:
“Problem: The dramatic increase of computing power in the world is sending scientific progress into hyperspeed, yet the arts are withering and dying.
Solution: Kanye Watson. Kanye Watson enables people who do not consider themselves artists to collaborate with their favorite artists by using data and AI. Kanye Watson empowers new artists, boosts their self confidence, and lets them share their creations with the world!”
I then transitioned the pitch over to Zeal Caiden, who gave a demo of Kanye Watson by inputting lyrics he’d previously tested (so he knew how the chatbot would respond). The judges were beyond impressed – they didn’t even ask us any questions. The judge from Salesforce literally just said that he “loved everything” about our demo. One of the judges asked us to have a member of the audience offer some text for input (which we, of course, had expected and were prepared to do). There were some hiccups, but overall both the judges and audience were straight up blown away by the cool factor of a rapping chatbot. After we presented, Zeal Caiden messed around some more with the chatbot and created this screenshot to advertise the project on the Cognitive Builder Faire Slack channel:
In their spare team, members of our team are still working on getting a front-end (user-facing interface) up and running, but with any luck at all, you’ll soon be able to rap with an artificially intelligent version of Kanye West. When we get it up and running, I’ll include a link here. In the meantime, if you take nothing else away from my tale, remember this: you don’t need to be an all-star developer to learn something at a hackathon, and you might just meet some extremely cool people by attending one. If you want to start small, consider attending just the pitch sessions to see the kinds of projects people are working on. Not everyone is solving world hunger or poverty or whatever other projects make the headlines. Some of us are just providing a creative outlet and some comic relief =D