Skip to content

TopicJev

Pipeline that audits and refines topic-model clusters by checking each document against its topic label with a zero-shot decision model.

DemoresearchMIT

Overview

TopicJev post-processes the output of topic models such as BERTopic or k-means. It expresses each topic as a label, either its keywords or a short claim like "The text discusses...", and runs a zero-shot entailment or decision model to check whether each document supports it. Supporting documents form the topic's refined core; the rest are flagged as outliers or routed to an "Other" class.

It is aimed at researchers and analysts who care about cluster quality but lack labeled data or large compute budgets. It runs locally on consumer GPUs, Apple Silicon or CPU with compact models, citing System One style models such as Jev and open counterparts such as LAYA as motivation. It also includes document compression for long texts and can do zero-shot taxonomy routing with a confidence gate to "Other".

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this document support the topic label?(inferred)supports · does not support
ChoiceWhich user-defined category does this document belong to, or Other?—

How it works

  1. Take topic-model output and derive a label per topic.
  2. Score each document against its topic label with a zero-shot model.
  3. Keep supporting documents as the refined core.
  4. Route low-confidence documents to Other and compute agreement metrics.

Strengths

  • Works without ground-truth labels.
  • Runs locally, avoiding API fees and rate limits.
  • Compatible with many existing topic-model outputs.

Caveats

  • Uses general zero-shot models, not necessarily Jev itself.
  • Accuracy depends on the chosen local model.

At a glance

Type
Demo
Status
research
Language
Python
Runtime
local (GPU, MPS or CPU)
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does TopicJev decide?

Whether each document actually supports its assigned topic label, or belongs in Other.

Does it use Jev?

It is inspired by System One models; the README describes local zero-shot entailment and decision encoders such as LAYA-style models.

Does it need labeled data?

No, it is designed for zero-shot refinement without ground truth.

Related projects

  • dbt package whose macros run Jev Choice, Noul and Score over SQL values in DuckDB and ClickHouse models.

    ProjectbetaSQL (Jinja)
  • DuckDB extension that asks Jev about every row in SQL and returns answers as ENUM, DOUBLE or STRUCT columns.

    PluginbetaC++
  • Polars library for parallel LLM inference that also asks Jev per-row Noul, Choice and Score questions through a native Rust layer.

    LibrarybetaPython
  • Tabular classifier that learns which slices of labeled rows and columns to send Jev or LAYA, stopping when it has enough.

    ProjectresearchPython
  • Sutro's active-learning CLI that finds rows Jev is least sure about, asks you to label them, and uses GEPA to improve the definition.

    CLIbetaPython
  • CLI that scans tabular, structured and text files or databases and asks Jev which fields look anomalous, building a review queue.

    CLIbetaPython