account_type:
type: categorical
values:
- pro
- basic
Initially, the value is None and sometimes it stays None and sometimes I set it to pro or basic. It is important in predicting dialog behavior. Does it impact Keras Policy’s predictive capability if I keep it like this vs. create another explicit category:
Thanks @kavan. In my scenario, noaccount is the same as uninitialized/None. So in the case where there are just two categorical values (pro, basic), I think it would look like:
Which seems pretty much the same as the 3 value version (let’s say ‘uninitialized’ was a category value)?
uninitialized: [0, 0, 1]
pro: [1, 0, 0]
basic: [0, 1, 0]
Keras will treat them differently in that the featurization will only see if the slot was set or not; if you need to handle noaccount differently, I’d suggest keeping those categories as in your example, as I don’t know a good way of checking if the value is not set in a story; however checking for a given value is pretty well-defined.
However, something like this would work (see here for more details):
## more well-defined behavior, since the slot takes on a value, just a null-y value you decide on
* greet
- action_fetch_profile
- slot{"account_type": "noaccount"}
- utter_some_noaccount_response
It’s worth a try though, I’m curious to see if above would work.