Skip to content

Topics skill

Extract predefined topics from messages that trigger unknown.

Overview

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:

Topics in content section

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.

Topic editing

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 sales.

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.