1. A method of recognizing speech, comprising: generating a decoding network for decoding speech input, the decoding network comprising a primary sub-network and one or more classification sub-networks, wherein: the primary sub-network includes a plurality of classification nodes, each classification node corresponding to a respective classification sub-network of the one or more classification sub-networks; and each classification sub-network of the one or more classification sub-networks corresponds to a group of uncommon words; receiving a speech input; and decoding the speech input by: instantiating a token corresponding to the speech input in the primary sub-network; passing the token through the primary network; when the token reaches a respective classification node of the plurality of classification nodes, transferring the token to the corresponding classification sub-network; passing the token through the corresponding classification sub-network; when the token reaches an accept node of the classification sub-network, returning a result of the token passing through the classification sub-network to the primary sub-network, wherein the result includes one or more words in the group of uncommon words corresponding to the classification sub-network outputting a string corresponding to the speech input that includes the one or more words.