1. A machine-implemented method of detecting a plurality of types of data in a sequence of characters representing text in a human language, the method comprising: converting, by a statistical learning method executing on a processor, the sequence of characters into blocks of input text by detecting text in the sequence of characters that correspond to the plurality of types of data, each block of input text comprising text corresponding to a single one of the plurality of types of data and assigned a tag by the statistical learning method to indicate the type of data detected and assigned a numerical value by the statistical learning method representing a probability that the block of text comprises the type of data indicated by the tag; parsing, by a pattern detection method executing on a processor, the blocks of input text having a numerical value representing at least a pre-determined probability into blocks of output text, the blocks of output text comprising a block of output text directly corresponding to a block of input text and having the tag assigned by the statistical learning method to the corresponding block of input text; and decomposing, by the pattern detection method, one or more blocks of output text from a block of input text using grammatical patterns of the human language to detect text corresponding to subsets of the type of data indicated by the tag assigned by the statistical learning method, each of the one or more blocks of output text having a tag assigned by the pattern detection method to indicate the subset detected, and each of the decomposed one or more blocks of output text comprising at least one lexeme for subsequent processing by an application designed to process a lexeme having the type identified by the tag assigned by the pattern detection method.