Alan Joyce sent me some neat code of analysis of Republican Debate Sep. 16, 2015. Please do see his analytics below. Transcripts of debate can be found online. Alan mined most popular words used by the candidates filtered and re-weighted by different criteria. Properly weighted WordClouds are a good way to grasp key topics.
I just wanted to point to graph & networks take on the data. I thought that some candidates may share some top words they use. So if the candidates are nodes, then a weighted edge between them reflects upon how many top words they share. If you consider 1 top word per candidate then the graph will be completely disconnected as each candidate has own unique single top word. As you increase top words' pool some of them will be common and shared between some candidates and links between nodes will appear.
Percolation is the moment when, driven by top-words pool-size, all candidates become connected. In the opposite limit of large pool-size all candidates are connected and we get a complete graph. So below is the percolation moment that happens at 5 top words per candidate. It is indicative of which candidates speak about top common subjects.
CommunityGraphPlot[HighlightGraph[SetProperty[g, EdgeLabels -> None], Table[Style[e, Opacity[.7],
Thickness[.005 PropertyValue[{g, e}, EdgeWeight]]], {e, EdgeList[g]}]],
CommunityBoundaryStyle -> Directive[Red, Dashed, Thick],
CommunityRegionStyle -> {Directive[Opacity[.1], Red],
Directive[Opacity[.1], Yellow], Directive[Opacity[.1], Blue]}]

The edge thickness is reflective of number of common words. Grouping shows clustering of candidates around common words. And vertex size come from DegreeCentrality. DegreeCentrality will give high centralities to vertices that have high vertex degrees. So candidates with top words similar to more other candidates will have larger vertices. Clustered CommunityGraphPlot was derived from the top words:
topWords = Sort[Normal[highFrequencyForCloud[#]], #1[[2]] > #2[[2]] &][[;; 5]][[All, 1]] & /@ candidates;
TableForm[topWords, TableHeadings -> {candidates, None}]

( refining text filters would narrow top words more precisely ) and WeightedAdjacencyGraph:
mocw = Outer[Length[Intersection[#1, #2]] &, topWords, topWords, 1] (1 - IdentityMatrix[10]) /. 0 -> Infinity;
mocw // MatrixForm
g = WeightedAdjacencyGraph[candidates, mocw, VertexLabels -> "Name",
EdgeLabels -> "EdgeWeight",EdgeLabelStyle -> 15, VertexLabelStyle -> 14,
VertexSize -> "DegreeCentrality", GraphStyle -> "ThickEdge",
GraphLayout -> "CircularEmbedding", VertexStyle -> Directive[Opacity[.8], Orange]]


For top words extraction and better refinement see Alan's analysis right below. The notebook is attached to his post.