1. A system to process at least one document image comprising a plurality of text rows and a plurality of characters, each text row having at least one character, the system comprising: at least one processor; and a plurality of modules to execute on the at least one processor, the modules comprising: a character block creator to create character blocks for the characters in the text rows and to determine positions of alignments of the character blocks; a classification system to determine columns for the alignments of the character blocks at the positions of the alignments, each text row having a physical structure defined by the columns of the alignments of the character blocks in that text row, and to determine one or more classes for the text rows based on the physical structures of the text rows as defined by the columns of the character blocks in each text row, each class comprising one or more particular text rows having a similar physical structure; and a pattern matching system to: determine a corresponding binary average row for each of the one or more classes, wherein each corresponding binary average row comprises binary values specifying whether a particular column position in the corresponding binary average row comprises a character block or a white space; determine an average row vector for each class based on the corresponding binary average row, wherein each average row vector correspond to one particular class; interpolate the average row vector for the each class to generate corresponding interpolation vector data; determine a correlation value between the corresponding interpolation vector data for at least two selected classes of text rows; compare the correlation value to a threshold correlation value; group the at least two selected classes of text rows into a first combined class when the correlation value is greater than the threshold correlation value; determine a distance between the corresponding binary average rows for the at least two selected classes when the correlation value is less than the threshold correlation value; compare the distance to a threshold distance; and group the at least two selected classes of text rows into the first combined class when the distance is less than the threshold distance.