It may be great to not only generate a list of single words, but also a list of phrases of two- and three-words, of course after first filtering "common" words such as prepositions, numbers, symbols, pronouns, and such. An additional thing you could do is weigh each keyword (be it a single word or a phrase), based on some algorithm, for example:
w_ik = (-log(N_k/N))(f_k)(w_f)
(Y. Bao, S. Aoyama, X. Du, 2002)
where w_ik is the weight of keyword k in post i, N_k is the number of posts containing the keyword k, N is the number of posts in total, f_k is the frequency of keyword k in post i, and w_f denotes the importance of a keyword (perhaps two-word phrases are more important than single-word keywords).
Of course, with the above weighing, you may need to redefine how you "match" for keywords.