How to cluster n-grams?
Distributional semantics models are based on representing an instance with the words that represent its meaning. Typically if one is interested in representing the meaning of a word $w_i$ then the words that represent its meaning are the ones which appear close to it, e.g. withing a window of N words preceding/following it. 

Example where $w_i$ is the target word with a window +/- 2:

$w_1,w_2,...,w_{i-3},\mathbf{w_{i-2},w_{i-1}},w_{i},\mathbf{w_{i+1},w_{i+2}},w_{i+3},...,w_N$

So the "meaning" of $w_i$ in this instance would be represented by the four words in the context window: $w_{i-2},w_{i-1},w_{i+1},w_{i+2}$. By collecting occurrences of $w_i$ everywhere in the document one obtains a set of contexts that can be used in different ways. For example one could build a context vector $a_1,...a_{|V|}$ over the vocabulary $V$ where each cell $a_k$ contains the frequency of $w_k \in V$ in the context of the target word. By applying the same process with different words, each word can be represented with its context vector and then various operations can be made on these vectors: similarity measures, clustering, etc.

Generally clustering based on words semantics is done with specific methods such as Latent Semantics Analysis.

In theory the method can be applied to any unit (e.g. n-grams), but more complex units require more data, more memory and more computing power.