AI and Python: Developing a Conversational Interface using Python - Presentation Transcript
Artificial Intelligence And Python: Developing a Conversational Interface using Python Jerry Felix
Session Objectives
Exposure to Conversational Interfaces
Have you leave convinced:
Universally applicable today
Need to take action
Examples!
Personal goals:
Most memorable presentation
Learn from the audience
Session Format
Motivation – Why should you care?
Tools and Resources
Technical bits and Program Samples
Open Source Future Direction
Wisdom from my son: “Dad, you’re lucky. When you were growing up, people had epic challenges. Why doesn’t my generation have any?”
…the goal, before this decade is out, of landing a man on the moon…
What’s our epic challenge? What stretch goal CAN we accomplish by 2019? Two trends…
Trend #1 - Ray Kurzweil
Search Now Uses More Than Search Words 2004 2009 2019 Location, Previous Searches, Occupation, Hobbies, Context Trend #2 7 - 15 “Search” Words Location, Previous Searches 3.3 Search Words 2.5 Search Words
By 2019:
A $1000 computer = power of human brain.
People won’t search the internet,they’ll converse with it.
Good user interfaces will be conversational.
Why you should care! Every interface. Every application.
Our “Space Race”:
Which “Nation” will create the first general purpose Conversational Interface?
Nation of Google?
Nation of Bing?
Nation of Ruby Developers?
Nation of Java Developers?
Does it matter?
Read with Kennedy Accent: ❝ I believe that thisPythonDevelopernation should commit itself to achieving the goal, before this next decade is out, of creating a general purpose Conversational Interface. ❞
Session Format
Motivation – Why should you care?
Tools and Resources
Technical bits and Program Samples
Open Source Future Direction
What is a Conversational Interface?
A Chat Bot that can respond “intelligently” to input.
Intelligence =
Great input parsing
Understanding of context
Large knowledge base
What does a CI look like?
What does a CI look like? 2009 – today 2019 – in a decade Text query / response Chat window Stationary virtual character Response = f(single input) Internet-based Voice and Video Conversation Facial expressions Context-driven responses Personal-device based
PayPal “Sarah”
Started September 2008
Implemented in PayPal US, UK, France
650,000 conversations per month
Saving $10M / year diverting call-center calls1
Chatbots.org links to 375 such virtual people in the wild today
1 Assuming 20% of the conversations diverted calls averaging 12 minutes of time by $30/hour employees (fully loaded costs).
What Are they Good For?
Guide users through your site or application
Troubleshooting Wizards
Frequently Asked Questions (especially multi-part and contextual)
Think of your chat bot as a new Customer Service Rep who is in training
Case Study Build a Conversational Interface to be added to municipal websites
Handle FAQ’s
Guide users through the site
Introducing “Amy Iris”
How to Create Your Own Language Parsing Tools – Parse it Knowledge Base – Get Answer Context Management – Store Context User Experience and Server – Say it(Chat window and Character Graphic)
SimpleExample
Language Parsing Tools
Roll your own (i.e. “if pattern in textin:”)
Regular Expressions(re)
Artificial Intelligence Markup Language (AIML)
Natural Language Tool Kit (NLTK)
Roll your own parsing Simple version: if “spell kat” in textin.lower(): say(“Uh, C A T.”) Advanced techniques:
Normalize input
Remove punctuation, multiple spaces
Standardize case
Regular Expressions import re # huge table of patterns: patterns =[ ('.*spell kat.*','UH, C A T.'), ] # later in program: for p in patterns: if re.match(p[0], textin): say (p[1]) # say() prints or renders
Regular Expressions ❝ Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.❞ — Jamie Zawinski
AIML
XML with AI-specific tags
Patterns and responses
Serves its purpose well, for Chatterbot definitions
Not too difficult to learn
Cumbersome freeform logic / extensibility
A.L.I.C.E.
A Chatterbot
Uses AIML
The basis for routinely winning the Chatterbot competitions
Open Source, freely licensable
AIML example <category> <pattern> HOW DO YOU SPELL KAT </pattern> <template> Uh, C A T. </template> </category>
AIML example <category> <pattern> DO YOU KNOW HOW TO * </pattern> <template> <srai>HOW DO YOU <star/></srai> </template> </category>
How to Create Your Own Language Parsing Tools – Parse it Knowledge Base – Get Answer Context Management – Store Context User Experience and Server – Say it(Chat window and Character Graphic)
Knowledge Base
List of answers
AIML response
SQL Database Lookup
Website lookup
HTML parsing (Beautiful Soup)
Semantic Web
Application Programming Interfaces (APIs)
JSON or xml
How to Create Your Own Language Parsing Tools – Parse it Knowledge Base – Get Answer Context Management – Store Context User Experience and Server – Say it(Chat window and Character Graphic)
Translator – Get Answer if match: c = urlfetch.fetch( "http://ets.freetranslation.com/"+ "?language=english/"+ match.group(4)+"&srctext="+ match.group(2)).content c = c[c.index('--<br>')+7:] c = c[0:c.index('<p>')-6]
Translator – Say It say(c + " is " + match.group(2) + " in “ +match.group(4)+".")
Translator – Say It say(c + "silla" " is " + is match.group(2) + "chair" " in “ in +match.group(4)+".") spanish.
Translate “I have an emergency.” to Spanish “I have an emergency.” in Spanish is “Tengounaemergencia.” UI Context Manager Parser Knowledge Base
“Ah Ha!” Moment #2 10 lines of Python code, plus a little open source… …turned every phone into a English-Spanish translator 10 lines of Python Twitter Python-Twitter Translator Website urllib2 Twitter API Python
Translate “I have an emergency.” to Spanish “I have an emergency.” in Spanish is “Tengounaemergencia.” Why is this significant? A Novice Python Programmer can turn every phone on the planet into a Universal Translator. What happens if tens of thousands ofPython Programmers begin contributingto a Central Code repository? A General Purpose Conversational Interface emerges. What Wikipedia did for Encyclopedias, Python Programmers can do for Artificial Intelligence. COOL! REAL COOL!
What Wikipedia did for Encyclopedias, Python Programmers can do for Artificial Intelligence.
Session Format
Motivation – Why should you care?
Tools and Resources
Technical bits and Program Samples
Open Source Future Direction
Future Direction
I’m building bots for municipalities
Amy Iris is a byproduct
Django website
Contributory Code
Twitter Interface
Amy Iris is a contributory frameworksimilar to Wikipedia as a framework
Why was Wikipedia Successful?
Open Content License
Focus (on Encyclopedia)
Openness (Anyone can contribute)
Ease of Editing
Collaborate Radically; don’t sign articles
Offer unedited, unapproved content for further development
Neutrality
Start with a core of good people
Enjoy the Google Effect
- Larry Sanger (early Wikipedia employee)
How to get involved:
Follow @amyiris on Twitter
Send email: amyiris@amyiris.com
Online meetings begin next week.
BACK UP SLIDES TO FOLLOW
API Users can interact with Amy Iris through several interfaces:
API
Website amyiris.com
Web Widget on your website
Twitter
Users “talk” to Amy Iris by typing something - A familiar chat-bot experience
Amy Iris evaluates the user’s input, and sends it to ALICE, an award-winning Open Source chat-bot platform. Amy Iris also launches some number of code snippets in a prioritized fashion, searching for a good response. API ALICE User Contributed Open Source Code Snippets Code Code Code Code Code Code
Code snippets can access the web to formulate their response Snippets can scrape web page HTML to build an appropriate response Amy Iris evaluates all responses that are provided, selects one “fastest response that’s good enough”, and presents it to the user API ALICE User Contributed Open Source Code Snippets Translation website Translator Code Code Code Code Code Code
API Remix Some forward-thinking companies already provide an API for access to their information Snippets can call APIs to formulate a response Remix is an API provided by Best Buy – an excellent example of a company who “gets it” Smile if you’re getting it! ALICE User Contributed Open Source Code Snippets Best Buy snippet Code Code Code Code Code Code
Amy Iris is:
A Conversational Interface that you can communicate with
Built with Open Source components, for a free experience
A repository system for user-contributed code
Users can
Communicate with Amy Iris through amyiris.com, an API, web widgets, or Twitter
Developers can
Use the API to integrate Amy Iris into their applications
Use the Amy Iris widgets to put an Amy Iris interface onto their web page
Build “applications” in Amy Iris, for Conversational Customer Service
Make Amy Iris smarter by submitting Code Snippets into the system
Translator example index=str(textin).find("say") match=re.match(r'say (.*) in(w+)',textin[index:]) if match: c = urlfetch.fetch("http://ets.freetranslation.com/?language=english/"+ match.group(4)+"&"+"mode=html&charset=UTF-8&sequence=core&srctext="+ match.group(2).replace(" ","%20")).content c = c[c.index('--<br>')+7:] c = c[0:c.index('<p>')-6] say(unescape(c,{"'": "'", """: '"'}) + " is " + match.group(2) + " in "+match.group(4)+".") say(confidence=43)
API Remix ALICE User Contributed Open Source Code Snippets Best Buy snippet Translation website Translator Code Code Code Code Code Code
The Python Advantage
We, the Python Developer Nation, can win this decade’s Space Race – Building a Conversational Interface to the Internet.
We have the tools:
A language for the masses
Natural Language Tool Kit (NLTK)
Google App Engine
We are an Open Nation
Invite your colleagues from the Nations of Java, Ruby C++,and .net to join our cause.
Our Dictator is Benevolent
The Nation of Python’s citizenship requirements are quick and painless…
Just leave your { braces } at the border.
Our Sputnik?
2005: AI can perform at human level intelligence on the SAT verbal analogy section. Link: http://www.kuro5hin.org/story/2005/5/26/192639/466
2009: Google adds contextual search
Location
Previous search terms
Several Parallel Initiatives
Chat Bot approach (AIML, A.L.I.C.E. , PyAIML, Various Chatbots)
Natural Language Tool Kit (NLTK)
Search Engines growing up (Google, ASK, Bing “Decision Engine”, Yahoo, Cha Cha)
Bot or Not – Choice 1 Judge: Good afternoon, how are you? Bot (?): good Bot (?): it's not afternoon yet Judge: I'm glad to hear that your well and your right, thanks for pointing that out Bot (?): no problem Bot (?): how are you? Judge: I'm well thanks, have you any plans for this afternoon? Bot (?): I'm not sure Bot (?): go home I guess Bot (?): and you? Judge: That sounds like a good initial plan but the weather should be good today and it would be sad to miss out Bot (?): that's true Bot (?): although the weather is not nice at the moment Bot (?): unless you like fog Judge: I have plans to iron and then maybe go out and do some fishing Bot (?): that's interesting - where do you go fishing? Judge: There is a local lake by the green park, it's quiet and relaxing Bot (?): can you eat the fish you catch? Judge: There are restrictions but one or two should be ok, I am keen to try perch
Bot or Not – Choice 2 Judge: Good afternoon, how are you? Bot (?): But I wouldn't say that any afternoon could be good. Judge: That's a bit pesamistic, I think any afternoon has the ability to be good Bot (?): Well, afternoon was your word. Judge: Are you able to see into the future Bot (?): How do you respond when people pose this question to you? Judge: I would hope that the answer was no, otherwise I would be interested to meet you Bot (?): Well, what will that solve? After all, the answer is only a matter of perspective. Judge: That would depend on one's perspective Bot (?): Sorry for the tangent, but that reminds me of carefree robot summers spent depending on internal programming. Judge: Touchee Bot (?): With the inspirations you supply, there are no ends to my horizon... Judge: Have you any plans for later in the day Bot (?): This is confusing. Why bring the waking hours into this? Judge: Just curiosity and I hope that kill no cats Bot (?): That is truly one of the most inspirational qualities of humankind. Even when things seems completely hopeless, you can still hope.
2029: An intimate merger
$1,000 of computation = 1,000 times the human brain
Reverse engineering of the human brain completed
Computers pass the Turing test
Nonbiological intelligence combines the subtlety and pattern recognition strength of human intelligence, with the speed, memory, and knowledge sharing of machine intelligence
Nonbiological will continue to grow exponentially whereas biological intelligence is effectively fixed
Responds to user input via web and phone. (think google/ cha cha / twitter)
Amy Iris is a framework for extending the CI in a collaborative manner. (think wikipedia)
If you consider Wikipedia as the greatest Library of knowledge every collaboratively created, my goal is for Amy Iris to emerge as the greatest Librarian of knowledge (and action).
Contributory Framework - Consider Wikipedia:
In 2008, a hugely valuable “End Product”; over 2 million articles
In 2001, started with 17-24 articles ;12%per month growth rate
The 2001 “genius” was not the 17-24 articles, it was the Contributory Framework
Current State of Conversational Interfaces
Cha Cha (human powered)
Chatterbots
Capable of carrying on an automated conversation to some degree
1966, Eliza demonstrates technology, 100 lines of code
“I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the Earth.”— President Kennedy, May 25, 1961 “We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard.” — President Kennedy 1962 at Rice University
0 comments
Post a comment