Is the fr.house_number 91% floor calibrated? — a SOTA + mechanism review (#564)
2026-06-13. Commissioned to answer two questions before deciding whether to ship the v1.5.0 recovery 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.' (fr.house_number 87.4%, +32.9pp over the shipped v4.5.0's 54.5%, missing the pre-registered 91% gate floor by 3.6pp): (1) why does the recovery plateau ~87% and backfire when pushed, and (2) is the 91% threshold an accurate measure of success for this case? Two independent inquiries — a literature/benchmark review and a DeepSeek-v4-pro architectural consult — converged on the same answers. Sources are listed at the end.
TL;DR
- The 91% floor is mis-calibrated for the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-first case. It was inherited from a canonical-order evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error. where housenumber is the _easiest field (published SOTA 99–100% F1). On the hard reordered/international case, the nearest published SOTA — Chinese flexible-order address parsingaddress 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. — reports house-number F1 of ~90–91%, and neural parsers collapse on reorder (deepparse: 100% → 28%; libpostallibpostalAn open-source C address parser used by Pelias. Mailwoman's rule-based v0 and neural classifier supersede it. overall 0.992 → 0.781). 87.4% is respectable-to-SOTA for this slice, not a failure. Both the literature and DeepSeek independently call the 91% bar wrong for this regime.
- The plateau-and-backfire is well-explained: a positional shortcut (the 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.' learned
"housenumber = the leading number" because real FR data is canonical-order) + a _synthetic-realism
/ distribution gap (overweighting synthetic reorder data shifts 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. away from the real
distribution and degrades it) + simplicity-bias fallback — when weightparameterA 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. 6.0 corrupts the
"leading-tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words." shortcut without supplying a real discriminator, the 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.' drops to the
next-simplest spurious cue ("leading digit"), which is exactly why
47110fragments into house_number4+ postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.7110. - The right levers are not weightparameterA 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.. Highest-ROI: protect the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree. using the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-anchor signal we already compute (a CRFCRF (Conditional Random Field). A statistical modeling method that predicts structured outputs by modeling dependencies between adjacent labels. Mailwoman uses a linear-chain CRF as the Viterbi decoder at inference time to enforce BIO label consistency — a B-street must be followed by I-street or O, never I-locality. transition penalty / consistency term against relabeling postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-anchored tokenstokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. as house_number), and gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture.-gated disambiguation (a number appearing right before a known localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. is overwhelmingly a postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.). Then curriculum/denoising of the synthetic weightparameterA 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., then real reordered data. Architecture (PE → RoPE/relative) is low-ROI here.
Question 1 — why it plateaus and backfires
The shipped 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.' reads by position, not meaning: it labelscomponent tagOne of the 33 labels in Mailwoman's address schema — street, locality, region, postcode, house_number, unit, po_box, country, venue, intersection, and others. Each parsed span carries exactly one component tag. the first number-shaped tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. as the house numberhouse numberThe numeric or alphanumeric identifier of a building on a street. Mailwoman's house_number component; its position relative to the street name flips between locales. because in French BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure. (canonical, streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-first) the house numberhouse numberThe numeric or alphanumeric identifier of a building on a street. Mailwoman's house_number component; its position relative to the street name flips between locales. almost always leads. This is a textbook shortcut (Geirhos et al. 2020): a cue that aces the 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. distribution and fails under shift. The mechanistic match is Yu et al. (NeurIPS 2025): low positional diversity → the transformerneural 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.' learns a positional shortcut rather than a content-based rule, and it's data diversity, not volume, that flips it. Our synthetic shardsynthetic shardA machine-generated training dataset that augments the real-address corpus with targeted variations — reversed word order, missing punctuation, all-caps, boundary-stress patterns. Teaches the model to handle edge cases not present in the reference data. adds diversity, which is why it helped (+32.9pp) — but synthetic diversity has a ceiling.
Why more weightparameterA 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. made it worse, with a new failure (postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. fragmentation):
- Synthetic-realism / distribution gap. Augmentation gains are regime-dependent and plateau (Chen et al., TACL 2023); past an optimal ratio, an overweighted augmentation shifts the 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. distribution away from real data and decreases performance (Wu et al. 2022, "On-the-fly Denoising"). At weightparameterA 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. 6.0 the synthetic shardsynthetic shardA machine-generated training dataset that augments the real-address corpus with targeted variations — reversed word order, missing punctuation, all-caps, boundary-stress patterns. Teaches the model to handle edge cases not present in the reference data. overwhelms real BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure. and the 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.' fits the generator's caricature of reordered French, not the real evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error. distribution.
- Simplicity-bias fallback (the fragmentation mechanism). When weightparameterA 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. 6.0 corrupts the dominant
"leading-tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. = housenumber" shortcut _without installing a robust discriminator, the 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.' falls
to the next-simplest spurious featurefeatureAn input signal a model conditions on. Beyond the raw tokens, Mailwoman feeds soft features — gazetteer-membership channels and the postcode anchor — that inform predictions without overriding them. rather than the intended one (Shah et al., "Pitfalls of
Simplicity Bias", NeurIPS 2020). Here that fallback is "leading digit" — so it carves a house
number (
4) out of the front of the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. (47110), leaving7110. This is the piece pure position-bias doesn't explain on its own, and it's the clearest signal that more of the same synthetic data is the wrong direction. - One thing to verify (cheap): does the synthetic shardsynthetic shardA machine-generated training dataset that augments the real-address corpus with targeted variations — reversed word order, missing punctuation, all-caps, boundary-stress patterns. Teaches the model to handle edge cases not present in the reference data. itself carry any tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words.-level label noiseannotation noiseErrors in human ground-truth labels (typically around 1%) that put an irreducible ceiling on eval metrics — no model can exceed the agreement of the labels it's graded against. at the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one./house_number boundary? Even 2–3% of rows splitting a labelcomponent tagOne of the 33 labels in Mailwoman's address schema — street, locality, region, postcode, house_number, unit, po_box, country, venue, intersection, and others. Each parsed span carries exactly one component tag. at a digit boundary would also produce fragmentation. Worth a check of the shardshardA partial output file of the corpus build, written in Parquet format. The training pipeline streams shards row by row.'s spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree. emission before the next run.
Why the German precedent didn't transfer: German house numbershouse numberThe numeric or alphanumeric identifier of a building on a street. Mailwoman's house_number component; its position relative to the street name flips between locales. are always last — one position to learn, so more practice sharpens the aim. FR postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-first puts a 5-digit and a 1–4-digit number in the same neighborhood; turning up exposure amplifies the "grab a leading number" bias instead of teaching discrimination.
Question 2 — is 91% an accurate measure?
No — it's a canonical-order bar applied to a reordered-order problem. The evidence:
| Setting | House-number / number-field accuracy | Source |
|---|---|---|
| Clean, canonical, US single-order | 99–100% F1 (housenumber is the _easiest field) | Yin et al. 2023 (US geocodinggeocodingThe process of converting an address into geographic coordinates (latitude and longitude). Mailwoman geocodes in a multi-tier cascade: exact address-point match → street interpolation → locality centroid. Each tier is progressively coarser but more widely available. benchmark) |
| Hard, flexible-order, non-Latin (Chinese) | HOUSENO F1 89.83–91.30% (numeric tail is the weak spot) | Li et al., NAACL 2019 |
| Reorder a learned countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head. (deepparse) | 100% → 28% sequence accuracy | Yassine/Beauchemin 2020 |
| Inverse-order zero-shotzero-shotEvaluating or predicting on a class or geography the model never saw in training, with no in-context examples — the strongest test of generalization. (Hungary/Japan) | 25.5% / 35.3% | Yassine/Beauchemin 2020 |
| libpostallibpostalAn open-source C address parser used by Pelias. Mailwoman's rule-based v0 and neural classifier supersede it. under reorder/noise | overall F1 0.992 → 0.781 | "Fighting crime with Transformersneural 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.'", NAACL 2024 |
The 91% floor was set against an easier (pre-#563, near-single-town) FR evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error. where the canonical-order regime made house*number near-trivial. On the diversified golden (#563, 56 localities, both orders), v4.5.0 itself scores only 54.5% — proof the evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error. got materially harder. Against the only published hard-case analog (~90–91%), 87.4% is at the frontier, not below a reasonable bar. Both the literature and the independent DeepSeek consult judged the 91% floor mis-calibrated and 87.4% respectable for this slice; DeepSeek's phrasing: *"87.4% on the single hardest subfield in the hardest order permutation is not a miss — it's plausibly stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.-of-the-art for this specific slice."_
This does not mean re-baseline silently — that would violate the no-silent-gate-drift discipline. It means: if we lower the floor, do it as a stated, reasoned decision anchored to this literature (a defensible bar is ~85–90% for the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-first slice), recorded in the gate config and the ledger.
Reframed recommendation
The research shifts my earlier "hold" lean. The honest reading:
- The shipped v4.5.0 is the weaker 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.' for this slice (54.5%). v1.5.0 (87.4%) is a large, honest improvement that sits at the literature frontier for reordered house numbershouse numberThe numeric or alphanumeric identifier of a building on a street. Mailwoman's house_number component; its position relative to the street name flips between locales.. Holding it back against a bar that the SOTA itself can't clear is hard to justify.
- So the defensible path is: re-baseline the
fr.house_numberfloor to a literature-anchored ~88–90% (stated + reasoned in the gate config + ledger), and ship v1.5.0 — while opening the targeted-lever work below as the real fix. This is the operator's call to make explicitly; the research removes the ambiguity that made it a coin-flip. - Next improvement is cheap and targeted, not another weightparameterA 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. tweak: (1) postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-anchor spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree. protection (we already compute the signal — add a consistency term / CRFCRF (Conditional Random Field). A statistical modeling method that predicts structured outputs by modeling dependencies between adjacent labels. Mailwoman uses a linear-chain CRF as the Viterbi decoder at inference time to enforce BIO label consistency — a B-street must be followed by I-street or O, never I-locality. penalty so postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-anchored tokenstokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. can't be relabeled house_number), (2) gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture.-gated numeric disambiguation (a number before a known localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. is a postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.), (3) curriculum/denoising of the synthetic weightparameterA 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., (4) real reordered data. (3)+(1) likely recover the last few points without the weightparameterA 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.-6.0 backfire.
Levers, ranked (DeepSeek + literature consensus)
- PostcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-anchor spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree. protection — highest ROI; reuses an existing signal; directly kills the fragmentation. No data/architecture change.
- Curriculum / denoising — decay synthetic weightparameterA 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. 3.0 → ~0.5–1.0, or per-tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. lossloss functionA number measuring how wrong the model's predictions are on a batch of examples. Training minimizes it. Mailwoman's loss combines per-token negative log-likelihood with the CRF sequence loss. reweighting on conflicting labelscomponent tagOne of the 33 labels in Mailwoman's address schema — street, locality, region, postcode, house_number, unit, po_box, country, venue, intersection, and others. Each parsed span carries exactly one component tag.; preserves the +32.9pp without letting synthetic dominate late 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..
- Real reordered data — high but expensive; ~500–1000 real postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.-first FR rows likely beat 10K synthetic (real co-occurrence statistics teach the discrimination synthetic can't).
- Architecture (PE → RoPE/relative/NoPE) — low-ROI here; the Chinese SOTA hits ~91% with standard transformersneural 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.', and the confusion is also tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words.-identity (both are digit strings), which RoPE doesn't fix. Only if 1–3 fail.
- Missing lever DeepSeek surfaced: gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture.-gated disambiguation — concatenate a "gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture.-localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.-hit-in-same-utterance" flag so the 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.' learns "5-digit number before a known localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. = postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one.." Leverages an existing component; directly targets the confusion pair.
References
Address-parsingaddress 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. benchmarks / SOTA
- libpostallibpostalAn open-source C address parser used by Pelias. Mailwoman's rule-based v0 and neural classifier supersede it. — 99.45% full-parseaddress 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. (whole-sequence, not per-component); OSMOpenStreetMap (OSM). A community-curated global map database (ODbL-licensed) with addr:* tagged features and place hierarchies. A secondary corpus source and a source of street names. + format-template ordering. https://github.com/openvenues/libpostal
- Yassine, Beauchemin, et al., "Leveraging Subword EmbeddingsembeddingA vector of numbers representing a token (or other item) so that similar items sit near each other in vector space. The first thing the model does is turn each token into an embedding. for Multinational Address Parsingaddress 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." (deepparse), 2020. Reorder-collapse + inverse-order zero-shotzero-shotEvaluating or predicting on a class or geography the model never saw in training, with no in-context examples — the strongest test of generalization.. https://arxiv.org/abs/2006.16152 · library: https://arxiv.org/abs/2311.11846 · https://deepparse.org/
- Yin, Li, Goldberg, "Is ChatGPT a game changer for geocodinggeocodingThe process of converting an address into geographic coordinates (latitude and longitude). Mailwoman geocodes in a multi-tier cascade: exact address-point match → street interpolation → locality centroid. Each tier is progressively coarser but more widely available.", SIGSPATIAL workshop 2023. Per-component house_number F1 (99–100% on clean US). https://arxiv.org/abs/2310.14360 · benchmark: https://github.com/zhengcongyin/Geocoding-Address-Parsing-Benchmark
- Li, Lu, Xie, Li, "Neural Chinese Address Parsingaddress 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.", NAACL 2019. HOUSENO F1 89.83–91.30% (hard flexible-order analog). https://aclanthology.org/N19-1346/
- "Fighting crime with Transformersneural 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.'" (address parsingaddress 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. under noise/reorder), NAACL 2024 industry. libpostallibpostalAn open-source C address parser used by Pelias. Mailwoman's rule-based v0 and neural classifier supersede it. 0.992 → 0.781 under reorder. https://arxiv.org/abs/2404.05632 (per-version F1 read via page summary; verify Table 3 before quoting exact decimals)
- PeliasPeliasAn open-source geocoder, Mailwoman's spiritual predecessor. parser — no published accuracy numbers (architectural docs only). https://github.com/pelias/parser
Mechanism — shortcut/position bias + synthetic-data gap
- Geirhos et al., "Shortcut Learning in Deep Neural Networksneural networkA model made of layers of simple numeric units whose connection strengths (weights) are learned from data. The transformer encoder at Mailwoman's core is a neural network.", Nature Machine Intelligence 2020. https://www.nature.com/articles/s42256-020-00257-z
- Yu et al., "From Shortcut to Induction Headattention headOne of several parallel attention computations in a layer, each free to focus on a different kind of relationship between tokens. Their outputs are concatenated — 'multi-head attention'. Mailwoman uses 4 heads.: How Data Diversity Shapes Algorithm Selection in Transformersneural 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.'", NeurIPS 2025 (positional shortcut vs. content rule; diversity not volume). https://arxiv.org/abs/2512.18634 (very recent)
- Shah et al., "The Pitfalls of Simplicity Bias in Neural Networksneural networkA model made of layers of simple numeric units whose connection strengths (weights) are learned from data. The transformer encoder at Mailwoman's core is a neural network.", NeurIPS 2020 (fallback to next-simplest spurious featurefeatureAn input signal a model conditions on. Beyond the raw tokens, Mailwoman feeds soft features — gazetteer-membership channels and the postcode anchor — that inform predictions without overriding them. — the fragmentation mechanism). https://arxiv.org/abs/2006.07710
- Wu et al., "On-the-fly Denoising for Data Augmentation in NLU", EACL 2023 Findings (overweighted augmentation → distribution shift → performance decrease). https://arxiv.org/abs/2212.10558
- Chen et al., "An Empirical Survey of Data Augmentation for Limited Data Learning in NLP", TACL 2023 (augmentation gains are regime-dependent / plateau). https://arxiv.org/abs/2106.07499
- Papadimitriou, Futrell, Mahowald, "When classifying grammatical role, BERT doesn't care about word order… except when it matters", ACL 2022. https://arxiv.org/abs/2203.06204
- Kazemnejad et al., "The Impact of Positional Encoding on Length GeneralizationgeneralizationA trained model's performance on data unlike its training set — new regions, new input distributions. The property honest eval is designed to measure. in Transformersneural 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.'", NeurIPS 2023 (absolute/learned PE overfits to seen positions). https://arxiv.org/abs/2305.19466
- Dai & Adel, "An Analysis of Simple Data Augmentation for NER", COLING 2020. https://arxiv.org/abs/2010.11683
Independent DeepSeek-v4-pro consult (2026-06-13) reached the same two top-line conclusions (91% floor
mis-calibrated; levers are anchor-protection + curriculum + real data, not weightparameterA 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.) and contributed the
simplicity-bias-fallback explanation and the gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture.-gating lever. Transcript distilled into this
note; raw at ~/.cache/ds-consult/sessions/.