Research and teaching
Mailwoman is a postal-address parser and geocoder that runs inside your own process from a modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.' file on your own disk. For a research group or a classroom that means an install without an API key or a per-lookup bill, and data that never leaves the machine. The AGPL-3.0 release covers the parser, the geocoder and the base modelgolden masterThe from-scratch base model every capability comes from in ONE recipe with one provenance and zero named watches at ship — the starting line every fine-tune engagement inherits, with its Fisher artifact beside it., and an academic or student declaration adds the data tiers for a year.
Install and check
npm install mailwoman @mailwoman/neural @mailwoman/neural-weights-en-us
npx mailwoman setup
setup parsesaddress parsingThe process of decomposing a free-text postal address string into structured components — house number, street name, locality, region, postcode, and country — so a geocoder can resolve them to coordinates. a sample address through the installed modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.', lists the data tiers for the countries you
name with their size, and offers the declaration below. It ships, with license declare, in the release
after 10.7.0, and npm view mailwoman version tells you which release you have. The
ten-minute trial walks the same steps one at a time.
Declare academic or student use
mailwoman license declare --intent academic --name "Dr You" --organization "Your University" --email you@example.edu
mailwoman license declare --intent student --name "You" --organization "Your School" --email you@example.edu
The key arrives at the address you give, the command waits for it and writes it under your config
directory, and it lasts one year. It stays on the AGPL branch: the source offer applies to a modified
copy you serve over a network, and a paper that uses the unmodified software owes attribution only.
The key admits every published data tier to mailwoman data pull, and a geocode that a tier would have
resolved further states the tier and the command that fetches it.
A thesis project with its own public repository may declare as an open-source project instead, with the repository's URL, and receive the key in the response.
Cite it
The repository includes a CITATION.cff. GitHub renders it as a citation in APA and BibTeX. Cite the
software and the version you ran. mailwoman doctor prints the version. Cite the data tiers you used by
their vintage. Each artifact's manifest records it.
@software{mailwoman,
author = {Ellis, Teffen},
title = {Mailwoman},
url = {https://github.com/sister-software/mailwoman},
version = {10.7.0},
year = {2026}
}
What the data terms mean for a paper
The code license and the data license are separate questions. The reference data comes from open
sources with their own terms, and a paper that redistributes a derived dataset follows those terms.
mailwoman data pull prints each bundleevidence bundleThe pair of retrieval-augmented input channels (street-type + locality-surface) that feed lexicon membership as soft per-token evidence alongside the text. Shipped in 6.7.0; trained natively from step 0 in the from-scratch base line.'s publishers, terms and obligations before it transfers a byte,
and mailwoman license attribution prints what the installed weightsparameterA single learned number inside a model — one weight or bias. Mailwoman's encoder has roughly 30 million of them; training is the search for good values. packages owe upstream. Read
Security and compliance before you publish a derived dataset.
Reproducibility
Every artifact is sealed and dated, each weightsparameterA single learned number inside a model — one weight or bias. Mailwoman's encoder has roughly 30 million of them; training is the search for good values. package records its trainingtrainingThe process of adjusting a model's parameters so its predictions match labeled examples, by repeatedly measuring error and nudging the weights to reduce it. Distinct from inference, when the trained model is run on new input. sources in
PROVENANCE.json, and the published evaluation reports state the
held-out sets and the numbers for each release. A result from one version and one artifact vintage can
be reproduced from those records.