1. A computer-executable method of diacritizing a text, the method comprising: storing a Hidden Markov Model in computer memory for establishing a probability for associating a given diacritical mark with a given character of the text; inputting a sequence of individual characters of the text into a computer processor, the computer processor programmed for: analyzing the text to determine whether the text requires at least one diacritical mark, the text including a plurality of characters associated with an Arabic language; converting each character to an ASCII code; feeding each ASCII code in sequence to the Hidden Markov Model; applying an expectation-maximization process to each ASCII code starting at one end of the sequence; transitioning from one diacritical mark to another diacritical mark from a set of diacritical marks for each ASCII code; recording a probability for each diacritical mark when associated with each current ASCII code; changing a state of the Hidden Markov Model based on each probability over regularly spaced periods of time; wherein the Hidden Markov Model transitions from state q i at time t to a state q i at time t+1, where t=1, 2, 3,. .. M; and i, j=1, 2,. .. , N, and where M represents a number of the transitions and N represents a number of the states; wherein a transition probability a ij , representing a probability that diacritical mark q i appears directly after diacritical mark q i , equals an expected number of transitions from state q i to state q i divided by an expected number of transitions from state q i , finalizing a diacritical mark having the highest probability for the current ASCII code; processing each character in the sequence of the text, wherein the Hidden Markov Model bases the probability at least in part on the probability of a diacritical mark applied on one or more preceding characters of the sequence and on a context of the text for determining the probability of a diacritical mark on a given character; generating a sequence of the diacritical marks corresponding to the sequence of characters; matching the sequence of diacritical marks with the text to obtain the diacritized text; and displaying the diacritized text on an output device.