# NLP training

{% hint style="info" %}
This feature is currently available to enterprise tiers only.
{% endhint %}

### What's Training?

Training lists all user utterances that triggered an application's [*Unknown* default behavior](https://docs.nlx.ai/platform/nlx-platform-guide/ai-applications/types/core) because a user's intent, and therefore an appropriate flow, could not be identified. Training allows you to add unknown user messages to existing training data, refine existing training data to better adapt to user language, or to identify possible actions or flows your users require.

To access, click *Training* in your workspace menu:

{% @arcade/embed flowId="G6JUavItIJD9TWzm8Pz8" url="<https://app.arcade.software/share/G6JUavItIJD9TWzm8Pz8>" %}

## *Unknown messages*

The *Unknown* tab lists all utterances from users where intent was unrecognized and unable to be matched to a flow, thus invoking the *Unknown* default flow from your application.

<figure><img src="https://2737319166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHCxYxhIU0Bqkjj942mGk%2Fuploads%2FTMyG9PkMrRGf3oLCGk01%2FTraining_Documentation_Unknown%20messages.png?alt=media&#x26;token=9599c767-a5e8-41eb-b4ac-37ba3188e2f0" alt=""><figcaption><p>Table of Unknown messages</p></figcaption></figure>

Unknown messages are organized by the following:

* *Text*: The user input or utterance
* *Sent*: Date the input or utterance was made
* *Confidence score*: The confidence level of the NLP in matching the user's utterance
* Flow: The flow that the NLP routed the user to
* *Trained flow*: If trained, displays the flow the user input was added to

{% hint style="info" %}
Unknown messages remain in the list, even if training has occurred. [Trained messages](#flow-recognition-training) appear with information under the *Trained flow* column.
{% endhint %}

## *Clusters*

*Clusters* group user utterances semantically, providing you with a visual presentation of key topics commonly queried by your users. They can provide insight into the needs of users as well as opportunities for automation:

{% @arcade/embed flowId="I9qABFIjkeCCV0qoEOrm" url="<https://app.arcade.software/share/I9qABFIjkeCCV0qoEOrm>" %}

Toggle between *Table* or *Map* view to change the visual presentation of captured clusters. *Clusters* provide the following information:

* *Label*: The semantic description provided to the cluster group (can be renamed by typing in the Label field in *Table* view)
* *Phrases*: The number of user inputs (with total percentage) that comprise the cluster
* *Unknowns*: The number of times the user input triggered the application's *Unknown* default
* *Flows*: The number of flows where user inputs matching the semantic cluster appeared
* *Subclusters* (only visible in *Table* view): The number of individual sub groups that comprise the cluster. Expand each cluster row to view

Hover over a row and select the expand icon (in *Table* view) or select the card (in *Map* view) to view advanced details, including all flows and timestamp of phrases.&#x20;

{% hint style="info" %}
Notice associations between clusters? Easily merge clusters that you'd like grouped together. Simply select each cluster and choose the *Merge* option.
{% endhint %}

## Filters

You may use any filter to narrow the results by *Application*, *Flow*, *Region*, *Language*, *Start* & *End times*, *Channel*, exact text (*Search*), and/or *Confidence score*. Results automatically update as filters are applied.

<figure><img src="https://2737319166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHCxYxhIU0Bqkjj942mGk%2Fuploads%2Fbv0M6UvSUHol0AXpU0qo%2FTraining_Documentation_Filters.png?alt=media&#x26;token=269c33e7-5d49-4df5-8e9f-0ddbed0a642d" alt=""><figcaption><p>Filter fields of <em>Training</em> table</p></figcaption></figure>

## Flow recognition training

You may easily add an unknown user utterance as a training phrase to better train your application's AI model(s) when identifying user intent and matching to the correct flow.

* Select *Training* from workspace menu > Click the checkbox to the right of the message you wish to train
* Choose *Train flow* link. You can select as many items as you'd like, but they will all be added to the same flow's training data
* Select a flow from the dropdown
* Select/deselect language(s) associated with the chosen flow
* Enter any phrase adjustments to alter the inputs (messages will otherwise be added to a flow's list of *Training phrases* as they appear)
* Click *Confirm*

Trained messages remain with information under the *Trained flow* column and as part of a flow's [*Training phrases*](https://docs.nlx.ai/platform/nlx-platform-guide/overview/setup#training-phrases).

{% hint style="info" %}
Be sure to create a [new build and re-deploy](https://docs.nlx.ai/platform/nlx-platform-guide/ai-applications/types/core#deployment) your application to experience any changes.
{% endhint %}
