Lex selects one intent for any one-word utterance that doesn't match a valid utterance
For a few months, my team has been working on a Lex-based chatbot that's attached to a marketing website. The bot has a total of 32 intents that handle over 300 utterances right now. In an effort to reduce utterances that invoke error handling responses (and to make the bot more useful and friendly), we've implemented 3 intents in the following order over time:
1) a "Thank You" intent: responds with "you're welcome"-type messages when a user types some variant of "thank you".
2) a "No Answer Available" intent to handle known utterances (from our usability and internal user testing) that the bot isn't currently designed to answer, but that we want to refer the user to a human chat agent (e.g. "I don't have an answer for that, but type 'transfer' to talk to one of our human agents who can help."). This intent currently has the largest set of utterances in the bot.
3) a "No Response" intent that "eats" a small number of utterances from the user that don't really require a response and would probably go to error handling other wise and make the bot look dumb, e.g. "you're welcome", "ok, got it", "cool", "k" etc. IOW, it doesn't return any response for these to the user.
Until we implemented #3 (maybe coincidental?), if a user typed 1 or more nonsense words to the bot, it properly triggered error handling. After implementing #3, a single, alpha-only word of apparently any length that doesn't match a valid utterance is now triggering the "Thank you" intent.
Screenshot: bot says "you're welcome" to a nonsense word
Note that 2 nonsense words triggers the expected error handling messages. Also, single strings that contain symbols or numbers also trigger error handling as expected. Interestingly (and unexpectedly), text-based emoticons typed in the usual direction, e.g. :-) or :) or ;-) also trigger the "thank you" intent, but if you type them in the reverse direction, e.g. (-: they trigger error handling.
Additionally, 2 other intents handle a number of single-word utterances:
1) A "signoff" intent that handles words like: bye, goodbye, later, exit, quit, etc.
2) A "hello" intent that responds to: hi, hello, hey, what's up, what's happening, etc.
So the "Thank you" intent has neither the largest number of utterances in the bot nor the largest number of 1-word utterances (just "thanks", actually) both which I have seen in various forums as reasons why a Lex intent would attract incorrect utterances.
I've tried searching for answers on this phrasing the question any way I can think of and haven't found anything.
So, though it's not a product show-stopper, it's making me a little crazy, and I thought I'd post here to see if anyone has run into anything like this in their Amazon Lex journeys and had any ideas.