How can we make a chatbot that’s a bit smarter than simply altering the user’s input? This is where machine learning becomes useful. In this challenge, you will build a chatbot that learns how to respond. There are a couple of ways you could approach this.
One approach is to get the chatbot to ‘memorize’ an existing text which contains useful information and facts. This creates a kind of knowledge base. When it receives a query, it tries to find a sentence in its knowledge base that most closely matches the words in the query. With a bit of luck, this sentence will in fact provide relevant information.
Another approach uses a framework that asks questions and learns how to have a conversation based on the answers it receives. The more it chats, the more knowledge it accumulates and hopefully, the better it responds in future.
Yet another dimension to consider is sentiment analysis: can your chatbot tell whether the user’s input is predominantly positive or negative and respond accordingly?
You should think about how to share your chatbot online — how do people get to talk to it? And how can you evaluate whether it is doing a good job?
- A chatbot that answers questions about Scottish wildlife
- A chatbot that learns about good ways to make breakfast
- A chatbot that has an interesting personality
- A chatbot that learns from a text corpus: https://medium.com/@ritidass29/create-your-chatbot-using-python-nltk-88809fa621d1
- A Chatbot in Python using NLTK: https://medium.com/swlh/a-chatbot-in-python-using-nltk-938a37a9eacc
- A chatbot that learns by chatting: https://github.com/gunthercox/ChatterBot
- Build a chatbot with sentiment analysis
- NLTK Sentiment Analysis HowTo
- Design a chatbot with personality