The customer needed a fast and efficient solution to blacken out (redact) particular numbers on business statements they were processing. Doing this manually with a human is repetitive and prone to human erros. The cost per document to perform this process is also high when a person is paid for this work, and no person wants to do it long term. Enter A.I.!
The Artificial Intelligence Solution:
Working with the client, we mapped out the possible input formats for the numbers that needed to be removed, considering the various ways they could be read and entered into a database. We established an initial target reading and processing rate of 10 pdf pages per minute, and then outlined the various output possibilities. To help teach the machine over time, a dashboard user interface was created as part of the solution with permission levels which allowed for an admin level user to verify the success or failure of the redacted document. The admin could download the before and after document from the dashboard and compare and then accept or reject, adding additional data points from which the machine can evaluate and learn. The finished dashboard is displayed below.
As always, we aimed to deliver a self-contained solution, allowing the client admin to install the application with minimal configuration requirements just necessary to install the Google service used.
- Performance: process 10 pdf pages per minute minimum & ability to load large pdf files
- Security: the documents remain encrypted at rest and through all stages of processing
- Installation: self-contained set up with minimal configuration requirements, Ruby Gem preferred
- Language: prefer Ruby on Rails
- Admin User Interface: used to upload, view status, and reject/ approve manually
Capturing these requirements, the solution was a combination of a self contained Ruby Gem including artificial intelligence algorithms, and the Google Cloud Vision API. Google Cloud Vision API allows for the use of powerful machine learning models via a simple REST API. The service is able to find and read specific words contained within images, making it the perfect solution for the particular number reading requirements we were seeking with this project.
The Ruby code extracts the needed meta data for artificial intelligence processing at the Google API, and then blackens out the returned meta information via an image library. The process then calculates a confidence score based on machine learning techniques resulting in a suggestion of true or false as shown in the dashboard above. Lastly, the resulting document is stored as an encrypted binary blob.
One additional level of complexity includes parallel process handling for large documents. When a large pdf is loaded into the system, the dashboard displays this file under a section titled “in process,” as it is handled until the parallel processing recombines the document and uploads the completed file to blob storage.
Overall, the project utilizes a number of artificial intelligence processes to review and remove numbers from documents, create a real time status report of the documents, and decrease the cost and human associated errors with such a repetitive job. This is definitely a perfect use of robot brain power!