MaxEntLab
MaxEntLab is a Maximum Entropy constraint-based modeling tool. You give it a tableau (inputs, candidate outputs, observed frequencies, and constraint violations) and it fits the constraint weights that best reproduce the observed distribution.
It handles categorical and variable data, and it supports hidden structure: when several candidates share the same overt output, their probabilities are summed automatically, so a model can be fitted to data where the structure is not directly observable.
The app runs entirely in the browser.
Launch the app ↗ Source code on GitHub ↗
What it does
- Fits constraint weights by L-BFGS-B, with L1, L2 or no regularization.
- Models hidden structure.
- Normalizes frequencies within each tableau, so probabilities, percentages and raw counts can be used.
- Shows the fitted tableau with harmony, predicted and observed probabilities, and error.
- Lets you edit any weight manually and observe the predicted distribution change.
- Sorts, searches and filters the tableau, and downloads the result as a tab-separated file.
Input file format
A tab-separated TXT file (or a comma-separated CSV) with these columns:
input— the underlying formoutput— the surface candidateshidden— optional; include it to model hidden structureprobability— observed frequency, as a probability, a percentage or a raw count- one further column per constraint, holding violation counts
Sample input files are available from the link inside the app, and in the repository.
Documentation
Full documentation (the model and its objective, every option in the interface, the output columns, and how to run MaxEntLab from the command line or from your own Python code) is in the repository: github.com/alingwist/maxentlab
Citation
- Nirheche, Ali. 2026. MaxEntLab: A Maximum Entropy constraint-based modeling tool. Amherst, MA: University of Massachusetts Amherst. https://doi.org/10.5281/zenodo.22752925