Patent ID: 7761286

Claim:
A method of text processing, comprising the steps of: a) selecting a language; b) receiving at least one primary element, where each primary element includes at least one sub-textual unit; c) selecting one primary element on a computing device; d) identifying at least one unit number associated with a data unit having a secondary element matching the primary element, wherein the data unit includes a plurality of secondary elements; e) if no data unit is identified in step (d), comparing the primary element to a prefix list; f) if no match is made in steps (d) or (e), then: i) setting n equal to the total number of sub-textual units in the selected element and setting s equal to n; ii) setting a test-suffix equal to the rightmost s sub-textual units in the selected element and setting prefix equal to n−s leftmost sub-textual units in the selected element; iii) comparing the prefix to the prefix list and a plurality of data units, wherein each data unit includes a plurality of secondary elements; iv) comparing the test-suffix to a suffix list and to the data units; v) if no match is made in step (iii) or (iv) then setting s equal to s−1 and returning to step (ii); and vi) identifying at least one unit number associated with a data unit having a secondary element matching the prefix or test-suffix of the primary element, wherein the data unit includes a plurality of secondary elements; g) if there are any unprocessed primary elements, selecting an unprocessed primary element and returning to step (d); h) selecting a primary element; i) selecting a unit number identified with the primary element; j) if there are any primary elements not selected, selecting a primary element not previously selected and returning to step (h); k) comparing the data units associated with each of the unit numbers selected in step (i) with at least one database index of a database; l) outputting the results of step (k); m) if any primary element has a plurality of unit numbers identified with it proceeding to step (n), otherwise stopping; n) for each primary element having a plurality of unit numbers identified with it, and having at least one unit number not previously selected, selecting a unit number not previously selected, otherwise selecting a unit number identified with each other element; o) comparing the data units associated with each of the unit numbers selected in step (n) with at least one database index; p) outputting the results of step (o); and q) if any primary element has a unit number identified with it that has not been selected, returning to step (n), otherwise stopping.