AI and models · Edition No. 4 · 29 Aug 2026

x-tabdeveloping/turftopic

Five families of topic model behind one scikit-learn-style API — the head-to-head against BERTopic in one afternoon.

← AI and modelsRead the whole edition →
08

x-tabdeveloping/turftopic

💎 hidden gem

121 stars · MIT · v0.28.0 on PyPI (2026-08-28)

Five families of topic model behind one scikit-learn-style API — the head-to-head against BERTopic in one afternoon.

Repo detailsthe review · specs · pros & cons · install

What it is

A topic-modelling library that puts several contemporary approaches — clustering models, Semantic Signal Separation, KeyNMF, autoencoding models — behind a single scikit-learn-style API. You change the model name and rerun the same code.

Why it matters

Yesterday put BERTopic in front of you as the default engine for Grasppy's subtopic tree, and it is the right default. But that tree is your product, and BERTopic's clustering has a known personality: it drops a lot of text into an outlier bucket, and it produces slightly different maps from the same input. Turftopic lets you find out whether a different family handles your actual data — chat transcripts, which are short, fragmentary and full of "ok" and "thanks" — better than clustering does, without rewriting the pipeline for each experiment. Semantic Signal Separation in particular is built for the case where topics overlap rather than partition cleanly, which is exactly what a conversation is. A hundred and eighteen stars, one author, and a release that went out yesterday.

Stars121
LicenceMIT
Latestv0.28.0 on PyPI (2026-08-28)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
4 / 5
Good
  • One API over five families of topic model — the comparison is a parameter, not a rewrite
  • Genuinely active: v0.28.0 went to PyPI on 28 August 2026, the day before this report
  • Uses sentence-transformers embeddings, so model2vec from Edition 1 drops in as the backend unchanged
Watch for
  • 118 stars and essentially one author — real bus-factor risk for something load-bearing in your product
  • The GitHub release tags lag far behind PyPI, which makes the project look much quieter than it is. Check PyPI, not the releases page
  • More models means more knobs. Without a fixed way of judging output you will just keep whichever you looked at last
Works well with

Install into the FastAPI environment alongside BERTopic and run both over the same twenty saved conversations.

Install
source venv/bin/activate
pip install turftopic

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.