I’ll ask the question first, and then expand:
Is it possible to use conversation state to guide NLU?
As an example, let’s say I’m building a pizza ordering bot. I’ve got the pizza details and now need to get the customer’s address: so the bot asks
what's your postcode? (postcode == zip code)
The user is most likely to give a context-free response, e.g.
W1A 4WW. However, getting NLU to successfully recognise the phrase and do entity extraction on one word utterances is hard (see this question). It usually needs some context from the user, e.g.
my postcode is W1A 4WW. But it’s unrealistic to expect users to enter that extra context.
I assume this is largely down to NLU being independent of conversation state: i.e. it doesn’t know the story context. So interpreting single word answers is difficult. Lookups can help, as can a pre-trained corpus (e.g. cities in spacy). But both are still subject to synonym misinterpretation.
It seems that conversation state is a significant predictor of subsequent intent. So if the story is expecting a postcode, then it would be valuable for that to influence nlu selection of intent. However I’m not aware that it’s possible to do this. So 3 questions:
- Is it possible to influence nlu based on story state?
- If not, I’m interested in why. Is it a technical point (difficult to do / just not implemented yet) or are there more fundamental reasons?
- Assuming it’s not possible, any further tips on successfully handling single-word responses where the word/phrase is an entity?