AI and Python: Developing a Conversational Interface using Python

21,078 views
20,739 views

Published on

Slides from PyOhio 7/25/2009:
*Director's Cut* with Previously Unseen Deleted Scenes :-) 40 extra slides

Published in: Technology
1 Comment
21 Likes
Statistics
Notes
No Downloads
Views
Total views
21,078
On SlideShare
0
From Embeds
0
Number of Embeds
119
Actions
Shares
0
Downloads
398
Comments
1
Likes
21
Embeds 0
No embeds

No notes for slide

AI and Python: Developing a Conversational Interface using Python

  1. 1. Artificial Intelligence And Python: Developing a Conversational Interface using Python Jerry Felix
  2. 2.  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 Objectives
  3. 3.  Motivation –Why should you care?  Tools and Resources  Technical bits and Program Samples  Open Source Future Direction Session Format
  4. 4. Wisdom from my son: “Dad, you’re lucky. When you were growing up, people had epic challenges. Why doesn’t my generation have any?”
  5. 5. …the goal, before this decade is out, of landing a man on the moon…
  6. 6. What’s our epic challenge? What stretch goal CAN we accomplish by 2019? Two trends…
  7. 7. - Ray Kurzweil
  8. 8. 2.5 Search Words 3.3 Search Words 7 - 15 “Search” Words Search Now Uses MoreThan SearchWords 2004 2009 2019 Location, Previous Searches Location, Previous Searches, Occupation, Hobbies, Context
  9. 9.  A $1000 computer = power of human brain.  People won’t search the internet, they’ll converse with it.  Good user interfaces will be conversational. By 2019:
  10. 10.  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? Our “Space Race”:
  11. 11. ❝ I believe that this Python Developer nation should commit itself to achieving the goal, before this next decade is out, of creating a general purpose Conversational Interface. ❞ Read with Kennedy Accent:
  12. 12.  Motivation –Why should you care?  Tools and Resources  Technical bits and Program Samples  Open Source Future Direction Session Format
  13. 13.  A Chat Bot that can respond “intelligently” to input.  Intelligence =  Great input parsing  Understanding of context  Large knowledge base What is a Conversational Interface?
  14. 14. What does a CI look like?
  15. 15. 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 andVideo  Conversation  Facial expressions  Context-driven responses  Personal-device based
  16. 16.  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). PayPal “Sarah”
  17. 17.  Guide users through your site or application  TroubleshootingWizards  Frequently Asked Questions (especially multi-part and contextual) Think of your chat bot as a new Customer Service Rep who is in training What Are they Good For?
  18. 18. Build a Conversational Interface to be added to municipal websites • Handle FAQ’s • Guide users through the site Introducing “Amy Iris” Case Study
  19. 19. 1. Language ParsingTools – Parse it 2. Knowledge Base – Get Answer 3. Context Management – Store Context 4. User Experience and Server – Say it (Chat window and Character Graphic) How to Create Your Own
  20. 20. Simple Example
  21. 21. Language Parsing Tools  Roll your own (i.e. “if pattern in textin:”)  Regular Expressions (re)  Artificial Intelligence Markup Language (AIML)  Natural LanguageTool Kit (NLTK)
  22. 22. Simple version: if “spell kat” in textin.lower(): say(“Uh, C AT.”) Advanced techniques:  Normalize input  Remove punctuation, multiple spaces  Standardize case Roll your own parsing
  23. 23. import re # huge table of patterns: patterns =[ ('.*spell kat.*','UH, C AT.'), ] # later in program: for p in patterns: if re.match(p[0], textin): say (p[1]) # say() prints or renders Regular Expressions
  24. 24. ❝ Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.❞ — Jamie Zawinski Regular Expressions
  25. 25.  XML with AI-specific tags  Patterns and responses  Serves its purpose well, for Chatterbot definitions  Not too difficult to learn  Cumbersome freeform logic / extensibility AIML
  26. 26.  A Chatterbot  Uses AIML  The basis for routinely winning the Chatterbot competitions  Open Source, freely licensable A.L.I.C.E.
  27. 27. <category> <pattern> HOW DOYOU SPELL KAT </pattern> <template> Uh, C AT. </template> </category> AIML example
  28. 28. <category> <pattern> DOYOU KNOW HOWTO * </pattern> <template> <srai>HOW DOYOU <star/></srai> </template> </category> AIML example
  29. 29.  Download PyAIML  Download ALICE definitions  Edit AIML Or use a service (some free, some paid) Implementing AIML
  30. 30.  Collection of tools  Corpora  Parsing, tokens, chunking, parts of speech  Analysis: Collocation, semantics, metrics, probability, testing Natural Language Tool Kit
  31. 31. From “Mat”, on stackoverflow.com
  32. 32. From “Mat”, on stackoverflow.com
  33. 33. From “Mat”, on stackoverflow.com
  34. 34. From “Mat”, on stackoverflow.com
  35. 35. From “Mat”, on stackoverflow.com
  36. 36. From “Mat”, on stackoverflow.com
  37. 37. From “Mat”, on stackoverflow.com
  38. 38. 1. Language ParsingTools – Parse it 2. Knowledge Base – Get Answer 3. Context Management – Store Context 4. User Experience and Server – Say it (Chat window and Character Graphic) How to Create Your Own
  39. 39. Knowledge Base  List of answers  AIML response  SQL Database Lookup  Website lookup  HTML parsing (Beautiful Soup)  SemanticWeb  Application Programming Interfaces (APIs)  JSON or xml
  40. 40. 1. Language ParsingTools – Parse it 2. Knowledge Base – Get Answer 3. Context Management – Store Context 4. User Experience and Server – Say it (Chat window and Character Graphic) How to Create Your Own
  41. 41. Context Management  AIML – limited context  “that”, “it”, “topic”  NLTK has some basic tools for context management
  42. 42. User Experience  Today, chat window  Graphic character  Interface to mobile, twitter, social networking  Your server or Google App Engine  Hosted solutions  Pandorabots, ysalaya.org, others  Tomorrow, voice recognition, additional interfaces
  43. 43. • Every “business oriented” bot creator needs a: • Parser • Knowledge Base • Context Manager • UI Why not create an “Open Source” framework for best-in-class of each? “Ah Ha!” Moment #1
  44. 44. Translator example • Parse it • Get Answer • Update Context • Say it
  45. 45. Translator - Parse match=re.match(r' (say|translate) (.*) (in|to|into) (w+)', textin)
  46. 46. Translator - Parse match=re.match(r' (say|translate) match.group(1) (.*) match.group(2) (in|to|into) match.group(3) (w+)', match.group(4) textin)
  47. 47. 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]
  48. 48. Translator – Say It say(c + " is " + match.group(2) + " in “ +match.group(4)+".")
  49. 49. Translator – Say It say(c + "silla" " is " + is match.group(2) + "chair" " in “ in +match.group(4)+".") spanish.
  50. 50. Translate “I have an emergency.” to Spanish “I have an emergency.” in Spanish is “Tengo una emergencia.” UI Parser Knowledge Base Context Manager
  51. 51. 10 lines of Python code, plus a little open source… …turned every phone into a English-Spanish translator “Ah Ha!” Moment #2 10 lines of PythonTwitter Python- Twitter Translator Website urllib2 Twitter API Python
  52. 52. Why is this significant? 1. A Novice Python Programmer can turn every phone on the planet into a UniversalTranslator. 2. What happens if tens of thousands of Python Programmers begin contributing to a Central Code repository? A General Purpose Conversational Interface emerges. WhatWikipedia did for Encyclopedias, Python Programmers can do for Artificial Intelligence. COOL! Translate “I have an emergency.” to Spanish “I have an emergency.” in Spanish is “Tengo una emergencia.” REAL COOL!
  53. 53. WhatWikipedia did for Encyclopedias, Python Programmers can do for Artificial Intelligence.
  54. 54.  Motivation –Why should you care?  Tools and Resources  Technical bits and Program Samples  Open Source Future Direction Session Format
  55. 55.  I’m building bots for municipalities  Amy Iris is a byproduct  Django website  Contributory Code  Twitter Interface  Amy Iris is a contributory framework similar toWikipedia as a framework Future Direction
  56. 56. 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)
  57. 57. How to get involved: • Follow @amyiris onTwitter • Send email: amyiris@amyiris.com • Online meetings begin next week.
  58. 58. • BACK UP SLIDESTO FOLLOW
  59. 59. API Users can interact with Amy Iris through several interfaces: - API -Website amyiris.com -WebWidget on your website -Twitter Users “talk” to Amy Iris by typing something - A familiar chat-bot experience
  60. 60. User Contributed Open Source Code Snippets API ALICE Code Code Code Code Code Code 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.
  61. 61. User Contributed Open Source Code Snippets API ALICE Translator Code Code Code Code Code Code Translation website 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
  62. 62. User Contributed Open Source Code Snippets API ALICE Best Buy snippet Code Code Code Code Code Code 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!
  63. 63. 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, orTwitter 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 submittingCode Snippets into the system
  64. 64. 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,{"&apos;": "'", "&quot;": '"'}) + " is " + match.group(2) + " in "+match.group(4)+".") say(confidence=43)
  65. 65. User Contributed Open Source Code Snippets API ALICE Best Buy snippet Translator Code Code Code Code Code Code Remix Translation website
  66. 66.  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 LanguageTool Kit (NLTK)  Google App Engine The Python Advantage
  67. 67.  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. We are an Open Nation
  68. 68.  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 Our Sputnik?
  69. 69.  Chat Bot approach (AIML, A.L.I.C.E. , PyAIML, Various Chatbots)  Natural LanguageTool Kit (NLTK)  Search Engines growing up (Google, ASK, Bing “Decision Engine”,Yahoo, Cha Cha)  Semantic Web Efforts  Wordnet, AI efforts Several Parallel Initiatives
  70. 70.  Grammar  Corpus / Corpora  Parts of Speech  Genre  Parsing  Inference Engine  Domain  Discourse NLTK Concepts
  71. 71.  <draw picture> User -> U.I. -> “Memoized” www pages // Parser ->WWW pages  Wrap pages with Semantic Web and API  Add in Context  Show how it breaks down (search in sentences) Search Engine Analogy
  72. 72. Resources
  73. 73.  Contest: Reward bots who fool human judges  Every entrant fooled at least one judge  Elbot fooled 25% of judges  30% is AlanTuring’s metric (“TuringTest”)  12 small chat sessions are judged October 2008 Loebner Prize
  74. 74. 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 1
  75. 75. 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. Bot or Not – Choice 2
  76. 76.  $1,000 of computation = 1,000 times the human brain  Reverse engineering of the human brain completed  Computers pass theTuring 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 2029: An intimate merger - Ray Kurzweil
  77. 77. Amy Iris  Amy Iris is our Conversational Interface (CI). (think A.I. / chatterbots)  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 considerWikipedia 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).
  78. 78. 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
  79. 79. 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  2006, A.L.I.C.E. advances technology, defines standards, wins competitions. 20K patterns
  80. 80. “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
  81. 81. Lofty Goals = Achievements:
  82. 82. 1980’s Lofty Goals…
  83. 83. 2000’s Lofty Goals… ?
  84. 84. Even Assassination attempts were grandiose:
  85. 85. vs. a shoe toss?

×