1. A computer implemented method comprising: a processing device storing executable instructions for 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 is in at least one document 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 a 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 of the set of projection values in the reference space; clustering, for each subset of the plurality of subsets, at least some documents of the set of documents that correspond to a subset of the set of projection values 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.