If you happen to read the news in any form or fashion over the last year you’ll know that bots are having a moment. It’s the future! The bots are taking over! There are bots to buy clothes, to check your bank account, to buy insurance. Bots to diagnose health concerns. Even bots to deliver pizza.
But what exactly is a bot? Are they hard to make? Say you yourself want to kick the tires of building a bot and not sure where to start? Well have no fear! Here’s an introduction to bots and quick, easy, free ways to get started.
Setting the stage
Believe it or not chatbots as a concept have been around a long time. For a quick and dirty history lesson people have been intrigued with the relationship between man and machine (pandora’s box, frankenstein, etc). Things got real around the mid 1900’s when computers as we think of them today started to really evolve. Experiments like Eliza started to bring conversation to a new level.
To benchmark the success of a bot, Alan Turing, the grandfather of computer science, famously designed the “turing test.” To pass the Turing test a human must not be able to decipher if the conversation they’re having with is with a machine or a human. This has evolved into something called the Total Turing Test, which to date basically no machine has been able to pass.
Now let’s shift gears to look at some of the technology that goes into bots. You may have heard artificial intelligence as a descriptor used in association with bots. For a conversational interface this means that it uses natural language processing and/or natural language understanding. This is a type of machine learning and classifies unstructured data into intents, entities, and contexts. Let’s unpack that a little.
Let’s build it
First, the difference between structured and unstructured data is pretty easy to grasp. Structured data is just what you’d think- spreadsheets. Databases. Columns and rows. Things are neat, tidy, organized. Labeled. Unstructured data is basically everything else. Data in emails, blogs, social media. The data is less neat or not at all ordered. It’s more difficult for a machine to extract the valuable bits or know exactly what to look for. This is where the fun starts.
An intent to a bot is what your user wants to do. These can be very transactional wants and business intents like “what is the weather?”, “what movies has Melissa McCarthy been in?”, “Who invented chocolate chip cookies?” There are also more general or casual intents. These are things like greetings or positive and negative intents like a user responding yes or no.
Entities on the other hand are like the nouns to the intents action. So, “book me a flight to Paris on Wednesday,” where intent could be flight booking, flight location, and flight time then the entities are Paris and Wednesday. To build up the language of your bot entities can start to include what might be thought of as synonyms. For instance “find me a flight to the capital of France,” or “Book a trip to the city of lights,” would mean that the user was describing Paris.
When it comes to putting your bot into production there are the tools you use to build the bot and then the place that you deploy your bot, your “medium” if you will. Probably the biggest tools in the space are:
A few other notable additions are:
Each tool has their advantages and disadvantages. Most are free in exchange for data or at least free to get started.
After that when you want to launch your bot then you choose the interface. This could be Facebook Messenger, KiK, Slack, Twitter, or any other conversational interface.
There are a few simple guidelines to help you get started thinking about your bot.
The world of bots have been around for quite some time, but bots and conversational interfaces as we know them are still relatively new. There are great tools to help you build your interface for literally any type of problem or user. They’re a great way to create something without even knowing code in fact. There’s still a world to explore with conversational interfaces and bots.
If you’re interested in taking next steps be sure to check out the documentation for wit.ai, api.ai, or Recast.ai. These go more in depth into conversational concepts and have nice GUI’s which make building fun and easy, too. Now get crackin’ (and keep us posted with your progress)!
Ash Hathaway was a Senior Product Manager at IBM Watson focused on developer experience and AI APIs as products. She was fortunate enough to see the launch of their first API and the growth of the platform including an acquisition. As a Director of Developer Evangelism she balances the creation and measurement of great content with user feedback to improve the overall user experience. Her passions center around cutting-edge products and working to create happy developer communities where big problems can be solved. She regularly speak, writes, and is always looking for ways to give back to the community. If you're a nice person you should say Howdy.
Follow her on LinkedIn and Twitter!
About our blog:
This blog (like Flock) was formed to amplify the voices of underrepresented technologists and help all of us fly higher together.