Intent over entities does not work for string entity despite intent over entity

I build a dialog task that will ask (1) the acct no (numeric) (2) the acct holder name (string). In my acct holder name, I have already chosen “Intent over entity”. At the same time, I also have a FAQ question “how can I apply a card”. When I Talk to the bot in the beginning, the FAQ can be returned correctly, say “how can I apply a card”. However, in the middle of the dialog task conversation, when it prompts me to input the acct holder name after I input the acct no, I entered “how can I apply a card”, it still takes this sentence as the input of the acct holder name instead of looking up the FAQ. Do I miss any?

@wslun
What is the interruption setting you are using -
at the bot level, at the task level, and at the node level? Please review that. At the node level, ensure you have interruptions allowed if you really need it that way.

Following is some settings:

1 Like

@wslun
I am unable to replicate this.

Mange interruption setting:
image
Task:
image

Entity:
image

There is another setting - execute KG as per hold and resume settings. I tried both options.

execute as per hold and resume (it will not come back to the prompt as the setting is to switch to new task)

respond to faq and resume (it will come back to the prompt)

So, it is working as expected.

But you may try a couple of more things:

  1. Ensure the path coverage of the KG is good
  2. KG thresholds are proper.
  3. Change entity setting to ask user how to proceed (will work only with - execute KG as per hold and resume settings option) and see what is the NL analysis
    image
    If I only provide apply, due to low score it may take it as entity value and not go with KG.

    As compared to the proper KG which returns a good score and NLP system knows it has to invoke the KG and not take the input as the value.

Hope this helps.

I cannot find the “Intention Detection” for my email entity (String):

In addition, if I just ask the question (ie not in the middle of the dialog task), it can return properly with a very high score:

“definitive”: [
{
“task”: “Why apple is red”,
“primaryQuestion”: “Why apple is red”,
“faqDemystification”: {
“path”: [
“wl generic test”
]
},
“faqScore”: 100,
“state”: “configured”,
“foundVia”: “faq”,
“MessageTemplateID”: [
“mt-fb5d2bb4-f8d6-5fae-88d2-28ab30152405”
],
“MatchedQuestionID”: “625bc481cf2bcbc74fe895e6”
}

When I ask this question as the response to the entity question, you can see the score is very low

“faq”: {
“demystify”: {
“lemmatizer_used”: “WORDNET”,
“normalizedQuery”: “test1”,
“OntologyTraits”: [],
“failed_questions”: {
“path_coverage”: {
“total_failures”: 0,
“questions”: []
},
“mandatory_node”: {
“total_failures”: 0,
“paths”: []
},
“precondition_node”: {
“total_failures”: 0,
“paths”: []
}
},
“SelectedPathCount”: 1,
“ExtractedEntities”: [],
“ContextEntities”: [],
“PreConditionNodes”: [],
“filtered_questions”: {
“score”: [
[
“Why apple is red”,
0.001
]
],
“traits”: []
}
}
},
“finalResolver”: {
“ranking”: [
{
“taskId”: “dg-cfe866f1-7f3b-5498-ae19-85752662b5de”,
“intent”: “test1”,
“activityType”: “dialog”,
“state”: “configured”,
“totalScore”: 7830,
“scoring”: {
“count”: 1,
“score”: 7830,
“botid”: “st-0501d26c-4929-5c91-b78b-335f3b706b41”,
“botname”: “WL Generic Testing1”,
“activity”: “test1”,
“activityType”: 1,
“exactcount”: 1,
“labelsize”: 1,
“ignorewords”: 0,
“mask”: 1,
“words”: {
“test1”: [
“0-1”
]
},
“priority”: 10,
“mainRoles”: 0,
“sentencelength”: 1,
“sentence”: “test1”,
“maskEntity”: 1,
“firstwordmatch”: “test1”,
“details”: {
“0”: {
“1”: {
“labelword”: “test1”,
“inputwords”: {
“1”: “test1”
},
“labelindex”: 1,
“wordindex”: [
1
],
“foundexact”: true,
“bestwordindex”: 1,
“scoringRole”: 0,
“role”: 0,
“pos”: 2147483648,
“ageLevel”: 5,
“commonness”: 0
}
}
},
“ageLevel”: 5,
“foundFmEngine”: true,
“scoreBreakdown”: {
“wordMatch”: 250,
“exactWords”: 30,
“coverage”: 2000,
“sentenceBonus”: 4000,
“positionBonus”: 1000,
“orderBonus”: 0,
“spreadBonus”: 0,
“phraseJoinPenalty”: 0,
“roleBonus”: 0,
“faqQuestionBonus”: 0,
“mlMatchBonus”: 0,
“tasktypeBonus”: 50,
“matchBonus”: 500,
“sentenceMatches”: [
0
]
},
“matchType”: “definite”,
“csMatch”: true
},
“identifyingEngines”: {
“fm”: true
},
“csMatch”: true,
“intentMatchVia”: “wordMatch”
}
],

@wslun
Which version of the Kore.ai platform are you using? Is this an on premise set up?

MOre specific, 9.2.2

It is the cloud version (free edition for now first)

Hello @sunny.lun ,

Intent detection is when a particular utterance provided by user, detects an intent from among the available tasks and KGs. In general that input will be some text string, or sentence.

From your usecase, the input is taken as the entity value for a string node- which does not have any conditions for validating the input. It is within the expected behavioral scope.

Now, if we want to ensure that for any utterance intent is given precedence, the steps have already been shared with you. Along with ‘Intent detection’ we also need to configure the ‘Interruption Handling’ settings as needed for the usecase.

Now, the reason you do not see ‘Intent detection’ section for email entity (and some others) is due to the type of entity node it is. An email cannot be an utterance for intent detection, same with some other type of entities such as number, city etc…

Hope this clarifies your confusion. Let us know if the issue still persists.