Ok this is a very interesting and hot topic right now. I personally have been so in love with this trend. I have developed a simple Bot in my college using AIML technology. The similiar is being used in most of the bot right now also, but in different context. After Facebook has created a new development platform for bot developers. Its even being more interesting in case of usage.
“Bot for everything and everyone.” This is how I see.
Enough of the literature. 😀
I have been collecting materials and developing bots for basic tasks for my personal usage. And before creating bot I would suggest understanding branches required for bot development, ie. Flow of NLU.
The main task that a bot building starts with is Intent Classification and Entity Extraction from the message text given to the bot by user.
User -> Bot:
Book me a room for a night.
Intent/ Context: book_room
Entity Extracted: number_of_room -> a room (one room)
duration -> a night (one night)
(Listening to: https://www.youtube.com/watch?v=4cauU2IpFyA)
So now you might have known what intents and entity actually is.
There are various number of library that used ML for these tasks Stanford NLP, Spacy, etc. For a beginner these are features given by bot building platforms like Wit.ai, api.ai, LUIS.ai.
Various types of Bot can be build, a conversational bot that responds to user very similar to a person would, and Step by step bot (flow bot) that has certain flowchart the user has to respond to for certain task to complete.
Examples: Conversational Bot: Siri, Cortana, Amazon Echo
Step-by-step bot: Uber bot
You can develop bot for various platforms, say for messaging platforms like Facebook Messenger, Skype, Kik, WhatsApp, Viber, blah blah.
Bots can be build for various simple things like daily tasks for reminder, alarm, but also can be used for complex tasks for e-commerce purpose.
This is my first post giving introduction on Bot development. This is first part for Bot building tutorial.
I will be posting detailed and technical bot building tutorial. May be in Python or Java or .Net.