Here is an example of the misclassification I am talking about.
I have an intent “reminder”
## intent:reminder
- remind me to [submit assignment](reminder_content) at [9 am](reminder_time)
- remind me to [check my mail](reminder_content) at [9 o clock in the morning](reminder_time)
- remind me to [go to school](reminder_content) at [10 o clock in the evening](reminder_time)
- remind me to [have lunch](reminder_content) at [12 o clock](reminder_time)
- remind me to [drink water](reminder_content) at [1900 hrs](reminder_time)
And another intent to set some device values
intent:DeviceSetValueResult
- change the [tv channel](DeviceSetValueResult_CapabilityName:CP_CHANNEL) to [golf channel](DeviceSetValueResult_TvChannelName)
- change the [station](DeviceSetValueResult_CapabilityName:CP_CHANNEL) to [tlc](DeviceSetValueResult_TvChannelName)
- change the [program](DeviceSetValueResult_CapabilityName:CP_CHANNEL) to [amc](DeviceSetValueResult_TvChannelName)
- change the [channel number](DeviceSetValueResult_CapabilityName:CP_CHANNEL) to [fox news](DeviceSetValueResult_TvChannelName)
Here are a few results from when I test the NLU using rasa shell nlu
change the tv channel to fox news
{
"intent": {
"name": "DeviceSetValueResult",
"confidence": 0.9845221042633057
},
"entities": [
{
"start": 11,
"end": 21,
"value": "CP_CHANNEL",
"entity": "DeviceSetValueResult_CapabilityName",
"confidence": 0.9042012692848238,
"extractor": "CRFEntityExtractor",
"processors": [
"EntitySynonymMapper"
]
},
{
"start": 25,
"end": 33,
"value": "fox news",
"entity": "DeviceSetValueResult_TvChannelName",
"confidence": 0.8185708036487913,
"extractor": "CRFEntityExtractor"
}
],
"intent_ranking": [
{
"name": "DeviceSetValueResult",
"confidence": 0.9845221042633057
},
{
"name": "play_music+turn_on",
"confidence": 0.00534422229975462
},
{
"name": "goodbye",
"confidence": 0.002920436905696988
},
{
"name": "play_music",
"confidence": 0.002064654603600502
},
{
"name": "turn_on",
"confidence": 0.0013101432705298066
},
{
"name": "mood_great",
"confidence": 0.0013033980503678322
},
{
"name": "greet",
"confidence": 0.0010761971352621913
},
{
"name": "deny",
"confidence": 0.0008673689444549382
},
{
"name": "affirm",
"confidence": 0.00037158536724746227
},
{
"name": "play_music+reminder",
"confidence": 0.0002198833244619891
}
],
"text": "change the tv channel to fox news"
}
Next message:
change the channel number to hbo
{
"intent": {
"name": "DeviceSetValueResult",
"confidence": 0.9459835290908813
},
"entities": [
{
"start": 11,
"end": 25,
"value": "CP_CHANNEL",
"entity": "DeviceSetValueResult_CapabilityName",
"confidence": 0.8206810267221036,
"extractor": "CRFEntityExtractor",
"processors": [
"EntitySynonymMapper"
]
},
{
"start": 29,
"end": 32,
"value": "hbo",
"entity": "reminder_content",
"confidence": 0.0,
"extractor": "CRFEntityExtractor"
}
],
"intent_ranking": [
{
"name": "DeviceSetValueResult",
"confidence": 0.9459835290908813
},
{
"name": "play_music+turn_on",
"confidence": 0.015744846314191818
},
{
"name": "goodbye",
"confidence": 0.009633923880755901
},
{
"name": "play_music",
"confidence": 0.007139007095247507
},
{
"name": "turn_on",
"confidence": 0.005111034959554672
},
{
"name": "mood_great",
"confidence": 0.0051033636555075645
},
{
"name": "greet",
"confidence": 0.0044085304252803326
},
{
"name": "deny",
"confidence": 0.0036966227926313877
},
{
"name": "affirm",
"confidence": 0.0019085295498371124
},
{
"name": "play_music+reminder",
"confidence": 0.0012706633424386382
}
],
"text": "change the channel number to hbo"
}
Next message:
change the channel number to hbo plus
{
"intent": {
"name": "DeviceSetValueResult",
"confidence": 0.9323456287384033
},
"entities": [
{
"start": 11,
"end": 25,
"value": "CP_CHANNEL",
"entity": "DeviceSetValueResult_CapabilityName",
"confidence": 0.824950568997213,
"extractor": "CRFEntityExtractor",
"processors": [
"EntitySynonymMapper"
]
},
{
"start": 29,
"end": 37,
"value": "hbo plus",
"entity": "reminder_content",
"confidence": 0.45617189246776346,
"extractor": "CRFEntityExtractor"
}
],
"intent_ranking": [
{
"name": "DeviceSetValueResult",
"confidence": 0.9323456287384033
},
{
"name": "play_music+turn_on",
"confidence": 0.019504211843013763
},
{
"name": "goodbye",
"confidence": 0.01205013133585453
},
{
"name": "play_music",
"confidence": 0.008962946012616158
},
{
"name": "turn_on",
"confidence": 0.006410704459995031
},
{
"name": "mood_great",
"confidence": 0.006364417262375355
},
{
"name": "greet",
"confidence": 0.0053586713038384914
},
{
"name": "deny",
"confidence": 0.004654101096093655
},
{
"name": "affirm",
"confidence": 0.0025136014446616173
},
{
"name": "play_music+reminder",
"confidence": 0.0018355821957811713
}
],
"text": "change the channel number to hbo plus"
}
As you can see, the first utterance is correctly parsed, but in the second and third utterances have misclassifications.
How can I improve upon this?