Messaging and voice-controlled devices are the next big platforms, and conversational computing has a big role to play in creating engaging augmented and virtual reality experiences. This course will get you started on the path toward building such applications. There are a number of unique challenges to building these kinds of programs, like how do I turn human language into instructions for machines? In this course, you'll tackle this first with rule-based systems and then with machine learning. Some chat systems are designed to be useful, while others are just good fun. You will build one of each and put everything together to make a helpful, friendly chatbot. Once you complete the course, you’ll also learn how to connect your chatbot to Facebook Messenger!
In this chapter, you'll learn how to build your first chatbot. After gaining a bit of historical context, you'll set up a basic structure for receiving text and responding to users, and then learn how to add the basic elements of personality. You'll then build rule-based systems for parsing text.Introduction to conversational software50 xpEchoBot I100 xpEchoBot II100 xpCreating a personality50 xpChitchat100 xpAdding variety100 xpELIZA I: asking questions100 xpText processing with regular expressions50 xpELIZA II: Extracting key phrases100 xpELIZA III: Pronouns100 xpELIZA IV: Putting it all together100 xp
Understanding natural language
Here, you'll use machine learning to turn natural language into structured data using spaCy, scikit-learn, and rasa NLU. You'll start with a refresher on the theoretical foundations and then move onto building models using the ATIS dataset, which contains thousands of sentences from real people interacting with a flight booking system.Understanding intents and entities50 xpIntent classification with regex I100 xpIntent classification with regex II100 xpEntity extraction with regex100 xpWord vectors50 xpword vectors with spaCy100 xpIntents and classification50 xpIntent classification with sklearn100 xpEntity extraction50 xpUsing spaCy's entity recognizer100 xpAssigning roles using spaCy's parser100 xpRobust language understanding with rasa NLU50 xpRasa NLU100 xpData-efficient entity recognition100 xp
Building a virtual assistant
In this chapter, you'll build a personal assistant to help you plan a trip. It will be able to respond to questions like "are there any cheap hotels in the north of town?" by looking inside a hotel’s database for matching results.Virtual assistants and accessing data50 xpSQL basics50 xpSQL statements in Python100 xpExploring a DB with natural language50 xpCreating queries from parameters100 xpUsing your custom function to find hotels100 xpCreating SQL from natural language100 xpIncremental slot filling and negation50 xpRefining your search100 xpBasic negation100 xpFiltering with excluded slots100 xp
Everything you've built so far has statelessly mapped intents to actions and responses. It's amazing how far you can get with that! But to build more sophisticated bots you will always want to add some statefulness. That's what you'll do here, as you build a chatbot that helps users order coffee.Why statefulness is key50 xpForm filling100 xpAsking contextual questions100 xpDealing with rejection100 xpAsking questions & queuing answers50 xpPending actions I100 xpPending actions II100 xpPending state transitions100 xpPutting it all together I100 xpPutting it all together II100 xpFrontiers of dialogue research50 xpGenerating text with neural networks100 xpCongratulations!50 xp
In the following tracksNatural Language Processing in Python
Alan NicholSee More
Co-founder and CTO of Rasa
Alan is co-founder and CTO of Rasa, the leading open source conversational AI company. Rasa builds software that enables developers to build conversational software that really works, and is trusted by thousands of developers in enterprises worldwide. Rasa combines applied AI research with enterprise-ready technology. Alan holds a PhD in machine learning from the University of Cambridge and has years of experience building AI-powered products in industry.