- Chatbot Fundamentals by Liza Daly, former CTO at Safari; it's an interactive guide with hands-on coding experience to teach some of the methods and tools useful for building a rule-based open domain chatbot (Brobot).
- Building a Simple Chatbot from Scratch in Python, uses and explains a lot of concepts in NLP like tokenization, stemming, bag-of-words, tf-idf, and cosine similarity to build a very simple rule-based chatbot.
- Writing a Google API MapBot from scratch and deploying on Facebook Messenger, talks about how to use the StanfordCoreNLP, SK-Learn, MySQL, and GoogleMapsAPI and FacebookMessengerAPI to build a simple rule-based task-orientated chatbot. It provides a nice example on how to design dialog.
- Conversational AI, gives a brief history of chatbot, explains the basic concepts, compares Dialogflow vs Rasa, and an example of how to build a task-orientated chatbot with companion source code.
- Dialogflow ask API.AI: a closed-source Google-owned API that uses NLP and Machine Learning to provide an end-to-end Chatbot model. It can easily integrate with 3rd party platforms, making deployment simple.
- Rasa NLU + Core: an open-source library. The NLU module provides NLP tools for intent classification and entity extraction. While the Core module handles dialogures and fulfillment.
- Nahid Alam wrote a great tutorial on Towards Data Science on how to use Rasa.
- Martin Novak explained in details how he built his weather bot.
- Nathaniel Kohn, Data Scienist at Lemonade, also have a more technical one on building a pizza ordering chatbot
- ChatterBot: an open-source python library that uses a selection of machine learning algo to produce different types of responses
- Ruan Bekker wrote a simple tutorial on how to quickly build a chatbot using Chatterbot.
- ChatterBot + Flask Boilerplate
- TextBlob: an API for diving into common NLP tasks (e.g. POS tagging, noun phrase extraction, sentiment analysis, classification, translation, etc.)
- spaCy: another NLP API built in CPython that excels at large-scale information extraction, aka Speed.
- ELIZA, the first Chatbot that started it all. Written by Weizenbaum ina 200 lines of code back in 1966.
- Awesome Chatbots
- Awesome Chatbots... including Chinese ones
- Awesome bots
- Facebook Chatbot Application
- Rasa Facebook Bot Example
- Wall Street Bot: flask, python, API.AI
Fits most real-world business needs and trained in a specific domain to handle a few particular tasks.
Where the conversation can go anywhere on an infinite number of topics. mitsuku and DeepQA are two examples.
Answers are generated based on rules that it's been trained on. This type of bots can handle simple queries but fail at complex ones
Uses Machine Learning approach that's more efficient than rule-based and are of two types...
- Retrieval: using heuristic to select a response from a library of predefined responses
- Generative: bots generate original answers
Context is important in language, which is why RNN, networks with embedded loops that allow pass information to persist, is a good match for training Chatbots.
Siraj, the Youtube Star, explained how to use TensorFlow to build an RNN based Chatbot in this video with the companion source code.
LSTMs are a special kind of RNN that has preformed particular well because it excels at retaining long-term memory of the dialog flow. Understanding LSTM Networks by Chris Olah, a Google Brain Research Scientist, talks in depth about how they work.
Seq2Seq models consist of two RNNs: an encoder RNN and a decoder RNN. The encoder reads the input sentence and is responsbile for emitting a context. Based on the context, the decoder generates the output sequence. This github repo have some sample code on building a Seq2Seq chatbot.
- A translation Chatbot
- A HK home price prediction Chatbot
- A trading assistant Chatbot
- A traditional chinese Chatbot from scratch