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.
D. Ramage, D. Hall, R. Nallapati, and C. Manning. Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 1 - Volume 1, page 248--256. Stroudsburg, PA, USA, Association for Computational Linguistics, (2009)