introduction to - amazon s3 · 2019-04-25 · introduction to conversational software building...
TRANSCRIPT
![Page 1: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/1.jpg)
DataCamp Building Chatbots in Python
Introduction toconversational software
BUILDING CHATBOTS IN PYTHON
Alan NicholCo-founder and CTO, Rasa
![Page 2: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/2.jpg)
DataCamp Building Chatbots in Python
A short history
Conversational software is not a newidea!
Dates back to at least 1960s
First wave: command line applications
ELIZA: 1966
![Page 3: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/3.jpg)
DataCamp Building Chatbots in Python
Course content
Implementing smalltalk, ELIZA style
How to use regex and ML to extract meaning from free-form text
Build chatbots that can
Query a database
Plan a trip
Help you order coffee
Handling statefulness
![Page 4: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/4.jpg)
DataCamp Building Chatbots in Python
EchoBot IIn [1]: USER: Hello!
Out[1]: BOT: I can hear you, you said: 'Hello!'
In [2]: USER: How are you?
Out[2]: BOT: I can hear you, you said: 'How are you?'
![Page 5: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/5.jpg)
DataCamp Building Chatbots in Python
EchoBot IIIn [1]: def respond(message):
: return "I can hear you! you said: {}".format(message)
In [2]: def send_message(message):
: # calls respond() to get response
In [3]: send_message("hello!")
Out[3]: USER: hello!
...: BOT : I can hear you! you said: hello!
![Page 6: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/6.jpg)
DataCamp Building Chatbots in Python
EchoBot IIIIn [1]: import time
In [2]: time.sleep(0.5)
![Page 7: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/7.jpg)
DataCamp Building Chatbots in Python
Let's practice!
BUILDING CHATBOTS IN PYTHON
![Page 8: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/8.jpg)
DataCamp Building Chatbots in Python
Creating a personality
BUILDING CHATBOTS IN PYTHON
Alan NicholCo-founder and CTO, Rasa
![Page 9: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/9.jpg)
DataCamp Building Chatbots in Python
Why personality?
Difference between a command line app and a chatbot
Makes chatbots and voice assistants more accessible and fun to use
Your users will expect it!
![Page 10: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/10.jpg)
DataCamp Building Chatbots in Python
SmalltalkIn [1]: responses = {
: "what's your name?": "my name is EchoBot",
: "what's the weather today?": "it's sunny!"
: }
In [2]: def respond(message):
: if message in responses:
: return responses[message]
In [3]: respond("what's your name?")
Out[3]: 'my name is EchoBot'
![Page 11: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/11.jpg)
DataCamp Building Chatbots in Python
Including variablesIn [1]: responses = {
: "what's today's weather?": "it's {} today"
: }
In [2]: weather_today = "cloudy"
In [3]: def respond(message):
: if message in responses:
: return responses[message].format(weather_today)
:
In [4]: respond("what's today's weather?")
Out[4]: "it's cloudy today"
![Page 12: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/12.jpg)
DataCamp Building Chatbots in Python
Choosing responsesIn [1]: responses = {
: "what's your name?": [
: "my name is EchoBot",
: "they call me EchoBot",
: "the name's Bot, Echo Bot"
: ]
: }
In [2]: import random
In [3]: def respond(message):
: if message in responses:
: return random.choice(responses[message])
In [4]: respond("what's your name?")
Out[4]: "the name's Bot, Echo Bot"
![Page 13: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/13.jpg)
DataCamp Building Chatbots in Python
Asking questionsIn [1]: responses = [ "tell me more!", "why do you think that?" ]
In [2]: import random
In [3]: def respond(message):
: return random.choice(responses)
In [4]: respond("I think you're really great")
Out[4]: 'why do you think that?'
![Page 14: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/14.jpg)
DataCamp Building Chatbots in Python
Let's practice!
BUILDING CHATBOTS IN PYTHON
![Page 15: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/15.jpg)
DataCamp Building Chatbots in Python
Text processing withregular expressions
BUILDING CHATBOTS IN PYTHON
Alan NicholCo-founder and CTO, Rasa
![Page 16: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/16.jpg)
DataCamp Building Chatbots in Python
Regular expressions
Match messages against known patterns
Extract key phrases
Transform sentences grammatically
![Page 17: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/17.jpg)
DataCamp Building Chatbots in Python
The regex behind ELIZA
USER: "do you remember when you ate strawberries in the garden?"
ELIZA: "How could I forget when I ate strawberries in the garden?"
![Page 18: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/18.jpg)
DataCamp Building Chatbots in Python
Pattern matchingIn [1]: import re
In [2]: pattern = "do you remember .*"
In [3]: message = "do you remember when you ate strawberries in the garden"
In [4]: match = re.search(pattern, message)
In [5]: if match:
: print("string matches!")
Out[5]: string matches!
![Page 19: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/19.jpg)
DataCamp Building Chatbots in Python
Extracting key phrasesIn [1]: import re
In [2]: pattern = "if (.*)"
In [3]: message = "what would happen if bots took over the world"
In [4]: match = re.search(pattern, message)
In [5]: match.group(0)
Out[5]: 'what would happen if bots took over the world'
In [6]: match.group(1)
Out[6]: 'bots took over the world'
![Page 20: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/20.jpg)
DataCamp Building Chatbots in Python
Grammatical transformationIn [1]: import re
In [2]: def swap_pronouns(phrase):
...: if 'I' in phrase:
...: return re.sub('I', 'you', phrase)
...: if 'my' in phrase:
...: return re.sub('my', 'your', phrase)
...:
...: else:
...: return phrase
In [3]: swap_pronouns("I walk my dog")
Out[3]: 'You walk your dog'
![Page 21: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/21.jpg)
DataCamp Building Chatbots in Python
Putting it all togetherIn [1]: pattern = 'do you remember (.*)'
In [2]: message = 'do you remember when you ate strawberries in the garden'
In [3]: phrase = pattern.search(pattern, message).group(1)
In [4]: phrase
Out[4]: 'when you ate strawberries in the garden'
In [5]: response = choose_response(pattern)
In [6]: response
Out[6]: 'how could I forget {}'
In [7]: phrase = swap_pronouns(phrase)
In [8]: phrase
Out[8]: 'when I ate strawberries in the garden'
In [9]: response.format(phrase)
Out[9]: 'how could I forget when I ate strawberries in the garden'
![Page 22: Introduction to - Amazon S3 · 2019-04-25 · Introduction to conversational software BUILDING CHATBOTS IN PYTHON A l an Ni chol Co-founder and CTO, Rasa. Dat aCamp B ui l di ng Chat](https://reader033.vdocument.in/reader033/viewer/2022042219/5ec5c5856d942b5f2d16a60c/html5/thumbnails/22.jpg)
DataCamp Building Chatbots in Python
Let's practice!
BUILDING CHATBOTS IN PYTHON