# Intelligent Keyword Classifier

> `UiPath.IntelligentOCR.Activities.DocumentClassification.IntelligentKeywordClassifier`

`UiPath.IntelligentOCR.Activities.DocumentClassification.IntelligentKeywordClassifier`

## Description

This activity enables any user to classify and split document packages into individual document types. You can only use it together with the [Classify Document Scope](https://docs.uipath.com/activities/other/latest/document-understanding/classify-document-scope) activity.

## Project compatibility

**Windows-Legacy | Windows**

## Configuration

#### Designer panel

* **LearningFilePath** - The full path to the file containing the classifier data. This field supports only strings and `String` variables.
  :::note
  Only one of the above parameters can be set at a time. You can use either the **LearningData** string or the **LearningFilePath** string.

  The **LearningFilePath** specifies the locations from where to retrieve the classifier data.

  The **LearningData** contains the actual information of that classifier.
  :::
* **Endpoint** - The URL to UiPath® server. By default, the endpoint is `https://du.uipath.com/svc/intelligentkeywords`. For more information about endpoints, visit [Document Understanding Public Endpoints](https://docs.uipath.com/document-understanding/docs/public-endpoints).
* **ApiKey** - Specifies the API key of the account. The API Key field is automatically pre-populated if defined in local project settings or in the Document Understanding framework.

#### Properties panel

**Common**
* **DisplayName** - The display name of the activity.

**Input**
* **ApiKey** - Specifies the API key of the account. The API Key field is automatically pre-populated if defined in local project settings or in the Document Understanding framework.
* **Endpoint** - The URL to UiPath® server. By default, the endpoint is `https://du.uipath.com/svc/intelligentkeywords`. For more information about endpoints, visit [Document Understanding Public Endpoints](https://docs.uipath.com/document-understanding/docs/public-endpoints).
* **LearningData** - The string containing the serialized classifier data. This field supports only strings and `String` variables.
* **LearningFilePath** - The full path to the file containing the classifier data. This field supports only strings and `String` variables.
  :::note
  Only one of the above parameters can be set at a time. You can use either the **LearningData** string or the **LearningFilePath** string.

  The **LearningFilePath** specifies the locations from where to retrieve the classifier data.

  The **LearningData** contains the actual information of that classifier.
  :::
* **Send documents** - When enabled, it allows UiPath® to save the referenced document to improve the algorithm performance. Disabling this feature prevents UiPath® from storing the documents. Regardless of this setting, the algorithm's operation remains unaffected.

**Misc**
* **Private** - If selected, the values of variables and arguments are no longer logged at Verbose level.
  :::note
  The best practice is to create an **empty** `.json` file at that location, then use its name in the **LearningFilePath** field.
  :::

**Splitting**
* **PerformDocumentSplitting** - If left unchecked, the model will not perform document splitting, only classification.
* **UsePageNumbers** - If checked, the mode will use the page numbers feature to decide where to split documents. Use it in case page numbers might improve splitting results.

:::note
For optimized splitting performance, use version 6.9.0 or higher.
:::

## Using the Manage Learning Wizard

Access the **Manage Learning** wizard to configure the **Intelligent Keyword Classifier** activity. The same wizard can be used for reviewing data collected during the document classification training phase, by opening the same wizard with an updated learning file path.

This wizard allows you to configure and manage the training data used by the **Intelligent Keyword Classifier** activity for identifying the document type and classifying the documents. It was created to suit the need for editing a file path. If a **Learning Data** option with a variable is used instead, then you are asked if you either want to edit a specific file path or to abort this operation.

:::note
The **Manage Learning** wizard only works when the activity is configured with a **Learning File Path** string. It does not work with a **Learning File Path** set as a variable input, or with a **LearningData** string input.
:::

1. Add an **Intelligent Keyword Classifier** or [Intelligent Keyword Classifier Trainer](https://docs.uipath.com/activities/other/latest/document-understanding/intelligent-keyword-classifier-trainer) activity to your workflow.
2. Configure your **Intelligent Keyword Classifier** activity by adding the path of a `.json` file. Take the following information into consideration, when configuring the classifier:
   * If no path is provided and the **Manage Learning** option is selected, then a pop-up is displayed, asking for a **Learning File Path** input. Once the path is provided, the wizard opens.
   * A variable can be added instead of a `.json` file, but, because the wizard cannot apply the learning pattern to a **LearningData** variable, it asks for a specific file path that can be edited.
3. Select **Manage Learning**.

   The **Intelligent Keyword Classifier** wizard window opens.

   Figure 1. Overview of the Manage Learning section of the Intelligent Keyword Classifier wizard

   ![Overview of the Manage Learning section of the Intelligent Keyword Classifier wizard](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-overview-of-the-manage-learning-section-of-the-intelligent-keyword-classifie-3ff6da52-db8bd8f4.webp)
4. If no path is provided and the **Manage Learning** option is selected, then a pop-up is displayed, asking for a **LearningFilePath**. Once the path is provided, the wizard opens.

   Figure 2. The Warning pop-up displayed if no path is provided and the Manage Learning option is selected

   ![The Warning pop-up displayed if no path is provided and the Manage Learning option is selected](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-the-warning-pop-up-displayed-if-no-path-is-provided-and-the-manage-learning--7d64030d-998172a6.webp)

   :::note
   Even if no `.json` file is available, you can add the name of a new `.json` file straight into the activity and the `.json` file is automatically created inside the specified folder.
   :::

In the **Manage Learning** wizard you can see if a document type has been trained or not by the following labels displayed next to them: **Trained on X files**, or **Start Training**. The following screenshot shows a document type that has been trained, one that hasn't, and one that has been trained, and selected, so it can be viewed or deleted.

Figure 3. Document types and their training status within the Manage Learning section of the Intelligent Keyword Classifier

![Document types and their training status within the Manage Learning section of the Intelligent Keyword Classifier](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-document-types-and-their-training-status-within-the-manage-learning-section--437f7d19-79bce1c5.webp)

## Training data

For document types that have not been trained yet, design-time training can be performed using the **Start Training** option. For document types that already have some training, you can either delete it to start over, by using the ![remove](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-remove-deleteIKC-cc82b110-7a118f13.jpg) remove option, or perform extra training (cumulative to the already existing one) using the edit ![edit](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-edit-editIKC-5f40640a-6fb4301a.jpg) option.

:::note
Training files to be used must contain a single document type instance per file. Do not run design-time training on files that contain two or more document types, as your training data will be erroneous.
:::

Once a new training has been initiated, a new screen is displayed asking for the training files and the OCR engine that should be used. The default OCR engine is **UiPath® Document OCR**. Each OCR engine comes with its own set of custom options.

Figure 4. The wizard that appears after selecting Start Training option

![The wizard that appears after selecting Start Training option](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-the-wizard-that-appears-after-selecting-start-training-option-178876-f7bdff4e-fd3d1fe2.gif)

:::note
The following OCR engines do not support rotated documents and should not be used to process such documents:
* **Microsoft OCR**
* **Tesseract OCR**
:::

The **Apply OCR on PDF** option establishes if the OCR process should be applied or not to PDF documents. Three options are available in the dropdown list:

* **True**: If set to **True**, the OCR is applied to all PDF pages of the document.
* **False**: If set to **False**, only digitally typed text is extracted.
* **Auto**: The default value is **Auto**, determining if the document requires to apply the OCR algorithm depending on the input document.

:::note
If the UiPath.IntelligentOCR.Activities package has been updated to v5.1.0, then the **ForceApplyOCR** parameter has been replaced with the **ApplyOcrOnPDF**. Here is the compatibility between the old and new parameters:
* **ForceApplyOCR** = **True** is replaced by **ApplyOcrOnPDF** =
**Yes**
* **ForceApplyOCR** = **False** is replaced by **ApplyOcrOnPDF**
= **Auto**
* **ForceApplyOCR** = empty is replaced by **ApplyOcrOnPDF** =
**Auto**
* **ForceApplyOCR** = Your defined variable is replaced by
**ApplyOcrOnPDF** = **Auto**
:::

## Exporting training data

Only training data from document types that have been trained is eligible for export. Document types that have not been trained cannot be selected.

Figure 5. Document types in the Intelligent Keyword Classifier which have not been trained, hence the Export option is not available

![Document types in the Intelligent Keyword Classifier which have not been trained, hence the Export option is not available](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-document-types-in-the-intelligent-keyword-classifier-which-have-not-been-train-1e6ad8de-1bc04612.gif)

You can export training data following these steps:

1. Select document types that have been trained.
2. Select **Export**.

   If you have unsaved changes, the following message is displayed: "You cannot export while having unsaved changes. Do you want to automatically save before expoerting?". Select **Yes** to continue the exporting process.

   Figure 6. The Save changes message that shows if you have any unsaved changes before exporting training data

   ![The Save changes message that shows if you have any unsaved changes before exporting training data](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-the-save-changes-message-that-shows-if-you-have-any-unsaved-changes-before-e-628f025e-add8aefe.webp)
3. Save the training data archive with the desired name.

   A message is displayed stating how many document type training data sets were exported. For example: "4 word vector(s) exported".

   Figure 7. Example of the message that displays how many document type training data sets were exported

   ![Example of the message that displays how many document type training data sets were exported](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-example-of-the-message-that-displays-how-many-document-type-training-data-se-9c121d6a-eb410648.webp)
4. Select **OK** to return to the main screen of the wizard.

## Importing training data

You can import training data following these steps:

1. Select **Import**.
2. Select the training data archive and then select **Open**.
3. Select the document types you want.

   Figure 8. Selected document types in the Import Word Vectors section

   ![Selected document types in the Import Word Vectors section](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-selected-document-types-in-the-import-word-vectors-section-178384-28873c85-09030f4a.webp)
4. Select **Import**.

   The training data is imported.

   Figure 9. The previously selected document types for importing are displayed in the Manage Learning section

   ![The previously selected document types for importing are displayed in the Manage Learning section](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-the-previously-selected-document-types-for-importing-are-displayed-in-the-ma-4074ad20-3d16871a.webp)

The following table shows the messages that are displayed when importing training data, based on the import type:

Table 1. The messages that are displayed for various import types

|  | **Message displayed** |
| --- | --- |
| **New Document Type and Word Vectors** | This document type will be added to the taxonomy. |
| **New Word Vector (none was previously defined)** | No message is displayed. |
| **Identical Document Type and Word Vector** | The word vector for this document type will be overwritten. |

## Document Understanding Integration

The **Intelligent Keyword Classifier** activity is part of the Document Understanding solutions. Visit the [Document Understanding Guide](https://docs.uipath.com/document-understanding/docs/document-classification) for more information.
