3. The method of claim 1 , the identifying the plurality of clusters of the plurality of words according to the plurality of affinities further comprising sorting the words into the clusters by repeating the following for each word of the plurality of words: if the affinity between the each word and a first word of a cluster satisfies an affinity threshold, placing the each word in the cluster; and otherwise, placing the each word in an empty cluster.
1. A method comprising: accessing, by one or more processors, a record to perform a clustering analysis, the record stored in one or more tangible storage media, 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; identifying, by the one or more processors, a plurality of clusters of a plurality of words according to the 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; performing, by the one or more processors, the clustering analysis using the clusters to yield a result; and reporting the result of the clustering analysis.