AI and Python: Developing a Conversational Interface using Python

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    AI and Python: Developing a Conversational Interface using Python - Presentation Transcript

    1. Artificial Intelligence And Python: Developing a
      Conversational Interface
      using Python
      Jerry Felix
    2. 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
    3. Session Format
      • Motivation – Why should you care?
      • Tools and Resources
      • Technical bits and Program Samples
      • Open Source Future Direction
    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. …the goal, before this decade is out, of landing a man on the moon…
    6. What’s our epic challenge?
      What stretch goal CAN we accomplish by 2019?
      Two trends…
    7. Trend #1
      - Ray Kurzweil
    8. 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
    9. 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.
    10. 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?
    11. 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. ❞
    12. Session Format
      • Motivation – Why should you care?
      • Tools and Resources
      • Technical bits and Program Samples
      • Open Source Future Direction
    13. What is a Conversational Interface?
      • A Chat Bot that can respond “intelligently” to input.
      • Intelligence =
      • Great input parsing
      • Understanding of context
      • Large knowledge base
    14. What does a CI look like?
    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 and Video
      Conversation
      Facial expressions
      Context-driven responses
      Personal-device based
    16. 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).
    17. 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
    18. Case Study
      Build a Conversational Interface to be added to municipal websites
      • Handle FAQ’s
      • Guide users through the site
      Introducing “Amy Iris”
    19. 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)
    20. SimpleExample
    21. 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)
    22. 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
    23. 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
    24. Regular Expressions
      ❝ Some people,
      when confronted with a problem,
      think “I know, I’ll use regular expressions.”
      Now they have two problems.❞
      — Jamie Zawinski
    25. 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
    26. A.L.I.C.E.
      • A Chatterbot
      • Uses AIML
      • The basis for routinely winning the Chatterbot competitions
      • Open Source, freely licensable
    27. AIML example
      <category>
      <pattern>
      HOW DO YOU SPELL KAT
      </pattern>
      <template>
      Uh, C A T.
      </template>
      </category>
    28. AIML example
      <category>
      <pattern>
      DO YOU KNOW HOW TO *
      </pattern>
      <template>
      <srai>HOW DO YOU <star/></srai>
      </template>
      </category>
    29. Implementing AIML
      • Download PyAIML
      • Download ALICE definitions
      • Edit AIML
      Or use a service (some free, some paid)
    30. Natural Language Tool Kit
      • Collection of tools
      • Corpora
      • Parsing, tokens, chunking, parts of speech
      • Analysis: Collocation, semantics, metrics, probability, testing
    31. From “Mat”, on stackoverflow.com
    32. From “Mat”, on stackoverflow.com
    33. From “Mat”, on stackoverflow.com
    34. From “Mat”, on stackoverflow.com
    35. From “Mat”, on stackoverflow.com
    36. From “Mat”, on stackoverflow.com
    37. From “Mat”, on stackoverflow.com
    38. 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)
    39. 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
    40. 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)
    41. Context Management
      • AIML – limited context
      • “that”, “it”, “topic”
      • NLTK has some basic tools for context management
    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. “Ah Ha!” Moment #1
      • 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?
    44. Translator example
      • Parse it
      • Get Answer
      • Update Context
      • Say it
    45. Translator - Parse
      match=re.match(r'
      (say|translate)
      (.*)
      (in|to|into)
      (w+)',
      textin)
    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. 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. Translator – Say It
      say(c +
      " is " +
      match.group(2) +
      " in “
      +match.group(4)+".")
    49. Translator – Say It
      say(c + "silla"
      " is " + is
      match.group(2) + "chair"
      " in “ in
      +match.group(4)+".") spanish.
    50. Translate “I have an emergency.” to Spanish
      “I have an emergency.” in Spanish is “Tengounaemergencia.”
      UI
      Context Manager
      Parser
      Knowledge
      Base
    51. “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
    52. 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!
    53. What Wikipedia did for Encyclopedias,
      Python Programmers can do for Artificial Intelligence.
    54. Session Format
      • Motivation – Why should you care?
      • Tools and Resources
      • Technical bits and Program Samples
      • Open Source Future Direction
    55. 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
    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. How to get involved:
      • Follow @amyiris on Twitter
      • Send email: amyiris@amyiris.com
      • Online meetings begin next week.
      • BACK UP SLIDES TO FOLLOW
    58. 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
    59. 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
    60. 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
    61. 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
    62. 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
    63. 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)
    64. API
      Remix
      ALICE
      User Contributed
      Open Source
      Code Snippets
      Best Buy snippet
      Translation website
      Translator
      Code
      Code
      Code
      Code
      Code
      Code
    65. 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
    66. 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.
    67. 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
    68. 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)
      • Semantic Web Efforts
      • Wordnet, AI efforts
    69. NLTK Concepts
      • Grammar
      • Corpus / Corpora
      • Parts of Speech
      • Genre
      • Parsing
      • Inference Engine
      • Domain
      • Discourse
    70. Search Engine Analogy
      • 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)
    71. Resources
    72. October 2008 Loebner Prize
      • Contest: Reward bots who fool human judges
      • Every entrant fooled at least one judge
      • Elbot fooled 25% of judges
      • 30% is Alan Turing’s metric (“Turing Test”)
      • 12 small chat sessions are judged
    73. 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
    74. 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.
    75. 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
      - Ray Kurzweil
    76. 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 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).
    77. 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
    78. 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
    79. “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
    80. Lofty Goals = Achievements:
    81. 1980’s Lofty Goals…
    82. 2000’s Lofty Goals… ?
    83. Even Assassination attempts were grandiose:
    84. vs. a shoe toss?
    SlideShare Zeitgeist 2009

    + amyirisamyiris Nominate

    custom

    766 views, 1 favs, 0 embeds more stats

    Slides from PyOhio 7/25/2009:
    *Director's Cut* with more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 766
      • 766 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 22
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories