12. One or more non-transitory computer-readable tangible media encoding software operable when executed to: access a record to perform a clustering analysis, the record recording a plurality of affinities, an affinity calculated using a directional affinity between a first word and a second word describing a quantitative relationship between the first word and the second word, the directional affinity indicating the probability of the occurrence of the second word given the occurrence of the first word; identify a plurality of clusters of the plurality of words according to a plurality of affinities, a cluster comprising two or more words that are sufficiently affine with each other, a first word sufficiently affine with a second word if the affinity between the first word and the second word satisfies one or more affinity criteria comprising a forward affinity with a current word criterion and a backward affinity with a seed word criterion, the identifying comprising building a cluster by: placing a seed word in the cluster; and repeating the following for each word added to the cluster: sorting the plurality of words according a forward affinity between the each word and a current word, identifying one or more candidate words satisfying the one or more affinity criteria, and placing the one or more candidate words in the cluster; perform the clustering analysis using the clusters to yield a result; and report the result of the clustering analysis.
20. The non-transitory computer-readable tangible media of claim 12 , the software further operable to perform the clustering analysis using the clusters to yield the result by: determining one or more clusters of the plurality of clusters that comprise one or more search terms of a given search query; selecting one or more words from the one or more clusters; and generating one or more next search queries from the selected one or more words.