1. A method of finding a text reading order in a document, the method comprising, with a processor executing instructions from a memory: determining a plurality of text zones within the document; for each text zone, generating a semantic measure of text within the text zone; and calculating a plurality of pairwise correlations between respective zone pairs; clustering the plurality of text zones into a plurality of clusters in dependence upon the plurality of pairwise correlations; and determining a separate reading order for the plurality of text zones within each respective cluster.