Software

topica

topica logo: the Greek letter theta

topica is an open-source Python library for topic modeling, built for social scientists. It brings together more than forty models usually split across JVM tools like MALLET and R packages like stm—including LDA, STM, CTM, keyATM, BERTopic, and a range of neural, dynamic, short-text, and embedding-based models—under a single NumPy-native interface. Because every model shares one set of diagnostics, labeling, validation, and covariate-effect tools, the workflow you learn for one applies across the roster, and structural models can relate topic prevalence and content to covariates with reported uncertainty. Fits are reproducible from a fixed seed and each model is validated against its reference implementation. The library installs as a single wheel that needs only NumPy and pandas: no JVM, no PyTorch. The source is on GitHub under an Apache 2.0 license, and the documentation includes a getting-started guide and worked examples.

InkBench

InkBench is an open benchmark for evaluating how well vision-capable large language models transcribe historical documents. It pairs 400 page images from Library of Congress collections—printed, handwritten, and mixed, dating from the late eighteenth to the early twentieth century—with reference transcriptions, and scores models on character and word error rates. It grew out of the need to choose and validate OCR for Dangerous Press, and it lets other researchers measure model performance on the degraded, irregular sources that historical text analysis actually depends on. The benchmark and evaluation scripts are on GitHub.