1. A method comprising: receiving a matrix for a set of documents, each row of the matrix corresponding to each document of the set of documents and each column of the matrix corresponding to a text segment that may be in any of the set of documents, each cell of the matrix including a frequency value indicating a number of instances of a corresponding text segment in a corresponding document; receiving an indication of a relationship between two text segments, each of the two text segments associated with a first column and a second column, respectively, of the matrix; adjusting, for each document, a frequency value of the second column based on the frequency value of the first column; projecting each frequency value of the matrix into a reference space to generate a set of projection values in the reference space; identifying a plurality of subsets of the reference space, at least some of the plurality of subsets including at least some of the projection values; clustering, for each subset of the plurality of subsets, at least some documents of the set of documents that correspond to projection values that are members of that subset to generate clusters of one or more documents; and generating a graph of nodes, each of the nodes identifying one or more of the documents corresponding to each cluster.