1. A method comprising: receiving, by one or more processors associated with a device, a voice query; determining, by the one or more processors, a plurality of word hypotheses for the voice query, each word hypothesis of the plurality of word hypotheses including a respective one or more terms; accessing, by the one or more processors, a search query log; determining, by the one or more processors, respective weights associated with the plurality of word hypotheses based on the search query log; generating, by the one or more processors and based on the respective weights, a first search query from the plurality of word hypotheses; accessing, by the one or more processors and based on the first search query, a first set of search results; modifying, by the one or more processors and based on the first set of search results, one or more of the weights; generating, by the one or more processors and based on modifying the one or more weights, a second search query; and obtaining, by the one or more processors and using the second search query, a second set of search results as a response to the voice query.