From what I understand, HMMs construct a underlying sequence of states to maximize the probability of a sequence of observations. As far as I can tell, that should make them inappropriate to use before the full sequence is known, but maybe I'm misunderstanding something and it is possible after all.
Example why I think this doesn't work:
States: A, B Transition: 0.9 remain in same state, 0.1 switch state Emissions: A: 0.7 "Says A", 0.3 "Says Either" B: 0.6 "Says B", 0.4 "Says Either"
If we receive the sequence of observations ("Says A", "Says Either"), we should assume that the states are (A, A), because the first one must be A and for the second one 0.9*0.3 = 0.27 > 0.1*0.4 = 0.04. However, if we then receive a third observation "Says B", we should update our estimate to (A, B, B), because there has to be a switch somewhere, and the likelihood of observing "Says Either" is higher if the switch happens before. Obviously that doesn't work if we already classified the second state as A in real-time.
Am I missing something or do HMMs just not work for real-time classifiers?