{"id":57967,"url":"https://github.com/jonaschn/awesome-topic-models","name":"awesome-topic-models","description":"✨ Awesome - A curated list of amazing Topic Models (implementations, libraries, and resources)","projects_count":238,"last_synced_at":"2026-08-04T14:00:18.682Z","repository":{"id":44560097,"uuid":"343491925","full_name":"jonaschn/awesome-topic-models","owner":"jonaschn","description":"✨ Awesome - A curated list of amazing Topic Models (implementations, libraries, and resources)","archived":false,"fork":false,"pushed_at":"2022-07-11T15:39:35.000Z","size":55,"stargazers_count":103,"open_issues_count":0,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-07-16T08:05:31.862Z","etag":null,"topics":["author-topic-model","awesome","awesome-list","dirichlet-multinomial","dirichlet-process-mixtures","dynamic-topic-modeling","hierarchical-dirichlet-processes","labeled-lda","latent-dirichlet-allocation","latent-semantic-analysis","nlp","non-negative-matrix-factorization","sentence-lda","text-mining","topic-model","topic-modeling","topic-models","truncated-svd"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonaschn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-01T16:59:48.000Z","updated_at":"2026-06-09T14:50:08.000Z","dependencies_parsed_at":"2022-08-02T23:45:21.520Z","dependency_job_id":null,"html_url":"https://github.com/jonaschn/awesome-topic-models","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonaschn/awesome-topic-models","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonaschn%2Fawesome-topic-models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonaschn%2Fawesome-topic-models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonaschn%2Fawesome-topic-models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonaschn%2Fawesome-topic-models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonaschn","download_url":"https://codeload.github.com/jonaschn/awesome-topic-models/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonaschn%2Fawesome-topic-models/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36277672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-04T02:00:06.901Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-04-08T00:00:26.222Z","updated_at":"2026-08-04T14:00:18.682Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Related awesome lists","Models","Learning Implementations (hopefully easy to understand)","Popular Implementations (but not maintained anymore)","Research Implementations","Visualizations","Dirichlet hyperparameter optimization techniques","Resources","Libraries \u0026 Toolkits","Probabilistic Programming Languages (PPL) (a.k.a. Build your own Topic Model)","License"],"sub_categories":["Embedding based Topic Models","Truncated Singular Value Decomposition (SVD) / Latent Semantic Analysis (LSA) / Latent Semantic Indexing (LSI)","Non-Negative Matrix Factorization (NMF or NNMF)","Latent Dirichlet Allocation (LDA) [:page_facing_up:](https://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf)","Hierarchical Dirichlet Process (HDP) [:page_facing_up:](https://papers.nips.cc/paper/2004/file/fb4ab556bc42d6f0ee0f9e24ec4d1af0-Paper.pdf)","Hierarchical LDA (hLDA) [:page_facing_up:](https://dl.acm.org/doi/10.5555/2981345.2981348)","Dynamic Topic Model (DTM) [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1143844.1143859)","Author-topic Model (ATM) [:page_facing_up:](https://arxiv.org/pdf/1207.4169.pdf)","Labeled Latent Dirichlet Allocation (LLDA, Labeled-LDA, L-LDA) [:page_facing_up:](https://www.aclweb.org/anthology/D09-1026.pdf)","Topic Models for short documents","Miscellaneous topic models","Exotic models","Relational Topic Model (RTM)","Supervised LDA (sLDA) [:page_facing_up:](https://papers.nips.cc/paper/2007/file/d56b9fc4b0f1be8871f5e1c40c0067e7-Paper.pdf)"],"readme":"# Awesome Topic Models [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n\n\u003e A curated list of amazing topic modelling libraries.\n\n\n## Contents\n\n- [Libraries \u0026 Toolkits](#libraries--toolkits)\n- [Models](#models)\n- [Techniques](#techniques)\n- [Research Implementations](#research-implementations)\n- [Visualizations](#visualizations)\n- [Resources](#resources)\n- [Related awesome lists](#related-awesome-lists)\n\n\n## Libraries \u0026 Toolkits\n\n- [gensim](https://github.com/RaRe-Technologies/gensim) - Python library for topic modelling ![GitHub Repo stars](https://img.shields.io/github/stars/RaRe-Technologies/gensim?style=social)\n- [scikit-learn](https://github.com/scikit-learn/scikit-learn) - Python library for machine learning ![GitHub Repo stars](https://img.shields.io/github/stars/scikit-learn/scikit-learn?style=social)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for Gibbs sampling based *tomoto* which is written in C++ ![GitHub Repo stars](https://img.shields.io/github/stars/bab2min/tomotopy?style=social)\n- [tomoto](https://github.com/ankane/tomoto) - Ruby extension for Gibbs sampling based *tomoto* which is written in C++ ![GitHub Repo stars](https://img.shields.io/github/stars/ankane/tomoto?style=social)\n- [OCTIS](https://github.com/MIND-Lab/OCTIS) - Python package to integrate, optimize and evaluate topic models ![GitHub Repo stars](https://img.shields.io/github/stars/MIND-Lab/OCTIS?style=social)\n- [tmtoolkit](https://github.com/WZBSocialScienceCenter/tmtoolkit) -  Python topic modeling toolkit with parallel processing power ![GitHub Repo stars](https://img.shields.io/github/stars/WZBSocialScienceCenter/tmtoolkit?style=social)\n- [Mallet](https://github.com/mimno/Mallet) - Java-based package for topic modeling ![GitHub Repo stars](https://img.shields.io/github/stars/mimno/mallet?style=social)\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java-based package for topic modeling ![GitHub Repo stars](https://img.shields.io/github/stars/soberqian/TopicModel4J?style=social)\n- [BIDMach](https://github.com/BIDData/BIDMach) - CPU and GPU-accelerated machine learning library ![GitHub Repo stars](https://img.shields.io/github/stars/BIDData/BIDMach?style=social)\n- [BigARTM](https://github.com/bigartm/bigartm) - Fast topic modeling platform ![GitHub Repo stars](https://img.shields.io/github/stars/bigartm/bigartm?style=social)\n- [TopicNet](https://github.com/machine-intelligence-laboratory/TopicNet) - A high-level Python interface for BigARTM library ![GitHub Repo stars](https://img.shields.io/github/stars/machine-intelligence-laboratory/TopicNet?style=social)\n- [stm](https://github.com/bstewart/stm) - R package for the Structural Topic Model ![GitHub Repo stars](https://img.shields.io/github/stars/bstewart/stm?style=social)\n- [RMallet](https://github.com/mimno/RMallet) -  R package to interface with the Java machine learning tool MALLET ![GitHub Repo stars](https://img.shields.io/github/stars/mimno/RMallet?style=social)\n- [R-lda](https://github.com/slycoder/R-lda) - R package for topic modelling (LDA, sLDA, corrLDA, etc.) ![GitHub Repo stars](https://img.shields.io/github/stars/slycoder/R-lda?style=social)\n- [topicmodels](https://github.com/cran/topicmodels) - R package with interface to C code for LDA and CTM ![GitHub Repo stars](https://img.shields.io/github/stars/cran/topicmodels?style=social)\n- [lda++](https://github.com/angeloskath/supervised-lda) - C++ library for LDA and (fast) supervised LDA (sLDA/fsLDA) using variational inference ![GitHub Repo stars](https://img.shields.io/github/stars/angeloskath/supervised-lda?style=social)\n\n\n## Models\n\nThere are huge differences in performance and scalability as well as the support of advanced features as hyperparameter tuning or evaluation capabilities.\n\n### Truncated Singular Value Decomposition (SVD) / Latent Semantic Analysis (LSA) / Latent Semantic Indexing (LSI)\n- [scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html) - Python implementation using fast [randomized SVD solver](https://arxiv.org/pdf/0909.4061.pdf) or a “naive” algorithm that uses [ARPACK](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.svds.html)\n- [gensim](https://radimrehurek.com/gensim/models/lsimodel.html) - Python implementation using multi-pass [randomized SVD solver](https://arxiv.org/pdf/0909.4061.pdf) or a [one-pass merge algorithm](https://rdcu.be/cghAi)\n- [SVDlibc](https://github.com/lucasmaystre/svdlibc) - C implementation of SVD by Doug Rohde\n- [sparsesvd](https://github.com/RaRe-Technologies/sparsesvd) - Python wrapper for SVDlibc\n- [BIDMach](https://github.com/BIDData/BIDMach/blob/master/src/main/scala/BIDMach/models/SVD.scala) - Scala implementation of a scalable approximate SVD using subspace iteration\n\n### Non-Negative Matrix Factorization (NMF or NNMF)\n- [scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html) - Python implementation using a [coordinate descent](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.214.6398\u0026rep=rep1\u0026type=pdf) or a [multiplicative update](https://arxiv.org/pdf/1010.1763.pdf) solver\n- [gensim](https://radimrehurek.com/gensim/models/nmf.html) - Python implementation of [online NMF](https://arxiv.org/pdf/1604.02634.pdf)\n- [BIDMach](https://github.com/BIDData/BIDMach/blob/master/src/main/scala/BIDMach/models/NMF.scala) - CPU and GPU-accelerated Scala implementation with L2 loss\n\n### Latent Dirichlet Allocation (LDA) [:page_facing_up:](https://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf)\n- [scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html) - Python implementation using online variational Bayes inference [:page_facing_up:](https://proceedings.neurips.cc/paper/2010/file/71f6278d140af599e06ad9bf1ba03cb0-Paper.pdf)\n- [lda](https://github.com/lda-project/lda) - Python implementation using collapsed Gibbs sampling which follows scikit-learn interface [:page_facing_up:](https://www.pnas.org/content/pnas/101/suppl_1/5228.full.pdf)\n- [lda-gensim](https://radimrehurek.com/gensim/models/ldamodel.html) - Python implementation using online variational inference [:page_facing_up:](https://proceedings.neurips.cc/paper/2010/file/71f6278d140af599e06ad9bf1ba03cb0-Paper.pdf)\n- [ldamulticore-gensim](https://radimrehurek.com/gensim/models/ldamulticore.html) - Parallelized Python implementation using online variational inference [:page_facing_up:](https://proceedings.neurips.cc/paper/2010/file/71f6278d140af599e06ad9bf1ba03cb0-Paper.pdf)\n- [GibbsSamplingLDA-TopicModel4J](https://github.com/soberqian/TopicModel4J/blob/master/src/main/java/com/topic/model/CVBLDA.java) - Java implementation using collapsed Gibbs sampling [:page_facing_up:](https://www.pnas.org/content/pnas/101/suppl_1/5228.full.pdf)\n- [CVBLDA-TopicModel4J](https://github.com/soberqian/TopicModel4J/blob/master/src/main/java/com/topic/model/CVBLDA.java) - Java implementation using collapsed variational Bayesian (CVB) inference [:page_facing_up:](https://papers.nips.cc/paper/2006/file/532b7cbe070a3579f424988a040752f2-Paper.pdf)\n- [Mallet](https://github.com/mimno/Mallet/blob/master/src/cc/mallet/topics/ParallelTopicModel.java) - Parallelized Java implementation using Gibbs sampling [:page_facing_up:](https://www.jmlr.org/papers/volume10/newman09a/newman09a.pdf)[:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1557019.1557121)\n- [gensim-wrapper-Mallet](https://github.com/mimno/Mallet/blob/master/src/cc/mallet/topics/ParallelTopicModel.java) - Python wrapper for Mallet's implementation [:page_facing_up:](https://www.jmlr.org/papers/volume10/newman09a/newman09a.pdf)[:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1557019.1557121)\n- [PartiallyCollapsedLDA](https://github.com/lejon/PartiallyCollapsedLDA) - Various fast parallelized samplers for LDA, including Partially Collapsed LDA, LightLDA, Partially Collapsed Light LDA and a very efficient Polya-Urn LDA\n- [Vowpal Wabbit](https://github.com/VowpalWabbit/vowpal_wabbit/wiki/Latent-Dirichlet-Allocation) - C++ implementaion using online variational Bayes inference [:page_facing_up:](https://proceedings.neurips.cc/paper/2010/file/71f6278d140af599e06ad9bf1ba03cb0-Paper.pdf)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python binding for C++ implementation using Gibbs sampling and different [term-weighting](https://www.aclweb.org/anthology/N10-1070.pdf) options [:page_facing_up:](https://www.jmlr.org/papers/volume10/newman09a/newman09a.pdf)\n- [topicmodel-lib](https://github.com/hncuong/topicmodel-lib) - Cython library for online/streaming LDA (Online VB, Online CVB0, Online CGS, Online OPE, Online FW, Streaming VB, Streaming OPE, Streaming FW, ML-OPE, ML-CGS, ML-FW)\n- [jsLDA](https://github.com/mimno/jsLDA) - JavaScript implementation of LDA topic modeling in the browser\n- [lda-nodejs](https://github.com/primaryobjects/lda) - Node.js implementation of LDA topic modeling\n- [lda-purescript](https://github.com/lettier/lda-topic-modeling) - PureScript, browser-based implementation of LDA topic modeling\n- [TopicModels.jl](https://github.com/slycoder/TopicModels.jl) - Julia implementation of LDA\n- [turicreate](https://github.com/apple/turicreate) - C++ [LDA](https://github.com/apple/turicreate/blob/master/userguide/text/README.md) and [aliasLDA](https://apple.github.io/turicreate/docs/api/generated/turicreate.topic_model.create.html) implementation with export to Apple's Core ML for use in iOS, macOS, watchOS, and tvOS apps\n- [MeTA](https://github.com/meta-toolkit/meta) - C++ implementation of (parallel) collapsed [Gibbs sampling, CVB0 and SCVB](https://meta-toolkit.org/topic-models-tutorial.html)\n- [Fugue](https://github.com/PuzaTech/Fugue) - Java implementation of collapsed Gibbs sampling with slice sampling for hyper-parameter optimization\n\n#### Hyperparameter optimization\n- [GA-LDA](https://github.com/GESAD-MSR/GA-LDA) - R scripts using Genetic Algorithms (GA) for hyper-paramenter optimization, based on Panichella [:page_facing_up:](https://doi.org/10.1016/j.infsof.2020.106411)\n- [Search-Based-LDA](https://github.com/apanichella/Search-Based-LDA) - R scripts using Genetic Algorithms (GA) for hyper-paramenter optimization by Panichella [:page_facing_up:](https://doi.org/10.1016/j.infsof.2020.106411)\n- [Dodge](https://github.com/amritbhanu/Dodge) - Python tuning tool that ignores redundant tunings [:page_facing_up:](https://arxiv.org/pdf/1902.01838.pdf)\n- [LDADE](https://github.com/amritbhanu/LDADE-package) - Python tuning tool using differential evolution [:page_facing_up:](https://arxiv.org/pdf/1608.08176.pdf)\n- [ldatuning](https://github.com/nikita-moor/ldatuning) - R package to find optimal number of topics for LDA [:page_facing_up:](https://rpubs.com/siri/ldatuning)\n- [Scalable](https://www.tandfonline.com/doi/suppl/10.1080/10618600.2020.1741378) - Scalable Hyperparameter Selection for LDA [:page_facing_up:](https://www.tandfonline.com/doi/full/10.1080/10618600.2020.1741378)\n\n#### Evaluation\n- [topic_interpretability](https://github.com/jhlau/topic_interpretability) - Computation of the semantic interpretability of topics produced by topic models [:page_facing_up:](https://aclanthology.org/E14-1056.pdf)\n- [topic-coherence-sensitivity](https://github.com/jhlau/topic-coherence-sensitivity) - Code to compute topic coherence for several topic cardinalities and aggregate scores across them [:page_facing_up:](https://aclanthology.org/N16-1057.pdf)\n- [topic-model-diversity](https://github.com/silviatti/topic-model-diversity) - A collection of topic diversity measures for topic modeling [:page_facing_up:](https://dl.acm.org/doi/abs/10.1007/978-3-030-80599-9_4)\n\n#### CPU-based high performance implementations\n- [LDA\\*](https://github.com/Angel-ML/angel/blob/master/docs/algo/lda_on_angel_en.md) - Tencent's hybrid sampler that uses different samplers for different types of documents in combination with an asymmetric parameter server [:page_facing_up:](http://www.vldb.org/pvldb/vol10/p1406-yu.pdf)\n- [FastLDA](https://github.com/Arnie0426/FastLDA) - C++ implementation of LDA [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1401890.1401960)\n- [dmlc](https://github.com/dmlc/experimental-lda) - Single-and multi-threaded C++ implementations of [lightLDA](https://arxiv.org/pdf/1412.1576.pdf), [F+LDA](https://arxiv.org/pdf/1412.4986v1.pdf), [AliasLDA](https://dl.acm.org/doi/pdf/10.1145/2623330.2623756), forestLDA and many more\n- [SparseLDA](https://github.com/mimno/Mallet/blob/master/src/cc/mallet/topics/ParallelTopicModel.java) - Java algorithm and data structure for evaluating Gibbs sampling distributions used in Mallet [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1557019.1557121)\n- [warpLDA](https://github.com/thu-ml/warplda) - C++ cache efficient LDA implementation which samples each token in O(1) [:page_facing_up:](https://arxiv.org/pdf/1510.08628.pdf)\n- [lightLDA](https://github.com/microsoft/LightLDA) - C++ implementation using O(1) Metropolis-Hastings sampling [:page_facing_up:](https://arxiv.org/pdf/1412.1576.pdf)\n- [F+LDA](https://bigdata.oden.utexas.edu/software/nomad) - C++ implementation of F+LDA using an appropriately modified Fenwick tree [:page_facing_up:](https://arxiv.org/pdf/1412.4986v1.pdf)\n- [AliasLDA](https://github.com/polymorpher/aliaslda) - C++ implemenation using Metropolis-Hastings and *alias* method[:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/2623330.2623756)\n- [Yahoo-LDA](https://github.com/sudar/Yahoo_LDA) - Yahoo!'s topic modelling framework [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/2124295.2124312)\n- [PLDA+](https://github.com/openbigdatagroup/plda) - Google's C++ implementation using data placement and pipeline processing [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1961189.1961198)\n- [Familia](https://github.com/baidu/Familia) - A toolkit for industrial topic modeling (LDA, SentenceLDA and Topical Word Embedding) [:warning:](https://github.com/baidu/Familia/issues/111) [:page_facing_up:](https://arxiv.org/pdf/1707.09823.pdf)\n\n#### GPU-based high performance implementations\n- [SaberLDA](https://dl.acm.org/doi/pdf/10.1145/3093336.3037740) - GPU-based system that implements a sparsity-aware algorithm to achieve sublinear time complexity\n- [GS-LDA-BIDMach](https://github.com/BIDData/BIDMach/blob/master/src/main/scala/BIDMach/models/LDAgibbs.scala) - CPU and GPU-accelerated Scala implementation using Gibbs sampling\n- [VB-LDA-BIDMach](https://github.com/BIDData/BIDMach/blob/master/src/main/scala/BIDMach/models/LDA.scala) - CPU and GPU-accelerated Scala implementation using online variational Bayes inference\n\n### Hierarchical Dirichlet Process (HDP) [:page_facing_up:](https://papers.nips.cc/paper/2004/file/fb4ab556bc42d6f0ee0f9e24ec4d1af0-Paper.pdf)\n- [gensim](https://radimrehurek.com/gensim/models/hdpmodel.html) - Python implementation using online variational inference [:page_facing_up:](http://proceedings.mlr.press/v15/wang11a/wang11a.pdf)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling [:page_facing_up:](https://www.jmlr.org/papers/volume10/newman09a/newman09a.pdf)\n- [Mallet](https://github.com/mimno/Mallet) - Java-based package for topic modeling using Gibbs sampling\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using Gibbs sampling based on Chinese restaurant franchise metaphor\n- [hca](https://github.com/wbuntine/topic-models) - C implementation using Gibbs sampling with/without burstiness modelling \n- [bnp](https://github.com/chyikwei/bnp) - Cython reimplementation based on *online-hdp* following scikit-learn's API.\n- [Scalable HDP](http://www.vldb.org/pvldb/vol11/p826-chen.pdf) - interesting paper\n\n### Hierarchical LDA (hLDA) [:page_facing_up:](https://dl.acm.org/doi/10.5555/2981345.2981348)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n- [Mallet](https://github.com/mimno/Mallet/blob/master/src/cc/mallet/topics/HierarchicalLDA.java) - Java implementation using Gibbs sampling\n- [hlda](https://github.com/joewandy/hlda) - Python package based on *Mallet's* Gibbs sampler having a fixed depth on the nCRP tree\n- [hLDA](https://github.com/blei-lab/hlda) - C implementation of hierarchical LDA by David Blei\n\n\n### Dynamic Topic Model (DTM) [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1143844.1143859)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling based on FastDTM\n- [FastDTM](https://github.com/Arnie0426/FastDTM) - Scalable C++ implementation using Gibbs sampling with Stochastic Gradient Langevin Dynamics (MCMC-based) [:page_facing_up:](https://arxiv.org/pdf/1602.06049.pdf)\n- [ldaseqmodel-gensim](https://radimrehurek.com/gensim_3.8.3/models/ldaseqmodel.html) - Python implementation using online variational inference [:page_facing_up:](https://proceedings.neurips.cc/paper/2010/file/71f6278d140af599e06ad9bf1ba03cb0-Paper.pdf)\n- [dtm-BigTopicModel](https://github.com/thu-ml/BigTopicModel) - C++ engine for running large-scale topic models\n- [tca](https://github.com/wbuntine/topic-models/blob/master/HCA/doc/tcaman.pdf) - C implementation using Gibbs sampling with/without burstiness modelling [:page_facing_up:](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.705.1649\u0026rep=rep1\u0026type=pdf)\n- [DETM](https://github.com/adjidieng/DETM) - Python implementation of the Dynamic Embedded Topic Model [:page_facing_up:](https://arxiv.org/pdf/1907.05545.pdf)\n\n\n### Author-topic Model (ATM) [:page_facing_up:](https://arxiv.org/pdf/1207.4169.pdf)\n- [gensim](https://radimrehurek.com/gensim/models/atmodel.html) - Python implementation with online training (constant in memory w.r.t. the number of documents)\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation\n- [Matlab Topic Modeling Toolbox](https://github.com/jonaschn/Matlab-Topic-Modeling-Toolbox) - Matlab and C++ implementation using Gibbs sampling\n- [Topic-Model](https://github.com/Ward-nju/Topic-Model) - Simple Python implementation using Gibbs sampling\n\n### Labeled Latent Dirichlet Allocation (LLDA, Labeled-LDA, L-LDA) [:page_facing_up:](https://www.aclweb.org/anthology/D09-1026.pdf)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation\n- [Mallet](https://github.com/mimno/Mallet/blob/master/src/cc/mallet/topics/LabeledLDA.java) - Java implementation using Gibbs sampling [:page_facing_up:](http://www.mimno.org/articles/labelsandpatterns)\n- [gensims_mallet_wrapper](https://github.com/jonaschn/gensim/tree/labeled-lda) - Python wrapper for Mallet using gensim interface\n- [STMT](https://nlp.stanford.edu/software/tmt/tmt-0.4/) - Scala implementation by Daniel Ramage\n- [topbox](https://github.com/jonaschn/topbox) - Python wrapper for labeled LDA implementation of *Stanford TMT*\n- [Labeled-LDA-Python](https://github.com/JoeZJH/Labeled-LDA-Python) - Python implementation (easy to use, does not scale)\n- [JGibbLabeledLDA](https://github.com/myleott/JGibbLabeledLDA) - Java implementation based on the popular [JGibbLDA](jgibblda.sourceforge.net) package\n\n\n### Partially Labeled Dirichlet Allocation (PLDA) / Dirichlet Process (PLDP) [:page_facing_up:](https://www.microsoft.com/en-us/research/wp-content/uploads/2011/08/KDD2011-pldp-final.pdf)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using collapsed Gibbs sampling\n- [STMT](https://nlp.stanford.edu/software/tmt/tmt-0.4/) - Scala implementation of PLDA \u0026 PLDP by Daniel Ramage\n\n### Dirichlet Multinomial Regression (DMR) topic model [:page_facing_up:](https://dl.acm.org/doi/10.5555/3023476.3023525)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n- [Mallet](https://github.com/mimno/Mallet) - Java-based package for topic modeling \n\n### Generalized Dirichlet Multinomial Regression (g-DMR) topic model [:page_facing_up:](https://dl.acm.org/doi/10.1007/s11192-020-03508-3)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n\n\n### Link LDA\n- [PTM](https://github.com/yao8839836/PTM) - implemented as benchmark [:page_facing_up:](https://ieeexplore.ieee.org/abstract/document/8242679)\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using collapsed Gibbs sampling \n\n### Correlated Topic Model (CTM) a.k.a. logistic-normal topic models\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling [:page_facing_up:](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.149.922)\n- [ctm-c](https://github.com/blei-lab/ctm-c) - Original C implementation of the correlated topic model by David Blei [:page_facing_up:](https://proceedings.nips.cc/paper/2005/file/9e82757e9a1c12cb710ad680db11f6f1-Paper.pdf)\n- [BigTopicModel](https://github.com/thu-ml/BigTopicModel) - C++ engine for running large-scale DTM [:page_facing_up:](https://papers.nips.cc/paper/2013/file/285f89b802bcb2651801455c86d78f2a-Paper.pdf)\n - [stm](https://github.com/bstewart/stm) - R package for the Structural Topic Model (CTM in case of no covariates) [:page_facing_up:](https://github.com/bstewart/stm/blob/master/vignettes/stmVignette.pdf?raw=true)\n\n### Relational Topic Model (RTM)\n- [BigTopicModel](https://github.com/thu-ml/BigTopicModel) - C++ engine for running large-scale topic models\n- [Constrained-RTM](https://github.com/MIND-Lab/Constrained-RTM) - Java implementation of Contrained RTM [:page_facing_up:](https://doi.org/10.1016/j.ins.2019.09.039)\n- [R-lda](https://github.com/slycoder/R-lda) - R implementation using collapsed Gibbs sampling\n\n\n### Supervised LDA (sLDA) [:page_facing_up:](https://papers.nips.cc/paper/2007/file/d56b9fc4b0f1be8871f5e1c40c0067e7-Paper.pdf)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n- [R-lda](https://github.com/slycoder/R-lda) - R implementation using collapsed Gibbs sampling\n- [slda](https://github.com/Savvysherpa/slda) -  Cython implementation of Gibbs sampling for LDA and various sLDA variants\n\t- supervised LDA (linear regression)\n    - binary logistic supervised LDA (logistic regression)\n    - binary logistic hierarchical supervised LDA (trees)\n    - generalized relational topic models (graphs)\n- [YWWTools](https://github.com/ywwbill/YWWTools-v2#slda-supervised-lda) - Java implementation using Gibbs sampling for LDA and various sLDA variants:\n\t- BS-LDA: Binary SLDA\n    - Lex-WSB-BS-LDA: BS-LDA with Lexcial Weights and Weighted Stochastic Block Priors\n    - Lex-WSB-Med-LDA: Lex-WSB-BS-LDA with Hinge Loss\n- [sLDA](https://github.com/blei-lab/class-slda) - C++ implementation of supervised topic models with a categorical response\n\n\n### Topic Models for short documents\n#### Sentence-LDA / SentenceLDA / Sentence LDA [:page_facing_up:](https://dl.acm.org/doi/10.1145/1935826.1935932)\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation of Sentence-LDA using collapsed Gibbs sampling\n- [Familia](https://github.com/baidu/Familia) - Apply inference on pre-trained SentenceLDA models [:warning:](https://github.com/baidu/Familia/issues/111) [:page_facing_up:](https://arxiv.org/pdf/1707.09823.pdf)\n\n#### Dirichlet Multinomial Mixture Model (DMM) [:page_facing_up:](https://link.springer.com/content/pdf/10.1023/A:1007692713085.pdf)\n- [GPyM_TM](https://github.com/jrmazarura/GPM) - Python implementation of DMM and Poisson model\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using collapsed Gibbs sampling [:page_facing_up:](https://dl.acm.org/doi/10.1145/2623330.2623715)\n- [jLDADMM](https://github.com/datquocnguyen/jLDADMM) - Java implementation using collapsed Gibbs sampling [:page_facing_up:](https://arxiv.org/pdf/1808.03835.pdf)\n\n#### Dirichlet Process Multinomial Mixture Model (DPMM)\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using collapsed Gibbs sampling [:page_facing_up:](https://ieeexplore.ieee.org/document/7498276)\n\n#### Pseudo-document-based Topic Model (PTM) [:page_facing_up:](https://dl.acm.org/doi/10.1145/2939672.2939880)\n- [tomotopy](https://github.com/bab2min/tomotopy) - Python extension for C++ implementation using Gibbs sampling\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using collapsed Gibbs sampling\n\n#### Biterm topic model (BTM)\n- [TopicModel4J](https://github.com/soberqian/TopicModel4J) - Java implementation using collapsed Gibbs sampling\n- [BTM](https://github.com/xiaohuiyan/BTM) - Original C++ implementation using collapsed Gibbs sampling [:page_facing_up:](https://raw.githubusercontent.com/xiaohuiyan/xiaohuiyan.github.io/master/paper/BTM-WWW13.pdf)\n- [BurstyBTM](https://github.com/xiaohuiyan/BurstyBTM) - Original C++ implementation of the Bursty BTM (BBTM) [:page_facing_up:](https://raw.githubusercontent.com/xiaohuiyan/xiaohuiyan.github.io/master/paper/BBTM-AAAI15.pdf)\n- [OnlineBTM]() - Original C++ implementation of online BTM (oBTM) and incremental BTM (iBTM) [:page_facing_up](https://raw.githubusercontent.com/xiaohuiyan/xiaohuiyan.github.io/master/paper/BTM-TKDE.pdf)\n- [R-BTM](https://github.com/bnosac/BTM) - R package wrapping the C++ code from BTM\n\n#### Others\n- [STTM](https://github.com/qiang2100/STTM) - Java implementation and evaluation of DMM, WNTM, PTM, ETM, GPU-DMM, GPU-DPMM, LF-DMM [:page_facing_up:](https://arxiv.org/pdf/1904.07695.pdf)\n- [SATM](https://github.com/WHUIR/SATM) - Java implementation of Self-Aggregation Topic Model [:page_facing_up:](https://dl.acm.org/doi/10.5555/2832415.2832564)\n- [shorttext](https://github.com/stephenhky/PyShortTextCategorization) -  Python implementation of various algorithms for Short Text Mining\n\n\n### Miscellaneous topic models\n- [trLDA](https://github.com/lucastheis/trlda/) - Python implementation of streaming LDA based on trust-regions [:page_facing_up:](http://proceedings.mlr.press/v37/theis15.pdf)\n- [Logistic LDA](https://github.com/lucastheis/logistic_lda) - Tensorflow implementation of Discriminative Topic Modeling with Logistic LDA [:page_facing_up:](https://proceedings.neurips.cc/paper/2019/file/54ebdfbbfe6c31c39aaba9a1ee83860a-Paper.pdf)\n- [EnsTop](https://github.com/lmcinnes/enstop) - Python implementation of *ENS*emble *TOP*ic modelling with pLSA\n- [Dual-Sparse Topic Model](https://github.com/soberqian/TopicModel4J/blob/master/src/main/java/com/topic/model/DualSparseLDA.java) - implemented in TopicModel4J using collapsed variational Bayes inference [:page_facing_up:](https://dl.acm.org/doi/10.1145/2566486.2567980)\n- [Multi-Grain-LDA](https://github.com/bab2min/tomotopy) - MG-LDA implemented in tomotopy using collapsed Gibbs sampling [:page_facing_up:](https://dl.acm.org/doi/10.1145/1367497.1367513)\n- [lda++](https://github.com/angeloskath/supervised-lda) - C++ library for LDA and (fast) supervised LDA (sLDA/fsLDA) using variational inference [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/2964284.2967237) [:page_facing_up:](http://www.cs.columbia.edu/~blei/papers/WangBleiFeiFei2009.pdf)\n- [discLDA](https://github.com/anthonylife/discLDA) - C++ implementation of discLDA based on GibbsLDA++ [:page_facing_up:](https://papers.nips.cc/paper/2008/file/7b13b2203029ed80337f27127a9f1d28-Paper.pdf)\n- [GuidedLDA](https://github.com/vi3k6i5/GuidedLDA) - Python implementation that can be guided by setting some seed words per topic (using Gibbs sampling) [:page_facing_up:](https://www.aclweb.org/anthology/E12-1021.pdf)\n- [seededLDA](https://github.com/koheiw/seededlda) - R package that implements seeded-LDA for semi-supervised topic modeling\n- [keyATM](https://github.com/keyATM/keyATM) - R package for Keyword Assisted Topic Models.\n- [hca](https://github.com/wbuntine/topic-models) - C implementation of non-parametric topic models (HDP, HPYP-LDA, etc.) with focus on hyperparameter tuning\n- [BayesPA](https://github.com/strin/BayesPA) - Python interface for streaming implementation of MedLDA, maximum entropy discrimination LDA (max-margin supervised topic model) [:page_facing_up:](http://proceedings.mlr.press/v32/shi14.pdf)\t\n- [sailing-pmls](https://pmls.readthedocs.io/en/latest/med-lda.html) - Parallel LDA and medLDA implementation\n- [BigTopicModel](https://github.com/thu-ml/BigTopicModel) - C++ engine for running large-scale MedLDA models [:page_facing_up:](https://dl.acm.org/doi/10.1145/2487575.2487658)\n- [DAPPER](https://github.com/robert-giaquinto/dapper) - Python implementation of Dynamic Author Persona (DAP) topic model [:page_facing_up:](https://arxiv.org/pdf/1811.01931.pdf)\n- [ToT](https://github.com/ahmaurya/topics_over_time) - Python implementation of Topics Over Time (A Non-Markov Continuous-Time Model of Topical Trends) [:page_facing_up:](https://dl.acm.org/doi/10.1145/1150402.1150450)\n- [MLTM](https://github.com/hsoleimani/MLTM) - C implementation of multilabel topic model (MLTM) [:page_facing_up:](https://www.mitpressjournals.org/doi/pdf/10.1162/NECO_a_00939)\n- [sequence-models](https://github.com/michaeljpaul/sequence-models) - Java implementation of block HMM and the mixed membership Markov model (M4)\n- [Entropy-Based Topic Modeling](https://github.com/julian-risch/JCDL2018/) - Java implementation of Entropy-Based Topic Modeling on Multiple Domain-Specific Text Collections\n- [ST-LDA](https://github.com/ywwbill/YWWTools-v2#st-lda-single-topic-lda) - ST-LDA: Single Topic LDA [:page_facing_up:](https://ywwbill.github.io/files/2016_socinfo_topicDynamic.pdf)\n- [MTM](https://github.com/ywwbill/YWWTools-v2#mtm-in-command-line) - Java implementation of Multilingual Topic Model [:page_facing_up:](https://www.aclweb.org/anthology/D19-1120.pdf)\n- [YWWTools](https://github.com/ywwbill/YWWTools-v2) - Java-based package for various topic models by Weiwei Yang\n\n\n### Exotic models\n- [TEM](https://github.com/jonaschn/TopicExpertiseModel) - Topic Expertise Model [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/2505515.2505720)\n- [PTM](https://github.com/yao8839836/PTM) - Prescription Topic Model for Traditional Chinese Medicine Prescriptions [:page_facing_up:](https://ieeexplore.ieee.org/abstract/document/8242679) (interesting benchmark models)\n- [KGE-LDA](https://github.com/yao8839836/KGE-LDA) - Knowledge Graph Embedding LDA [:page_facing_up:](https://www.aaai.org/ocs/index.php/AAAI/AAAI17/paper/viewFile/14170/14086) \n- [LDA-SP](https://github.com/aritter/LDA-SP) - A Latent Dirichlet Allocation Method for Selectional Preferences [:page_facing_up:](https://www.aclweb.org/anthology/P10-1044.pdf)\n- [LDA+FFT](https://github.com/ai-se/LDA_FFT) - LDA and FFTs (Fast and Frugal Trees) for better comprehensibility [:page_facing_up:](https://arxiv.org/pdf/1804.10657.pdf)\n\n### Embedding based Topic Models\n\n- [BERTopic](https://github.com/MaartenGr/BERTopic) - BERTopic supports guided, (semi-) supervised, and dynamic topic modeling and visualization [:page_facing_up:](https://arxiv.org/pdf/2203.05794.pdf)\n- [CTM](https://github.com/MilaNLProc/contextualized-topic-models) - CTMs combine contextualized embeddings (e.g., BERT) with topic models\n- [ETM](https://github.com/adjidieng/ETM) - Embedded Topic Model [:page_facing_up:](https://arxiv.org/pdf/1907.04907.pdf)\n- [D-ETM](https://github.com/adjidieng/DETM) - Dynamic Embedded Topic Model [:page_facing_up:](https://arxiv.org/pdf/1907.05545.pdf)\n- [ProdLDA](https://github.com/akashgit/autoencoding_vi_for_topic_models) - Original TensorFlow implementation of Autoencoding Variational Inference (AEVI) for Topic Models [:page_facing_up:](https://arxiv.org/pdf/1703.01488.pdf)\n- [pytorch-ProdLDA](https://github.com/hyqneuron/pytorch-avitm) - PyTorch implementation of ProdLDA [:page_facing_up:](https://arxiv.org/pdf/1703.01488.pdf)\n- [CatE](https://github.com/yumeng5/CatE) -  Discriminative Topic Mining via Category-Name Guided Text Embedding [:page_facing_up:](https://arxiv.org/pdf/1908.07162.pdf)\n- [Top2Vec](https://github.com/ddangelov/Top2Vec) - Python implementation that learns jointly embedded topic, document and word vectors [:page_facing_up:](https://arxiv.org/pdf/2008.09470.pdf)\n- [lda2vec](https://github.com/cemoody/lda2javec) - Mixing dirichlet topic models and word embeddings to make lda2vec [:page_facing_up:](https://arxiv.org/pdf/1605.02019.pdf)\n- [lda2vec-pytorch](https://github.com/TropjaComplique/lda2vec-pytorch) - PyTorch implementation of lda2vec\n- [G-LDA](https://github.com/rajarshd/Gaussian_LDA) - Java implementation of Gaussian LDA using word embeddings [:page_facing_up:](https://www.aclweb.org/anthology/P15-1077.pdf)\n- [MG-LDA](https://github.com/EliasKB/Multilingual-Gaussian-Latent-Dirichlet-Allocation-MGLDA) - Python implementation of (Multi-lingual) Gaussian LDA [:page_facing_up:](https://raw.githubusercontent.com/EliasKB/Multilingual-Gaussian-Latent-Dirichlet-Allocation-MGLDA/master/MGLDA.pdf)\n- [MetaLDA](https://github.com/ethanhezhao/MetaLDA) - Java implementation using Gibbs sampling that leverages document metadata and word embeddings [:page_facing_up:](https://arxiv.org/pdf/1709.06365.pdf)\n- [LFTM](https://github.com/datquocnguyen/LFTM) - Java implementation of latent feature topic models (improving LDA and DMM with word embeddings) [:page_facing_up:](https://www.aclweb.org/anthology/Q15-1022.pdf)\n- [CorEx](https://github.com/gregversteeg/bio_corex) - Recover latent factors with Correlation Explanation (CorEx) [:page_facing_up:](https://arxiv.org/pdf/1406.1222.pdf)\n- [Anchored CorEx](https://github.com/gregversteeg/corex_topic) - Hierarchical Topic Modeling with Minimal Domain Knowledge [:page_facing_up:](https://arxiv.org/pdf/1611.10277.pdf)\n- [Linear CorEx](https://github.com/gregversteeg/LinearCorex) - Latent Factor Models Based on Linear Total CorEx [:page_facing_up:](https://arxiv.org/pdf/1706.03353v3.pdf)\n\n\n## Probabilistic Programming Languages (PPL) (a.k.a. Build your own Topic Model)\n- [Stan](https://github.com/stan-dev/stan) - Platform for statistical modeling and high-performance statistical computation, e.g., [LDA](https://mc-stan.org/docs/2_26/stan-users-guide/latent-dirichlet-allocation.html) [:page_facing_up:](https://files.eric.ed.gov/fulltext/ED590311.pdf)\n- [PyMC3](https://github.com/pymc-devs/pymc3) - Python package for Bayesian statistical modeling and probabilistic machine learning, e.g., [LDA](http://docs.pymc.io/notebooks/lda-advi-aevb.html) [:page_facing_up:](https://peerj.com/articles/cs-55.pdf)\n- [Turing.jl](https://github.com/TuringLang/Turing.jl) -  Julia library for general-purpose probabilistic programming [:page_facing_up:](http://proceedings.mlr.press/v84/ge18b/ge18b.pdf)\n- [TFP](https://github.com/tensorflow/probability) - Probabilistic reasoning and statistical analysis in TensorFlow, e.g., [LDA](https://github.com/tensorflow/probability/blob/master/tensorflow_probability/examples/latent_dirichlet_allocation_distributions.py) [:page_facing_up:](https://arxiv.org/pdf/2001.11819.pdf)\n- [edward2](https://github.com/google/edward2) - Simple PPL with core utilities in the NumPy and TensorFlow ecosystem [:page_facing_up:](https://arxiv.org/pdf/1811.02091.pdf)\n- [pyro](https://github.com/pyro-ppl/pyro) - PPL built on PyTorch, e.g., [prodLDA](http://pyro.ai/examples/prodlda.html) [:page_facing_up:](https://www.jmlr.org/papers/volume20/18-403/18-403.pdf)\n- [edward](https://github.com/blei-lab/edward) - A PPL built on TensorFlow, e.g., [LDA](http://edwardlib.org/iclr2017?Figure%2011.%20Latent%20Dirichlet%20allocation) [:page_facing_up:](https://arxiv.org/pdf/1610.09787.pdf)\n- [ZhuSuan](https://github.com/thu-ml/zhusuan) - A PPL for Bayesian deep learning, generative models, built on Tensorflow, e.g., [LDA](https://zhusuan.readthedocs.io/en/latest/tutorials/lntm.html) [:page_facing_up:](https://arxiv.org/pdf/1709.05870.pdf)\n\n\n## Research Implementations\n\n- [lda-c](https://github.com/blei-lab/lda-c) - C implementation using variational EM by David Blei\n- [sLDA](https://github.com/blei-lab/class-slda) - C++ implementation of supervised topic models with a categorical response.\n- [onlineldavb](https://github.com/blei-lab/onlineldavb) - Python online variational Bayes implementation by Matthew Hoffman [:page_facing_up:](https://proceedings.neurips.cc/paper/2010/file/71f6278d140af599e06ad9bf1ba03cb0-Paper.pdf)\n- [HDP](https://github.com/blei-lab/hdp) - C++ implementation of hierarchical Dirichlet processes by Chong Wang\n- [online-hdp](https://github.com/blei-lab/online-hdp) - Python implementation of online hierarchical Dirichlet processes by Chong Wang\n- [ctr](https://github.com/blei-lab/ctr) - C++ implementation of collaborative topic models by Chong Wang\n- [dtm](https://github.com/blei-lab/dtm) - C implementation of dynamic topic models by David Blei \u0026 Sean Gerrish\n- [ctm-c](https://github.com/blei-lab/ctm-c) - C implementation of the correlated topic model by David Blei\n- [diln](https://github.com/blei-lab/diln) - C implementation of Discrete Infinite Logistic Normal (with HDP option) by John Paisley\n- [hLDA](https://github.com/blei-lab/hlda) - C implementation of hierarchical LDA by David Blei\n- [turbotopics](https://github.com/blei-lab/turbotopics) - Python implementation that finds significant multiword phrases in topics by David Blei\n- [Stanford Topic Modeling Toolbox](https://nlp.stanford.edu/software/tmt/tmt-0.4/) - Scala implementation of LDA, labeledLDA, PLDA, PLDP by Daniel Ramage and Evan Rosen\n- [LDAGibbs](https://github.com/yangliuy/LDAGibbsSampling) - Java implementation of LDA using Gibbs sampling by Liu Yang\n- [Matlab Topic Modeling Toolbox](https://github.com/jonaschn/Matlab-Topic-Modeling-Toolbox) - Matlab implementations of LDA, ATM, HMM-LDA, LDA-COL (Collocation) models by Mark Steyvers and Tom Griffiths\n- [cvbLDA](https://github.com/davidandrzej/cvbLDA) -  Python C extension implementation of collapsed variational Bayesian inference for LDA\n- [fast](https://www.ics.uci.edu/~asuncion/software/fast.htm) - A Fast And Scalable Topic-Modeling Toolbox (Fast-LDA, CVB0) by Arthur Asuncion and colleagues [:page_facing_up:](https://arxiv.org/pdf/1205.2662.pdf)\n\n\n## Popular Implementations (but not maintained anymore)\n- [Stanford Topic Modeling Toolbox](https://nlp.stanford.edu/software/tmt/tmt-0.4/) - Scala implementation of LDA, labeledLDA, PLDA, PLDP by Daniel Ramage and Evan Rosen\n- [Matlab Topic Modeling Toolbox](https://github.com/jonaschn/Matlab-Topic-Modeling-Toolbox) - Matlab implementations of LDA, ATM, HMM-LDA, LDA-COL (Collocation) models by Mark Steyvers and Tom Griffiths\n- [GibbsLDA++](http://gibbslda.sourceforge.net) - C++ implementation using Gibbs sampling [:page_facing_up:](https://dl.acm.org/doi/pdf/10.1145/1367497.1367510)\n[:fork_and_knife:](https://github.com/mrquincle/gibbs-lda)\n- [JGibbLDA](http://jgibblda.sourceforge.net) - Java implementation using Gibbs sampling\n- [Mr.LDA](https://github.com/lintool/Mr.LDA) - Scalable Topic Modeling using Variational Inference in MapReduce [:page_facing_up:](https://dl.acm.org/doi/10.1145/2187836.2187955)\n\n\n## Learning Implementations (hopefully easy to understand)\n\n- [topic_models](https://github.com/laserwave/topic_models) - Python implementation of LSA, PLSA and LDA\n- [Topic-Model](https://github.com/Ward-nju/Topic-Model) - Python implementation of LDA, Labeled LDA, ATM, Temporal Author-Topic Model using Gibbs sampling\n\n\n## Visualizations\n\n- [LDAvis](https://github.com/cpsievert/LDAvis) - R package for interactive topic model visualization\n- [pyLDAvis](https://github.com/bmabey/pyLDAvis) - Python library for interactive topic model visualization\n- [scalaLDAvis](https://github.com/iaja/scalaLDAvis) - Scala port of pyLDAvis\n- [dtmvisual](https://github.com/GSukr/dtmvisual) - Python package for visualizing DTM (trained with gensim)\n- [TMVE online](https://github.com/ajbc/tmv) - Online Django variant of topic model visualization engine (*TMVE*) \n- [TMVE](https://github.com/ajbc/tmve-original) - Original topic model visualization engine (LDA trained with *lda-c*) [:page_facing_up:](https://www.aaai.org/ocs/index.php/ICWSM/ICWSM12/paper/viewFile/4645/5021)\n- [topicmodel-lib](https://test-dslab.readthedocs.io/en/latest/visualization.html) - Python wrapper for TMVE for visualizing LDA (trained with topicmodel-lib)\n- [wordcloud](http://amueller.github.io/word_cloud/) - Python package for visualizing topics via word_cloud\n- [Mallet-GUI](https://github.com/senderle/topic-modeling-tool) - GUI for creating and analyzing topic models produced by MALLET\n- [TWiC](https://github.com/jarmoza/twic) - Topic Words in Context is a highly-interactive, browser-based visualization for MALLET topic models\n- [dfr-browser](https://github.com/agoldst/dfr-browser) -  Explore Mallet's topic models of texts in a web browser\n- [Termite](https://github.com/uwdata/termite-data-server) - Explore topic models using term-topic matrix, group-in-a-box visualization or scatter plot.\n- [Topics](https://github.com/DARIAH-DE/Topics) - Python library for topic modeling and visualization\n- [TopicsExplorer](https://github.com/DARIAH-DE/TopicsExplorer) - Explore your own text collection with a topic model – without prior knowledge [:page_facing_up:](https://dh2018.adho.org/a-graphical-user-interface-for-lda-topic-modeling)\n- [topicApp](https://github.com/wesslen/topicApp) - A Simple Shiny App for Topic Modeling\n- [stminsights](https://github.com/cschwem2er/stminsights) - A Shiny Application for Inspecting Structural Topic Models\n\n## Dirichlet hyperparameter optimization techniques\n- [Slice sampling](https://people.cs.umass.edu/~cxl/cs691bm/lec08.html)\n- [Minka](https://tminka.github.io/papers/dirichlet/minka-dirichlet.pdf)\n    - [fastfit](https://github.com/tminka/fastfit) \n    - [dirichlet](https://github.com/ericsuh/dirichlet) Python port of fastfit\n    - [lightspeed](https://github.com/tminka/lightspeed)\n    - [lecture-notes](https://people.cs.umass.edu/~cxl/cs691bm/lec09.html)\n- [Newton-Raphson Method](http://jonathan-huang.org/research/dirichlet/dirichlet.pdf)\n- [fixed-point iteration](https://people.cs.umass.edu/~wallach/theses/wallach_phd_thesis.pdf) - Wallach's PhD thesis, chapter 2.3\n\n## Resources\n\n- [David Blei](http://www.cs.columbia.edu/~blei/topicmodeling.html) - David Blei's Homepage with introductory materials\n\n\n## Related awesome lists\n\n- [awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning)\n- [awesome-datascience](https://github.com/academic/awesome-datascience)\n- [awesome-python-data-science](https://github.com/krzjoa/awesome-python-data-science)\n\n## Contribute\n\nContributions welcome! Read the [contribution guidelines](contributing.md) first.\n\n\n## License\n\n[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0)\n\nTo the extent possible under law, Jonathan Schneider has waived all copyright and\nrelated or neighboring rights to this work.\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/jonaschn%2Fawesome-topic-models/projects"}