1. A computer-implemented method for selecting a word, the method comprising: obtaining a word hash vector for each word of a vocabulary; receiving a first sequence of words; generating a first sequence of word hash vectors by obtaining a word hash vector for each word of the first sequence of words; processing the first sequence of word hash vectors with a layer of a neural network language model to compute a first output vector; quantizing the first output vector to obtain a first output word hash vector; determining a distance between the first output word hash vector and a first hash vector for a first word in the vocabulary; selecting the first word from the vocabulary using the distance between the first output word hash vector and the first hash vector for the first word; generating a second sequence of words using the first sequence of words and the first word; generating a second sequence of word hash vectors by obtaining a word hash vector for each word of the second sequence of words; processing the second sequence of word hash vectors with the layer of the neural network language model to compute a second output vector; quantizing the second output vector to obtain a second output word hash vector; determining a distance between the second output word hash vector and a second hash vector of a second word in the vocabulary; and selecting the second word from the vocabulary using the distance between the second output word hash vector and the second hash vector for the second word.