Consider the example of the seaweed and the
weather; a blind hermit can only sense the seaweed state, but
needs to know the weather, i.e. the hidden states.
We use the
Viterbi algorithm to determine the most probable sequence of
hidden states given a sequence of observations and a HMM.
Another widespread application of the Viterbi algorithm is in
Natural Language Processing, to tag words with their syntactic
class (noun, verb etc.) The words in a sentence are the
observable states and the syntactic classes are the hidden
states (note that many words, such as wind, fish, may have more
than one syntactical interpretation). By finding the most
probable hidden states for a sentence of words, we have found
the most probable syntactic class for a word, given the
surrounding context. Thereafter we may use the primitive grammar
so extracted for a number of purposes, such as recapturing
`meaning'.