1. A computer implemented method comprising: a) receiving by a computer comprising a processor and a memory a set of original templates and storing the set of original templates in the memory; b) accessing by a computer a set of databases comprising a large corpus of documents and searching by a search engine the set of databases based on the set of original templates; c) identifying by the search engine a set of candidate sentences from a set of documents in the corpus by using a similarity measure to determine a similarity score, wherein the similarity measure comprises extracting a first set of tokens from at least one template from the set of original templates and extracting a second set of tokens from at least one candidate sentence from the set of candidate sentences, the first set of tokens and the second set of tokens each comprising a set of token-level 1 to token-level n grams, and further comprises comparing the extracted first set of tokens with the extracted second set of tokens by determining a first value representing an intersection of the extracted first and second sets of tokens, and dividing that first value by a second value derived by applying a minimum function to the extracted first and second sets of tokens to determine the similarity score; d) automatically eliminating candidate sentences from the set of candidate sentences based upon a similarity score threshold to arrive at a reduced set of candidate sentences determined to be syntactically similar to the at least one template; and e) processing the reduced set of candidate sentences to generate a set of natural language generation templates that, when processed by a computer and combined with a set of determined words or phrases, generate natural language text.