bead¶
A Python framework for constructing, deploying, and analyzing large-scale linguistic judgment experiments with active learning.
Overview¶
bead implements a 6-stage pipeline for linguistic experiment design:
- Resources: lexical items and templates with constraints
- Templates: template filling strategies (exhaustive, random, stratified, MLM, mixed)
- Items: experimental item construction (9 task types)
- Lists: list partitioning with constraint satisfaction
- Deployment: jsPsych 8.x batch experiment generation for JATOS
- Training: active learning with GLMM support and convergence detection
Key Features¶
- Stand-off annotation with UUID-based references for provenance tracking
- 9 task types: forced-choice, ordinal scale, binary, categorical, multi-select, magnitude, free text, cloze, span labeling
- GLMM support: Generalized Linear Mixed Models with random effects
- Batch deployment: server-side list distribution via JATOS batch sessions
- Language-agnostic: works with any language supported by UniMorph
- Configuration-first: single YAML file orchestrates entire pipeline
- Type-safe: full Python 3.13 type hints with Pydantic v2 validation
Quick Links¶
- Installation: get started in 5 minutes
- Quick Start: complete tutorial in 15 minutes
- User Guide: in-depth documentation
- API Reference: complete API documentation
- Examples: gallery of example projects
Installation¶
For development installation:
Requirements¶
- Python 3.13+
- Operating Systems: macOS, Linux, Windows (WSL recommended)
Citation¶
If you use bead in your research, please cite:
@software{white_bead_2026,
author = {White, Aaron Steven},
title = {Bead: A python framework for linguistic judgment experiments with active learning},
year = {2026},
url = {https://github.com/FACTSlab/bead},
version = {0.2.0}
}
License¶
MIT License. See LICENSE for details.