Machine learning is used to perform all kinds of work that helps save humans a lot of time. It's at the hub of data management, analytics, business intelligence, and is even gaining traction in application development. Basically, any manual task, or analytical process that can be automated is getting attention by machine learning solutions. But there's a surprising thing it's not good at.
Machine learning isn't a silver bullet. There are times human logic is more elegant and effective.
In the world of intelligent document processing, machine learning is certainly the answer for content classification. It makes it possible for algorithms to perform accurate abstraction of all types of data. But there's one document type that goes by a different set of rules.
When Machine Learning Takes a Seat on the Bench
There's a surprising use-case where machine learning isn't the best bet. And that's with check processing. In this article, we break down the steps needed to accurately extract information contained on a check - elegantly, efficiently, and quickly - with human logic (no thanks, A.I.).
A check presents an interesting problem for machine reading. Take a look at a check:
Count the different types of information. What did you come up with?
- Background image / border
- Payee information
- Check number
- Pay to the order of
- Amount of check (twice)
- Bank information
- Memo field
- Account number
- Routing number
So, there are really 12 elements (more if you count bad check images from poor capture!) that must be handled to extract accurate data from a check.
Check Processing without Machine Learning
Step One - Prepare for Optical Character Recognition (OCR)
This is where the check image itself is worked on. Image processing tools will be used to do things like correcting problems resulting from scanning, and removing all non-text elements (except for handwriting!).
Step Two - OCR Without Machine Learning
For this step, multiple OCR engines are needed. One engine will process handwriting, another will process the weird account / routing number text (MICR font), and another will process the more traditional fonts on the check.
Step Three - Logic (not Machine Learning)
Pattern matching to the rescue! Because OCR is never 100% correct, logic is used to verify and format collected information from Step Two. Using regular expressions for pattern matching, all needed information is quickly corrected and collected. No need for machine learning because in this case, logic is king.
This is a good example of the challenges and problem-solving required in data science. With all the tools and techniques available, the best approach might not be the shiniest new technology.
If you're a curious person and want a deeper dive into how we built an end-to-end check processing solution in just 45 minutes, take a look at the video linked below: