IQ Bot is Automation Anywhere's Intelligent Document Processing solution. IQ Bot combines the power of RPA with AI technologies like Computer Vision, Natural Language Processing (NLP), fuzzy logic, and Machine Learning (ML) to automatically extract and validated data from business documents and forms. To setup/use IQ Bot, the process can be simplified as follows:
- Create a learning instance of like documents.
- Example: Invoices
- Indicate the optional/required fields to be extracted from this type of document.
- Example: Invoice Number, Invoice Date, Amount Due, etc.
- Upload images that are representative of that type of document so that IQ Bot can be trained on your documents.
- Example: Sample invoices from a collection of your different vendors, even when the structure isn't necessarily the same.
- Send that learning instance to production so that it can be invoked during bot executions.
- Run bots in production that consume that learning instance and make use of the extracted data.
This process works great when you know what type of documents you have coming in, and you know that you can always call the correct IQ Bot learning instance to match that document type...but what happens if you don't actually know the document type? What if this inbox gets invoices, but also gets some other types of forms like Utility bills or Purchase Orders? In that case, you'd need some way to classify documents before sending them to the appropriate IQ Bot learning instance for extraction.
IQ Bot Classifier
The IQ Bot Classifier package enables RPA developers to train and consume their own machine learning classification models to accurately classify incoming documents prior to invoking IQ Bot learning instances.
Using this package, developers can use the Train Classifier action to train a custom ML classification model based on a labeled collection of their different document types.
With a minimum of only 20 samples of each type, this action enables developers to quickly create text, image, or text-and-image-based classification models that can be consumed using the Classify or Classify Document actions.
Already have a classification model that was built using the Train Classifier action and need to update it? No problem. Select Re-Train as the training type and you can improve on your existing classification model with additional document types and/or additional samples of existing document types.
To prepare for training, create a folder for all of your document samples. Inside of this folder, create sub-folders to represent all of your document types...with each folder named after the type of document you want to classify. From the configuration of the action, provide a model name, select the parent training folder path, and select an output path for your model before kicking off the training process.
Depending on how many document types/image samples you have, this may take a bit of time - but remember this is a 1-time process for model creation...and re-training only needs to happen if you are adding a new document type or you find that you have a large number of images not meeting your expected confidence thresholds and you want to improve on the existing model.
Note: These should be representative of what the bot will actually see in production - to say that if your images typically come in as emailed PDFs, use emailed PDFs here...if your images typically come through a 150dpi fax machine, use 150dpi fax machine-produced images here.
The Classify action from the IQ Bot Classifier package is where things start to become more fun. In this action, you provide the input file to classify, select your classifier (the zip or ICMF file of your created classification model), and an output directory. Additionally, you provide a confidence threshold - where you determine at what confidence level you want the action to count a classification as "correct" or not. You'll want to do plenty of testing with some sample images (ideally not the exact same images used for training) so you can see how well your model is doing at its classification.
The returned object of this action is a list of dictionaries...which admittedly is a bit unique in that I'm not aware of any standard Automation 360 packages that return advanced objects like this..though it should be said that this returned type makes sense - the input file could be a single or multi-page document. For each page, the Classify action will return a dictionary containing the File Name, Page Index, Category (the classification type), and a Confidence score of the given page. If the confidence score is above the provided confidence threshold, the page (more on this distinction later) will be placed in a subfolder of the provided output directory named after the category/classification type. If the confidence score is below the provided confidence threshold, the page will be placed in a subfolder of the provided output directory named Unclassified.
(To see an example of how to iterate through a list of dictionaries, see the video above starting at 21:45)
From here, developers can determine how they want to move forward with each type...maybe some types required no action, other types need to be sent to a specific learning instance of IQ Bot, while other types/unclassified may need to be sent through the AARI process for some human review. Pro Tip: If you include AARI tasks in this process, humans can be used to perfect/correct the classification of unclassified documents. Record the classification decisions of these operators along with the images that they classified - these files and this data can be used to re-train your model - so it's continuously improving going forward.
The Classify Document action from the IQ Bot Classifier package behaves almost identically to the Classify action with one key distinction: while Classify will classify things at a page level and break up multi-page documents accordingly, the Classify Document action is classifying at the document level - to say that multi-page documents will be classified as one as opposed to being split apart.
So which one should you use - Classify or Classify Document? It really depends on your use case. Is this a bank statement? If so, it likely makes sense to use Classify Document to keep all the pages of the statement together for processing as pages 2-5 may not make a ton of sense without page 1. Is this an invoice? If your invoices are typically only single pages, then it really doesn't matter - you could use either Classify or Classify Document and get the same result. Is this a mixed document type where learning instances have been established for each page type? If so, it probably makes the most sense to use Classify since you want those individual pages for processing, and don't expect this to be an entire document processing at once.
IQ Bot is an incredibly powerful solution for automating the extraction of data from structured and semi-structured forms. The IQ Bot Classifier package helps to turn things up a notch by enabling the self-training of powerful Machine Learning classification models to enable bots to classify incoming documents before sending them to IQ Bot's extraction step. As mentioned in the video above, as of this writing, this package is not available in Community Edition and is available as an add-on to Automation 360 Enterprise users through their Enterprise Account Manager, Partner Enablement Manager, or Customer Success Manager. For more details on the IQ Bot Classifier Package, check out the full documentation on the Automation 360 Documentation portal.