1. A method comprising: receiving a list of speech recognition candidates; receiving a list of current partitions, wherein each partition in the list of current partitions is a group of dialog states; in an outer loop, iterating over each of the speech recognition candidates in the list of speech recognition candidates; in an inner loop, performing a split process, an update process, and a recombination process, via a processor, wherein additional partitions are added to the current partitions after each speech recognition candidate in the list such that each speech recognition candidate has a fixed number; and recognizing speech based on the list and the fixed number of partitions.