1. A method comprising: receiving item category data by a computing device, wherein the item category data comprises a plurality of nodes and each node is associated with an item category of a plurality of item categories; receiving a plurality of queries by the computing device; for each query of the plurality of queries, providing an indicator of one or more items that are responsive to the query of a plurality of items by the computing device, wherein the plurality of items comprise at least one of products or services; for each query of the plurality of queries, receiving a selection of an item indicated by the provided indicator of one or more items by the computing device; receiving item data that associates an item category of the plurality of item categories with each item of the plurality of items by the computing device; based on the selected item for each query of the plurality of queries and the item category associated with each item, generating training data by the computing device, wherein the training data comprises a mapping of queries to item categories; for each query and item category in the mapping, determining a count of the number of times that the item category is associated with the query in the mapping by the computing device; combining the training data and item category data by, for each determined count for each item category, associating the determined count with the node of the plurality of nodes associated with the item category by the computing device; receiving another query by the computing device; receiving a classifier by the computing device, wherein the classifier, when applied to a node of the plurality of nodes using the received query by the computing device, results in a generated probability that the received query is intended for the item category associated with the node; applying the classifier to the plurality of nodes using the received query by the computing device until a generated probability for a node is below a threshold probability resulting in a list of item categories and a generated probability for each item category; ranking the item categories in the list of item categories based on the generated probabilities by the computing device; and providing the item categories in a ranked order by the computing device through a network.