Extract predefined topics from messages that trigger
When a message doesn't trigger any dialogs, this skill will find out if it relates to any of the topics known to this chatbot and tag it to the conversation.
How to use¶
Go to the Topics page in the Content section of the platform:
A topic has an id, a label and matchers. In its most simple form, matchers are a collection of words that, when found in a sentence, will trigger this topic to be marked.
The matchers allow for BML to be used. BML enables you to match wider than just the given word. For instance, when 'car' is given, it will also match 'cars'. When 'be' is provided it will match all forms of the verb 'be', so 'are', 'was', etc.
The topics that are identified in a message, which can be more than one, will be tagged to this conversation. So in the above example, if someone says "I have a question about the prices", the system will set the tag
When you have set the remember toggle, it will remember these tags. Next time this user starts a conversation it will already tag this topic to this conversation.
How it works¶
When a message is not captured, it will trigger the
__unknown__ dialog, which in it's turn will invoke one of the
unknown dialogs. When this happens it would be good to know what at least the topic was of this conversation when it is a topic we expect to be in scope. This helps us provide a fallback that is less 'stupid', but at least appreciates the topic expressed.
This skill doesn't introduce any new intents or dialogs. It simply injects a task right before
__unknown__ happens called
extract_topics. This will traverse all topics to see if one or more of them can be matched in this message. If so it will set the corresponding topic tag if not already set.