Reputation: 11
I'm using Bot Framework and LUIS to create a chat bot and I'm trying to resolve text back to specific types.
For instance, if the user was to say:
'My laptop screen is not turning on' Resolve this to 'Screen Issue'
or
'My keyboad is not working' Resolve this to 'Keyboard Issue'
or
'I spilt liquid on my laptop and now it won't turn on' to 'Liquid Damage'
I require a fairly high number of classifications of this manner. I thought about having separate intents for each type. i.e. Screen Issue and Keyboard Issue. However, I thought there might be a better way to do this using a single intent?
Upvotes: 1
Views: 57
Reputation: 537
Having only one intent or very limited number of intents would mean you are using LUIS only for "Entity" detection - which in turn would result into keyword detection and you would end up in having solution without NLP/semantical text analysis but paying for one.
Having multiple intents seems fine - you can have 500 intents in one Luis application.
Speaking about examples "Screen Issue" and "Keyboard Issue" - Based on our experience I would go for one intent for one template for the answer. Keywords like "screen" or "keyboard" can be detected in Luis as an entity regardless of the intent and based on them you can fill some custom "wildcards" in your custom template dedicated for the specific intent.
And last but not least don't forget to fill in the None intent with sentences that are similar but not valid examples for intents defined so far. See "The None intent is not included in the balance. That intent should contain 10% of the total utterances in the app" here.
Upvotes: 0
Reputation: 441
It depends on your other intents/use cases and how complex you want to make it. For your example, it seems like you're going to have a lot of 'issue' items. In this case I would make one "help" intent and make keyboard/screen/wifi/lan an entity list (maybe can call it Parts). Then in your code, after identifying the help intent you can look for a Part. This will save you time not having to repeat "I have an issue with {Part}" and "please help with {part}" etc for multiple intents. Only thing to note is that to make the entity list more accurate I would type out as much typos as you can in the 'synonyms' for each list item. Entity lists are quite easy to use, any match will be identified as an item from the entity
Upvotes: 0
Reputation: 7404
Definitely use multiple intents, as you described. It is the right approach.
Also consider adding as much utterances as possible, as your phrases are quite complex (12+ words).
Upvotes: 0