Hello, I'd like to introduce myself, I'm Emmett Coin and I recently joined the DZone staff. I'm excited to be contributing on a range of technologies that are used to build today's (and tomorrow's) synthetic agents. My experience with speech and that the language technologies spans several decades (so no, I'm not the youngest member of the zone team!). I won't bore you with a tedious resume, but for the curious my LinkedIn profile and a few of my conference presentations will give you a sense of where I'm coming from.
I will be contributing my thoughts in two threads:
A series of articles outlining the technologies and histories behind synthetic agents and their component parts.
Small examples with working code that you can play with in a browser and on a device.
So, without further delay, let's get started!
Humans have a long history reflecting our desire to create artificial beings. These creations are described in ancient religious texts and have shown up in literature up to recent times e.g. Siri. Some of these creatures had (physical) bodies and we think of those as robots, while some of them were disembodied (spiritual) beings and we think of those as virtual agents. Some of these imagined creatures were fanciful and intended as allegories. Some were futuristic and plausible extensions of the science of the times. Some were ambitious visions of actual plans to build such creatures.
In a sense the old fortune-telling machines where you put in the coin and the mechanical fortuneteller passes you a card was probably one of the earliest things you could call a "chatbot". Functionally equivalent to the magic eight ball that we have all played with: ask a question, turn the ball upside down, and get an answer. When referred to a chatbot I do so in an entertainment sense. Its sole purpose is just to engage you. In fact that's the premise of the famous Turing test. It doesn't do anything in particular except to goad you into continuing the conversation.
When Alan Turing thought up his famous test the computers of the time were not powerful enough to implement even a simplistic version of his test. But, by the early 1960s time-sharing and remote terminals made it possible for real-time one-on-one interaction with the program. Around 1965 Joseph Weizenbaum at MIT wrote a small program that simulated a Rogerian psychotherapist. Most of you will have heard of ELIZA. Scanned the input from the user (patient) against a list of keywords (hate, afraid, mother, love, pain, etc.) and it would reassemble the user input into responses a psychoanalyst might make. For example:
Human: I'm afraid of the dark.
ELIZA: Why do you think you are afraid of the dark?
While it was intended to be a fun parody of a psychotherapist it turned out, quite surprisingly toWeizenbaum, that a significant number (30% or so) were under the impression that they were interacting with an actual psychotherapist who had some insight into their problems. So, with that level of acceptance (or at least level of suspension of disbelief) the current field of human computer conversation the natural language began. Also, during the 1960s the beginnings of speech technologies are found. Working, albeit primitive, versions of speech recognition and speech synthesis were being demonstrated in the lab. These and other technologies I will delve into in future articles.
Note: All those clever responses that Siri makes to user input such as "will you marry me" or "what's the best smart phone" use the same techniques ELIZA did back in the 1960s. Actually, in some ways ELIZA was more talented than Siri because she was aware of context. We will definitely talk more about that later. :-)