1. A computing device implemented method for analyzing a document, the method comprising: receiving a document; partitioning the document into a plurality of segments using a set of pre-defined attributes; mapping the plurality of segments of the document with corresponding segments of at least one template selected from a set of stored templates; computing a set of scores using a set of pre-defined criteria, in response to the mapping; analyzing the document based on the computed set of scores; identifying a high rank score from the set of computed scores; comparing the high rank score with a pre-defined score threshold; and if the high rank score is greater than or equal to the pre-defined score threshold: generating a first set of templates having corresponding computed scores greater than or equal to the pre-defined score threshold, from the set of stored templates in response to the computed scores; presenting the first set of templates to a user in response to the computed set of scores; displaying the set of computed scores to the user using a user interface; displaying the plurality of segments of the document and the corresponding segments of at least one template from the first set of templates using the user interface; displaying segments of at least one of the document or at least one template from the first set of templates having no corresponding match using the user interface; and updating the set of stored templates using the document.