333 ways to ask for a joke
The fascinating thing about language is its staggering diversity, which shows up where you would least expect it. For example, the Oxford Dictionaries blog lists 22 ways to say “yes” in English , including expected words like “yes” and “OK”, and less common variants like “10-4”, “righto”, and “fo’shizzle”. This kind of diversity is interesting if you are a linguist and perhaps a bit confusing if you are trying to learn a foreign language. However, in the business of artificial intelligence and natural language interaction, such diversity is a major headache.
Natural language interaction systems, such as those created with Artificial Solutions’ Teneo Platform, are at their most basic a way to match an input from a user with an appropriate answer. However, to pick the correct response, the system must recognize a dizzying array of different ways of saying the same thing. To complicate matters further, words are hardly ever used in isolation. This means that a natural language interaction system must understand not only variants of words but also combinations of variants.
To take an example, Artificial Solutions’ personal smartphone assistant Indigo can tell jokes. The basic request is simple enough, along the lines of “please tell me joke”. However, there are at over 20 synonyms of “joke”, including “anecdote”, “funny story”, and “amusing story”. Then there are the variations in the phrase “please tell me”, which combine with joke synonyms in different ways. Overall, if we count all the possible variants and combinations, we find that Indigo understands at least 333 different ways to ask for a joke!
Clearly, coding all these variants by hand to capture a single intent (“please tell me a joke”) isn’t very effective. At Artificial Solutions we have solved this problem by means of language objects, modular collections of words and phrases, organized in libraries. These language objects build on each other going all the way from single words via groups of synonyms, up to complete phrases.
Artificial Solutions’ development platform Teneo Studio can automatically pick which of these combinations are best suited to cover the necessary variation based on example inputs such as “please tell me a joke”, “give me a funny story”, or “make me laugh”. Thanks to the work that has gone into building these language object libraries, Teneo Studio automatically works out how to best generalize from the example inputs, based on the available language objects. Thanks to these powerful features, Teneo Studio makes it easy to capture all the relevant variation.
Capturing all the variation and combinations that are relevant for understanding the user’s intent is a hard problem, but the power of Teneo Studio presents a straightforward solution, and that’s no joke.