In natural language understanding, there is a hierarchy of lenses through which we can extract meaning - from words to sentences to paragraphs to documents. At the document level, one of the most useful ways to understand text is by analyzing its topics.
Labeled LDA (D. Ramage, D. Hall, R. Nallapati and C.D. Manning; EMNLP2009) is a supervised topic model derived from LDA (Blei+ 2003). While LDA's estimated topics don't often equal to human's expectation because it is unsupervised, Labeled LDA is to treat documents with multiple labels. I implemented Labeled LDA in python.
Stan modeling language and C++ library for Bayesian inference. NUTS adaptive HMC (MCMC) sampling, automatic differentiation, R, shell interfaces. Gelman.
A. Bakalov, A. McCallum, H. Wallach, and D. Mimno. Proceedings of the 12th ACM/IEEE-CS Joint Conference on Digital Libraries, page 237--240. New York, NY, USA, ACM, (2012)