I am new to machine learning and data science. I apologise if the question seems very basic. I have a requirement where I need to verify information submitted via a form with the corresponding official document. My approach till now has been to use google vision to extract text and use regex to extract necessary fields and compare with the form information. This is not always reliable because of the image quality and vision captures the noise as well.

Previously, I was thinking of just comparing each data file and search it in the text extracted and provide a metric of certainty.

I talked to one of my colleagues and he suggested using some for of supervised learning algorithm to process the documents, so that they automatically extract the key fields.

I want to ask would this method be simpler than my current approach. I am also worried about the scalability of my approach in event of minor changes in document formats.

I am looking for links for some articles or books related to this and answer to why using my own model will be better than just searching each word in a text.

Edit: The data can be imagined as a visiting card which contains the name of person, his office address, his contact number and the company's name. The problem here is different visiting cards can have different formats. Moreover the information is repeated twice: Once in English and the second in another language. For example , NAME : JANE DOE is followed by नाम : जेन डोए in next line. I only need the English name. The number of formats are constant but are high. Moreover, the address is not read together by Google Vision in most cases and using regex can become too complicated and case specific. I need to verify employee identity cards as proof that they are working for the company they claim to.

  • $\begingroup$ If you want to be adaptive about document formats, your current method is likely to succeed nicely. I would also choose to give a probability for each attribute/line: How likely is it, that the data in the form is represented in the document? Meaning, if your vision module gives you text output, not only compare it with the form, but calculate differences in the form of the edit distance. If the distance is below a threshold, accept the form anyways. That's how I would approach the problem. $\endgroup$
    – André
    Sep 4, 2018 at 7:58
  • $\begingroup$ How do I compare the distance between two lines? Because I get a text dump which will not work well with edit distance because I will be comparing a name to the whole text dump. I am thinking of some score based on the number of elements found. For example, I have to match the address in the document and in the form. Do you have any ideas on how to go about it? $\endgroup$ Sep 5, 2018 at 8:28
  • $\begingroup$ I don't think it's a good idea to simply search the document for keys without any semantics. Assume someone is called Miller and lives in Baker's street and a different person is called Baker and lives in Miller's street. Both could use the same document, if we do not take semantics into account. Can you elaborate more on how your data looks and what the exact problems of your current systems are? Maybe edit your question to include an example - this would make it easier to give concrete suggestions. :) $\endgroup$
    – André
    Sep 5, 2018 at 10:54
  • 1
    $\begingroup$ I have update the question with an example of a document. It is a verification system to verify the identity of the user. $\endgroup$ Sep 5, 2018 at 12:36
  • 1
    $\begingroup$ step 1: get a degree in computer vision $\endgroup$ Sep 5, 2018 at 19:51

1 Answer 1


Please refer the below link which is related to Machine learning in document analysis and recognition.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.