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)
B. Galitsky, B. Kovalerchuk, and S. Kuznetsov. Proceedings of the 15th International Conference on Conceptual Structures (ICCS 2007), volume 4604 of Lecture Notes in Artificial Intelligence, page 387-400. Berlin, Heidelberg, Springer-Verlag, (July 2007)
B. Ganter, P. Grigoriev, S. Kuznetsov, and M. Samokhin. Proceedings of the 12th International Conference on Conceptual Structures (ICCS 2004), volume 3127 of Lecture Notes in Computer Science, page 94-108. Springer, (2004)