1. A method for generating a set of one or more elements of a fingerprint for a document, the document comprising a semantic construct having a plurality of text portions comprising one or more ordered words, the method comprising: defining a range of sizes for a fingerprint element, wherein the range of sizes comprises a minimum size and a maximum size; determining, for each text portion of the document, whether a size of the text potion is equal to or greater than the minimum size and equal to or less than the maximum size of the range of sizes for a fingerprint element; excluding one or more text portions of the document from inclusion as a mutually exclusive fingerprint element in a set of one or more mutually exclusive fingerprint elements if a size of the one or more text portions is not equal to or greater than the minimum size and is not equal to or less than the maximum size of the range of sizes for the fingerprint element; dividing the ordered words of the semantic construct into the set of one or more mutually exclusive fingerprint elements, wherein each of the one or more mutually exclusive fingerprint elements includes a number of adjacent words, the number being within the range of sizes for a fingerprint element; and comparing a first document with a second document, wherein comparing the first document with the second document comprises: generating a first set of fingerprint elements from the first document; generating a second set of fingerprint elements from the second document; and calculating a similarity index as a size of an intersect of the first set of fingerprint elements and the second set of fingerprint elements divided by a size of the first set of fingerprint elements.