@mailwoman/corpus 9.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/data/PROVENANCE.md +214 -0
- package/data/sub-venue-lexicon.json +18269 -0
- package/out/src/adapters/ban/adapter.d.ts +1 -1
- package/out/src/adapters/ban/adapter.d.ts.map +1 -1
- package/out/src/adapters/ban/adapter.js +2 -2
- package/out/src/adapters/ban/adapter.js.map +1 -1
- package/out/src/adapters/fcc-bdc/adapter.d.ts +1 -1
- package/out/src/adapters/fcc-bdc/adapter.d.ts.map +1 -1
- package/out/src/adapters/fcc-bdc/adapter.js +3 -3
- package/out/src/adapters/fcc-bdc/adapter.js.map +1 -1
- package/out/src/adapters/geonames/adapter.d.ts +1 -1
- package/out/src/adapters/geonames/adapter.d.ts.map +1 -1
- package/out/src/adapters/geonames/adapter.js +2 -2
- package/out/src/adapters/geonames/adapter.js.map +1 -1
- package/out/src/adapters/geonames-postal/adapter.d.ts +1 -1
- package/out/src/adapters/geonames-postal/adapter.d.ts.map +1 -1
- package/out/src/adapters/geonames-postal/adapter.js +2 -2
- package/out/src/adapters/geonames-postal/adapter.js.map +1 -1
- package/out/src/adapters/gnaf/adapter.d.ts +1 -1
- package/out/src/adapters/gnaf/adapter.d.ts.map +1 -1
- package/out/src/adapters/gnaf/adapter.js +2 -2
- package/out/src/adapters/gnaf/adapter.js.map +1 -1
- package/out/src/adapters/gnaf/assemble.js +1 -1
- package/out/src/adapters/gnaf/assemble.js.map +1 -1
- package/out/src/adapters/index.d.ts +1 -1
- package/out/src/adapters/index.d.ts.map +1 -1
- package/out/src/adapters/index.js +1 -1
- package/out/src/adapters/index.js.map +1 -1
- package/out/src/adapters/openaddresses/adapter.d.ts +1 -1
- package/out/src/adapters/openaddresses/adapter.d.ts.map +1 -1
- package/out/src/adapters/openaddresses/adapter.js +3 -3
- package/out/src/adapters/openaddresses/adapter.js.map +1 -1
- package/out/src/adapters/overture/adapter.d.ts +1 -1
- package/out/src/adapters/overture/adapter.d.ts.map +1 -1
- package/out/src/adapters/overture/adapter.js +2 -2
- package/out/src/adapters/overture/adapter.js.map +1 -1
- package/out/src/adapters/state-hi-schools/adapter.d.ts +1 -1
- package/out/src/adapters/state-hi-schools/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-hi-schools/adapter.js +3 -3
- package/out/src/adapters/state-hi-schools/adapter.js.map +1 -1
- package/out/src/adapters/state-ia-contractors/adapter.d.ts +1 -1
- package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-ia-contractors/adapter.js +3 -3
- package/out/src/adapters/state-ia-contractors/adapter.js.map +1 -1
- package/out/src/adapters/state-ny-notaries/adapter.d.ts +1 -1
- package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-ny-notaries/adapter.js +3 -3
- package/out/src/adapters/state-ny-notaries/adapter.js.map +1 -1
- package/out/src/adapters/state-tx-notaries/adapter.d.ts +1 -1
- package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-tx-notaries/adapter.js +3 -3
- package/out/src/adapters/state-tx-notaries/adapter.js.map +1 -1
- package/out/src/adapters/synth-po-box/adapter.d.ts +3 -3
- package/out/src/adapters/synth-po-box/adapter.d.ts.map +1 -1
- package/out/src/adapters/synth-po-box/adapter.js +3 -3
- package/out/src/adapters/synth-po-box/adapter.js.map +1 -1
- package/out/src/adapters/tiger/adapter.d.ts +1 -1
- package/out/src/adapters/tiger/adapter.d.ts.map +1 -1
- package/out/src/adapters/tiger/adapter.js +2 -2
- package/out/src/adapters/tiger/adapter.js.map +1 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +1 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +3 -3
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -1
- package/out/src/adapters/usgov-imls-pls/adapter.d.ts +1 -1
- package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-imls-pls/adapter.js +3 -3
- package/out/src/adapters/usgov-imls-pls/adapter.js.map +1 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +1 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.js +2 -2
- package/out/src/adapters/usgov-irs-bmf/adapter.js.map +1 -1
- package/out/src/adapters/usgov-nad/adapter.d.ts +1 -1
- package/out/src/adapters/usgov-nad/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-nad/adapter.js +1 -1
- package/out/src/adapters/usgov-nad/adapter.js.map +1 -1
- package/out/src/adapters/usgov-nppes/adapter.d.ts +1 -1
- package/out/src/adapters/usgov-nppes/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-nppes/adapter.js +3 -3
- package/out/src/adapters/usgov-nppes/adapter.js.map +1 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts +1 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +3 -3
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -1
- package/out/src/{adapter.d.ts → adapters/utils/index.d.ts} +2 -2
- package/out/src/adapters/utils/index.d.ts.map +1 -0
- package/out/src/{adapter.js → adapters/utils/index.js} +1 -1
- package/out/src/adapters/utils/index.js.map +1 -0
- package/out/src/adapters/wof-admin-jp/adapter.d.ts +1 -1
- package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +1 -1
- package/out/src/adapters/wof-admin-json/adapter.d.ts +2 -2
- package/out/src/adapters/wof-admin-json/adapter.d.ts.map +1 -1
- package/out/src/adapters/wof-admin-json/adapter.js +2 -2
- package/out/src/adapters/wof-admin-json/adapter.js.map +1 -1
- package/out/src/adapters/wof-postalcode-json/adapter.d.ts +2 -2
- package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +1 -1
- package/out/src/adapters/wof-postalcode-json/adapter.js +2 -2
- package/out/src/adapters/wof-postalcode-json/adapter.js.map +1 -1
- package/out/src/build.d.ts +3 -4
- package/out/src/build.d.ts.map +1 -1
- package/out/src/build.js +4 -7
- package/out/src/build.js.map +1 -1
- package/out/src/index.d.ts +3 -17
- package/out/src/index.d.ts.map +1 -1
- package/out/src/index.js +3 -17
- package/out/src/index.js.map +1 -1
- package/out/src/name-prone-us-suffixes.d.ts +12 -0
- package/out/src/name-prone-us-suffixes.d.ts.map +1 -0
- package/out/src/name-prone-us-suffixes.js +12 -0
- package/out/src/name-prone-us-suffixes.js.map +1 -0
- package/out/src/runner.d.ts +2 -2
- package/out/src/runner.d.ts.map +1 -1
- package/out/src/runner.js +1 -1
- package/out/src/runner.js.map +1 -1
- package/out/src/shard-recipes/anchor-absorption.js +3 -3
- package/out/src/shard-recipes/anchor-absorption.js.map +1 -1
- package/out/src/shard-recipes/boundary-stress.d.ts.map +1 -1
- package/out/src/shard-recipes/boundary-stress.js +2 -2
- package/out/src/shard-recipes/boundary-stress.js.map +1 -1
- package/out/src/shard-recipes/country-balanced.d.ts.map +1 -1
- package/out/src/shard-recipes/country-balanced.js +10 -18
- package/out/src/shard-recipes/country-balanced.js.map +1 -1
- package/out/src/shard-recipes/fr-admin-split.js +2 -2
- package/out/src/shard-recipes/fr-admin-split.js.map +1 -1
- package/out/src/shard-recipes/fr-lieudit.js +2 -2
- package/out/src/shard-recipes/fr-lieudit.js.map +1 -1
- package/out/src/shard-recipes/fr-order.d.ts.map +1 -1
- package/out/src/shard-recipes/fr-order.js +9 -19
- package/out/src/shard-recipes/fr-order.js.map +1 -1
- package/out/src/shard-recipes/german.d.ts.map +1 -1
- package/out/src/shard-recipes/german.js +8 -14
- package/out/src/shard-recipes/german.js.map +1 -1
- package/out/src/shard-recipes/house-venue.d.ts.map +1 -1
- package/out/src/shard-recipes/house-venue.js +1 -1
- package/out/src/shard-recipes/house-venue.js.map +1 -1
- package/out/src/shard-recipes/index.d.ts.map +1 -1
- package/out/src/shard-recipes/index.js +2 -1
- package/out/src/shard-recipes/index.js.map +1 -1
- package/out/src/shard-recipes/intersection.d.ts.map +1 -1
- package/out/src/shard-recipes/intersection.js +6 -12
- package/out/src/shard-recipes/intersection.js.map +1 -1
- package/out/src/shard-recipes/locale.d.ts +5 -5
- package/out/src/shard-recipes/locale.d.ts.map +1 -1
- package/out/src/shard-recipes/locale.js +11 -19
- package/out/src/shard-recipes/locale.js.map +1 -1
- package/out/src/shard-recipes/no-street.d.ts.map +1 -1
- package/out/src/shard-recipes/no-street.js +1 -1
- package/out/src/shard-recipes/no-street.js.map +1 -1
- package/out/src/shard-recipes/po-box-cedex.d.ts.map +1 -1
- package/out/src/shard-recipes/po-box-cedex.js +60 -43
- package/out/src/shard-recipes/po-box-cedex.js.map +1 -1
- package/out/src/shard-recipes/po-box.d.ts.map +1 -1
- package/out/src/shard-recipes/po-box.js +1 -1
- package/out/src/shard-recipes/po-box.js.map +1 -1
- package/out/src/shard-recipes/scaffold.d.ts +18 -19
- package/out/src/shard-recipes/scaffold.d.ts.map +1 -1
- package/out/src/shard-recipes/scaffold.js +56 -19
- package/out/src/shard-recipes/scaffold.js.map +1 -1
- package/out/src/shard-recipes/street-affix.d.ts +54 -0
- package/out/src/shard-recipes/street-affix.d.ts.map +1 -1
- package/out/src/shard-recipes/street-affix.js +203 -35
- package/out/src/shard-recipes/street-affix.js.map +1 -1
- package/out/src/shard-recipes/street-bare.d.ts.map +1 -1
- package/out/src/shard-recipes/street-bare.js +3 -3
- package/out/src/shard-recipes/street-bare.js.map +1 -1
- package/out/src/shard-recipes/street.d.ts.map +1 -1
- package/out/src/shard-recipes/street.js +2 -2
- package/out/src/shard-recipes/street.js.map +1 -1
- package/out/src/shard-recipes/sub-venue-sources.d.ts +3 -6
- package/out/src/shard-recipes/sub-venue-sources.d.ts.map +1 -1
- package/out/src/shard-recipes/sub-venue-sources.js +4 -9
- package/out/src/shard-recipes/sub-venue-sources.js.map +1 -1
- package/out/src/shard-recipes/sub-venue.d.ts +2 -2
- package/out/src/shard-recipes/sub-venue.d.ts.map +1 -1
- package/out/src/shard-recipes/sub-venue.js +2 -2
- package/out/src/shard-recipes/sub-venue.js.map +1 -1
- package/out/src/shard-recipes/unit.d.ts.map +1 -1
- package/out/src/shard-recipes/unit.js +6 -12
- package/out/src/shard-recipes/unit.js.map +1 -1
- package/out/src/{synthesize-anchor-absorption.d.ts → synthesizers/anchor-absorption.d.ts} +1 -1
- package/out/src/synthesizers/anchor-absorption.d.ts.map +1 -0
- package/out/src/{synthesize-anchor-absorption.js → synthesizers/anchor-absorption.js} +1 -1
- package/out/src/synthesizers/anchor-absorption.js.map +1 -0
- package/out/src/{synthesize-boundary-stress.d.ts → synthesizers/boundary-stress.d.ts} +3 -3
- package/out/src/synthesizers/boundary-stress.d.ts.map +1 -0
- package/out/src/{synthesize-boundary-stress.js → synthesizers/boundary-stress.js} +2 -2
- package/out/src/synthesizers/boundary-stress.js.map +1 -0
- package/out/src/{synthesize-german.d.ts → synthesizers/german.d.ts} +2 -2
- package/out/src/synthesizers/german.d.ts.map +1 -0
- package/out/src/{synthesize-german.js → synthesizers/german.js} +2 -2
- package/out/src/synthesizers/german.js.map +1 -0
- package/out/src/{synthesize-house-venue.d.ts → synthesizers/house-venue.d.ts} +4 -4
- package/out/src/synthesizers/house-venue.d.ts.map +1 -0
- package/out/src/{synthesize-house-venue.js → synthesizers/house-venue.js} +4 -4
- package/out/src/synthesizers/house-venue.js.map +1 -0
- package/out/src/{synthesize-intersection.d.ts → synthesizers/intersection.d.ts} +2 -2
- package/out/src/synthesizers/intersection.d.ts.map +1 -0
- package/out/src/{synthesize-intersection.js → synthesizers/intersection.js} +1 -1
- package/out/src/synthesizers/intersection.js.map +1 -0
- package/out/src/{synthesize-no-street.d.ts → synthesizers/no-street.d.ts} +3 -3
- package/out/src/synthesizers/no-street.d.ts.map +1 -0
- package/out/src/{synthesize-no-street.js → synthesizers/no-street.js} +2 -2
- package/out/src/synthesizers/no-street.js.map +1 -0
- package/out/src/{synthesize-po-box.d.ts → synthesizers/po-box.d.ts} +2 -2
- package/out/src/synthesizers/po-box.d.ts.map +1 -0
- package/out/src/{synthesize-po-box.js → synthesizers/po-box.js} +1 -1
- package/out/src/synthesizers/po-box.js.map +1 -0
- package/out/src/{synthesize-street.d.ts → synthesizers/street.d.ts} +2 -2
- package/out/src/synthesizers/street.d.ts.map +1 -0
- package/out/src/{synthesize-street.js → synthesizers/street.js} +2 -2
- package/out/src/synthesizers/street.js.map +1 -0
- package/out/src/{synthesize.d.ts → synthesizers/utils.d.ts} +3 -3
- package/out/src/synthesizers/utils.d.ts.map +1 -0
- package/out/src/{synthesize.js → synthesizers/utils.js} +3 -3
- package/out/src/synthesizers/utils.js.map +1 -0
- package/out/src/tools/align-shard.js +1 -1
- package/out/src/tools/align-shard.js.map +1 -1
- package/out/src/tools/fetch/imls-pls.d.ts.map +1 -1
- package/out/src/tools/fetch/imls-pls.js +3 -15
- package/out/src/tools/fetch/imls-pls.js.map +1 -1
- package/out/src/tools/fetch/nppes.d.ts.map +1 -1
- package/out/src/tools/fetch/nppes.js +8 -15
- package/out/src/tools/fetch/nppes.js.map +1 -1
- package/out/src/tools/golden-relabel-street.d.ts.map +1 -1
- package/out/src/tools/golden-relabel-street.js +2 -75
- package/out/src/tools/golden-relabel-street.js.map +1 -1
- package/out/src/tools/shard-kryptonite.d.ts.map +1 -1
- package/out/src/tools/shard-kryptonite.js +1 -2
- package/out/src/tools/shard-kryptonite.js.map +1 -1
- package/out/src/tools/shard-translit.d.ts.map +1 -1
- package/out/src/tools/shard-translit.js +1 -2
- package/out/src/tools/shard-translit.js.map +1 -1
- package/out/src/{align.d.ts → utils/align.d.ts} +1 -1
- package/out/src/utils/align.d.ts.map +1 -0
- package/out/src/utils/align.js.map +1 -0
- package/out/src/utils/golden.d.ts.map +1 -0
- package/out/src/{golden.js → utils/golden.js} +1 -1
- package/out/src/utils/golden.js.map +1 -0
- package/out/src/utils/index.d.ts +14 -0
- package/out/src/utils/index.d.ts.map +1 -0
- package/out/src/utils/index.js +14 -0
- package/out/src/utils/index.js.map +1 -0
- package/out/src/utils/license.d.ts.map +1 -0
- package/out/src/utils/license.js.map +1 -0
- package/out/src/{parquet.d.ts → utils/parquet.d.ts} +2 -2
- package/out/src/utils/parquet.d.ts.map +1 -0
- package/out/src/{parquet.js → utils/parquet.js} +1 -2
- package/out/src/utils/parquet.js.map +1 -0
- package/out/src/{split.d.ts → utils/split.d.ts} +1 -1
- package/out/src/utils/split.d.ts.map +1 -0
- package/out/src/utils/split.js.map +1 -0
- package/out/src/utils/tokenize.d.ts.map +1 -0
- package/out/src/utils/tokenize.js.map +1 -0
- package/out/src/utils/wof-json.d.ts.map +1 -0
- package/out/src/utils/wof-json.js.map +1 -0
- package/package.json +64 -18
- package/src/adapters/ban/adapter.ts +3 -3
- package/src/adapters/fcc-bdc/adapter.ts +4 -4
- package/src/adapters/geonames/adapter.ts +3 -4
- package/src/adapters/geonames-postal/adapter.ts +3 -4
- package/src/adapters/gnaf/adapter.ts +3 -4
- package/src/adapters/gnaf/assemble.ts +1 -1
- package/src/adapters/index.ts +3 -2
- package/src/adapters/openaddresses/adapter.ts +4 -5
- package/src/adapters/overture/adapter.ts +3 -4
- package/src/adapters/state-hi-schools/adapter.ts +4 -5
- package/src/adapters/state-ia-contractors/adapter.ts +4 -5
- package/src/adapters/state-ny-notaries/adapter.ts +4 -5
- package/src/adapters/state-tx-notaries/adapter.ts +4 -5
- package/src/adapters/synth-po-box/adapter.ts +5 -6
- package/src/adapters/tiger/adapter.ts +4 -3
- package/src/adapters/usgov-hrsa-fqhc/adapter.ts +4 -5
- package/src/adapters/usgov-imls-pls/adapter.ts +4 -5
- package/src/adapters/usgov-irs-bmf/adapter.ts +3 -4
- package/src/adapters/usgov-nad/adapter.ts +2 -3
- package/src/adapters/usgov-nppes/adapter.ts +4 -5
- package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +4 -5
- package/src/{adapter.ts → adapters/utils/index.ts} +1 -2
- package/src/adapters/wof-admin-jp/adapter.ts +1 -1
- package/src/adapters/wof-admin-json/adapter.ts +3 -4
- package/src/adapters/wof-postalcode-json/adapter.ts +3 -4
- package/src/build.ts +10 -10
- package/src/index.ts +3 -17
- package/src/name-prone-us-suffixes.ts +12 -0
- package/src/runner.ts +7 -2
- package/src/shard-recipes/anchor-absorption.ts +3 -3
- package/src/shard-recipes/boundary-stress.ts +6 -2
- package/src/shard-recipes/country-balanced.ts +11 -24
- package/src/shard-recipes/fr-admin-split.ts +3 -3
- package/src/shard-recipes/fr-lieudit.ts +3 -3
- package/src/shard-recipes/fr-order.ts +10 -25
- package/src/shard-recipes/german.ts +8 -18
- package/src/shard-recipes/house-venue.ts +2 -1
- package/src/shard-recipes/index.ts +2 -1
- package/src/shard-recipes/intersection.ts +7 -16
- package/src/shard-recipes/locale.ts +17 -23
- package/src/shard-recipes/no-street.ts +2 -1
- package/src/shard-recipes/po-box-cedex.ts +76 -59
- package/src/shard-recipes/po-box.ts +6 -1
- package/src/shard-recipes/scaffold.ts +64 -20
- package/src/shard-recipes/street-affix.ts +283 -45
- package/src/shard-recipes/street-bare.ts +4 -3
- package/src/shard-recipes/street.ts +3 -2
- package/src/shard-recipes/sub-venue-sources.ts +11 -11
- package/src/shard-recipes/sub-venue.ts +4 -4
- package/src/shard-recipes/unit.ts +7 -17
- package/src/{synthesize-boundary-stress.ts → synthesizers/boundary-stress.ts} +2 -2
- package/src/{synthesize-german.ts → synthesizers/german.ts} +2 -2
- package/src/{synthesize-house-venue.ts → synthesizers/house-venue.ts} +4 -4
- package/src/{synthesize-intersection.ts → synthesizers/intersection.ts} +1 -1
- package/src/{synthesize-no-street.ts → synthesizers/no-street.ts} +2 -2
- package/src/{synthesize-po-box.ts → synthesizers/po-box.ts} +1 -1
- package/src/{synthesize-street.ts → synthesizers/street.ts} +2 -2
- package/src/{synthesize.ts → synthesizers/utils.ts} +3 -3
- package/src/tools/align-shard.ts +1 -1
- package/src/tools/fetch/imls-pls.ts +4 -18
- package/src/tools/fetch/nppes.ts +9 -17
- package/src/tools/golden-relabel-street.ts +3 -66
- package/src/tools/shard-kryptonite.ts +3 -5
- package/src/tools/shard-translit.ts +10 -4
- package/src/{align.ts → utils/align.ts} +1 -1
- package/src/{golden.ts → utils/golden.ts} +1 -2
- package/src/utils/index.ts +14 -0
- package/src/{parquet.ts → utils/parquet.ts} +2 -3
- package/src/{split.ts → utils/split.ts} +1 -2
- package/out/src/adapter.d.ts.map +0 -1
- package/out/src/adapter.js.map +0 -1
- package/out/src/align.d.ts.map +0 -1
- package/out/src/align.js.map +0 -1
- package/out/src/format.d.ts +0 -14
- package/out/src/format.d.ts.map +0 -1
- package/out/src/format.js +0 -14
- package/out/src/format.js.map +0 -1
- package/out/src/golden.d.ts.map +0 -1
- package/out/src/golden.js.map +0 -1
- package/out/src/license.d.ts.map +0 -1
- package/out/src/license.js.map +0 -1
- package/out/src/parquet.d.ts.map +0 -1
- package/out/src/parquet.js.map +0 -1
- package/out/src/split.d.ts.map +0 -1
- package/out/src/split.js.map +0 -1
- package/out/src/synthesize-anchor-absorption.d.ts.map +0 -1
- package/out/src/synthesize-anchor-absorption.js.map +0 -1
- package/out/src/synthesize-boundary-stress.d.ts.map +0 -1
- package/out/src/synthesize-boundary-stress.js.map +0 -1
- package/out/src/synthesize-german.d.ts.map +0 -1
- package/out/src/synthesize-german.js.map +0 -1
- package/out/src/synthesize-house-venue.d.ts.map +0 -1
- package/out/src/synthesize-house-venue.js.map +0 -1
- package/out/src/synthesize-intersection.d.ts.map +0 -1
- package/out/src/synthesize-intersection.js.map +0 -1
- package/out/src/synthesize-no-street.d.ts.map +0 -1
- package/out/src/synthesize-no-street.js.map +0 -1
- package/out/src/synthesize-po-box.d.ts.map +0 -1
- package/out/src/synthesize-po-box.js.map +0 -1
- package/out/src/synthesize-street.d.ts.map +0 -1
- package/out/src/synthesize-street.js.map +0 -1
- package/out/src/synthesize.d.ts.map +0 -1
- package/out/src/synthesize.js.map +0 -1
- package/out/src/tokenize.d.ts.map +0 -1
- package/out/src/tokenize.js.map +0 -1
- package/out/src/wof-json.d.ts.map +0 -1
- package/out/src/wof-json.js.map +0 -1
- package/src/format.ts +0 -14
- /package/out/src/{align.js → utils/align.js} +0 -0
- /package/out/src/{golden.d.ts → utils/golden.d.ts} +0 -0
- /package/out/src/{license.d.ts → utils/license.d.ts} +0 -0
- /package/out/src/{license.js → utils/license.js} +0 -0
- /package/out/src/{split.js → utils/split.js} +0 -0
- /package/out/src/{tokenize.d.ts → utils/tokenize.d.ts} +0 -0
- /package/out/src/{tokenize.js → utils/tokenize.js} +0 -0
- /package/out/src/{wof-json.d.ts → utils/wof-json.d.ts} +0 -0
- /package/out/src/{wof-json.js → utils/wof-json.js} +0 -0
- /package/src/{synthesize-anchor-absorption.ts → synthesizers/anchor-absorption.ts} +0 -0
- /package/src/{license.ts → utils/license.ts} +0 -0
- /package/src/{tokenize.ts → utils/tokenize.ts} +0 -0
- /package/src/{wof-json.ts → utils/wof-json.ts} +0 -0
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
* canonical → `alignRow` → `LabeledRow` JSONL emit step. A recipe ({@link ShardRecipe}) supplies
|
|
9
9
|
* only its synthesis + filter; the `mailwoman corpus shard <recipe>` command supplies the I/O.
|
|
10
10
|
*/
|
|
11
|
+
import { existsSync } from "node:fs";
|
|
12
|
+
import { readZipEntry } from "@mailwoman/core/fs/zip";
|
|
11
13
|
import { tryParsingJSON } from "@mailwoman/core/objects";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
14
|
+
import { stableSourceID } from "@mailwoman/corpus/adapters/utils";
|
|
15
|
+
import { alignRow } from "@mailwoman/corpus/utils";
|
|
16
|
+
import { AsyncSequence, CSVSpliterator } from "spliterator";
|
|
15
17
|
/**
|
|
16
18
|
* {@link stableSourceID}, but accepting arbitrary disambiguator keys (e.g. a variant index `v`) that aren't
|
|
17
19
|
* `ComponentTag`s. `stableSourceID` sorts + hashes EVERY key it's given, so passing extra keys is how the legacy
|
|
@@ -33,17 +35,24 @@ export function shardSourceID(adapterID, parts) {
|
|
|
33
35
|
*/
|
|
34
36
|
export { makeLcg, mulberry32 as makeMulberry32, makeLcg as makeRandom } from "@mailwoman/core/utils";
|
|
35
37
|
/**
|
|
36
|
-
* Read an in-memory CSV (an `unzip -p` buffer, say) as header-keyed records.
|
|
37
|
-
*
|
|
38
38
|
* Quote handling spans the ROW split, not only the column split: a newline inside a quoted field belongs to a single
|
|
39
39
|
* record, so the record boundaries can only be found by a scanner that already knows where the quotes are. Find the
|
|
40
40
|
* lines first and unquote afterwards and such a record splits in two — the first half short by however many columns
|
|
41
41
|
* followed the newline, which is how a `street` value comes to be read as `city`.
|
|
42
42
|
*
|
|
43
|
+
* `header: false` keeps the first record in the stream, so this module owns the lower-casing rather than
|
|
44
|
+
* `normalizeKeys` — see {@link toHeader}.
|
|
45
|
+
*/
|
|
46
|
+
const CSV_INIT = { header: false, enableQuoteHandling: true };
|
|
47
|
+
/**
|
|
43
48
|
* Header names are lower-cased on the way in. `normalizeKeys` will not do it: it leaves an ALL CAPS header alone, and
|
|
44
49
|
* OpenAddresses ships `LON,LAT,NUMBER,STREET` while other extracts ship the same names lower-case. A recipe names its
|
|
45
50
|
* columns in lower case either way.
|
|
46
|
-
|
|
51
|
+
*/
|
|
52
|
+
function toHeader(cells) {
|
|
53
|
+
return cells.map((name) => name.trim().toLowerCase());
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
47
56
|
* Line breaks inside a value become single spaces. A quote-aware parse is the first thing here able to return a value
|
|
48
57
|
* CONTAINING one — `us/ia/statewide.csv` has 12, all unit designators like `"#2\n#2"` — and every consumer synthesizes
|
|
49
58
|
* one-line address text from these cells with no guard, because until that parse landed no value could carry one.
|
|
@@ -53,22 +62,50 @@ export { makeLcg, mulberry32 as makeMulberry32, makeLcg as makeRandom } from "@m
|
|
|
53
62
|
* Only `\r` and `\n`, deliberately — NOT `\s`. Runs of spaces and tabs pass through exactly as the source wrote them
|
|
54
63
|
* (OA's IA extract writes `NORTH`, three spaces, `MAIN STREET`), because those could always appear and every shard
|
|
55
64
|
* built to date contains them. Widening this to `\s+` silently rewrites values on rows with no line break at all.
|
|
56
|
-
* `scaffold.test.ts` pins both halves.
|
|
65
|
+
* `scaffold.test.ts` pins both halves, against both readers.
|
|
57
66
|
*/
|
|
58
|
-
|
|
67
|
+
function toRecord(header, cells) {
|
|
68
|
+
const record = {};
|
|
69
|
+
for (let i = 0; i < header.length; i++) {
|
|
70
|
+
record[header[i]] = (cells[i] ?? "").replaceAll(/[\r\n]+/g, " ").trim();
|
|
71
|
+
}
|
|
72
|
+
return record;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Read a CSV as header-keyed records.
|
|
76
|
+
*
|
|
77
|
+
* Returns the spliterator's own {@linkcode AsyncSequence}, so a caller composes `take`/`drop`/`filter` onto it — those
|
|
78
|
+
* ops fuse into one pull loop, and a `take` that is satisfied closes the source's file handle on the way out. Wrapping
|
|
79
|
+
* this in an `async function*` costs an async frame per row and takes those ops away; don't.
|
|
80
|
+
*
|
|
81
|
+
* A source at or below the spliterator's 128 KiB bulk threshold is read whole and parsed by the synchronous engine, so
|
|
82
|
+
* this is also the right reader for small sources — there is no buffered variant to reach for.
|
|
83
|
+
*/
|
|
84
|
+
export function readCSVRecords(source) {
|
|
59
85
|
let header = null;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
86
|
+
return CSVSpliterator.fromAsync(source, CSV_INIT)
|
|
87
|
+
.filter((cells) => {
|
|
88
|
+
if (header)
|
|
89
|
+
return true;
|
|
90
|
+
header = toHeader(cells);
|
|
91
|
+
return false;
|
|
92
|
+
})
|
|
93
|
+
.map((cells) => toRecord(header, cells));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* {@link readCSVRecords} over one member of a zip archive — what every recipe reading a cached OA source wants.
|
|
97
|
+
*
|
|
98
|
+
* A source a checkout has not cached yields nothing, after saying so. A lab holds the archives for the countries it has
|
|
99
|
+
* built, so a recipe naming ten sources routinely finds three, and the `unzip -p` subprocesses these replaced behaved
|
|
100
|
+
* the same way by accident — a non-zero exit warned and returned no rows. A recipe that ends up with NO tuples at all
|
|
101
|
+
* still throws; that is the case where the cache, not the recipe, is the problem.
|
|
102
|
+
*/
|
|
103
|
+
export function readZippedCSVRecords(archivePath, entryName) {
|
|
104
|
+
if (!existsSync(String(archivePath))) {
|
|
105
|
+
console.error(` WARN: ${archivePath} is not cached — skipping ${entryName}`);
|
|
106
|
+
return AsyncSequence.from([]);
|
|
71
107
|
}
|
|
108
|
+
return readCSVRecords(readZipEntry(archivePath, entryName));
|
|
72
109
|
}
|
|
73
110
|
/**
|
|
74
111
|
* Stream-parse a tuples JSONL file, yielding each parsed object (blank/invalid lines skipped).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/shard-recipes/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/shard-recipes/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,64 @@
|
|
|
26
26
|
* to keep the postcode-ORDER distribution multi-locale so a US-heavy affix shard doesn't dilute
|
|
27
27
|
* FR/DE postcode (the v0.9.8 blemish).
|
|
28
28
|
*/
|
|
29
|
+
import type { ComponentTag } from "@mailwoman/core/types";
|
|
29
30
|
import { type ShardRecipe } from "./scaffold.ts";
|
|
31
|
+
/**
|
|
32
|
+
* A real US skeleton tuple read from a cached OA zip.
|
|
33
|
+
*/
|
|
34
|
+
interface USTuple {
|
|
35
|
+
house_number: string;
|
|
36
|
+
street: string;
|
|
37
|
+
locality: string;
|
|
38
|
+
region: string;
|
|
39
|
+
postcode: string;
|
|
40
|
+
base_source_id: string;
|
|
41
|
+
}
|
|
42
|
+
export type SuffixBoundaryClass = "terminal-only" | "terminal-contrast";
|
|
43
|
+
/**
|
|
44
|
+
* Classify a real street surface for #1569. `terminal-only` has an ambiguous suffix-eligible name word immediately
|
|
45
|
+
* before a different terminal type (`Blue Hill Rd`); `terminal-contrast` ends at the ambiguous word itself (`Sutton
|
|
46
|
+
* Hollow`). The contrast check intentionally wins when both final words are name-prone: only the LAST token is the
|
|
47
|
+
* suffix under the canonical rule.
|
|
48
|
+
*/
|
|
49
|
+
export declare function classifySuffixBoundaryStreet(street: string): SuffixBoundaryClass | null;
|
|
50
|
+
/**
|
|
51
|
+
* Layout-shell options for {@link renderRow}. `cuts` are the cumulative random() cutoffs for [full, bare, street-only] —
|
|
52
|
+
* the remainder is the venue shell. Defaults reproduce the original street-affix distribution (40/25/20/15) with the
|
|
53
|
+
* six template venues.
|
|
54
|
+
*/
|
|
55
|
+
interface RenderRowOpts {
|
|
56
|
+
venues?: readonly string[];
|
|
57
|
+
cuts?: readonly [number, number, number];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Embed the rendered street in a RANDOM layout so the model recognizes affixes wherever the street sits: full address,
|
|
61
|
+
* bare house+street, street-only (pure affix parse), or venue-prefixed.
|
|
62
|
+
*/
|
|
63
|
+
export declare function renderRow(random: () => number, base: USTuple, street: string, streetComponents: Partial<Record<ComponentTag, string>>, opts?: RenderRowOpts): {
|
|
64
|
+
fmt: string;
|
|
65
|
+
raw: string;
|
|
66
|
+
components: Partial<Record<ComponentTag, string>>;
|
|
67
|
+
};
|
|
30
68
|
/**
|
|
31
69
|
* Shard recipe registered with the corpus builder — see the file header for the parse behaviour it exists to exercise,
|
|
32
70
|
* and `description` below for the surface form it generates.
|
|
33
71
|
*/
|
|
34
72
|
export declare const streetAffixRecipe: ShardRecipe;
|
|
73
|
+
/**
|
|
74
|
+
* #1569 root-fix shard. Both classes come from real non-Vermont OA streets and use the affix recipe's existing layout
|
|
75
|
+
* diversity. v4.3.1 makes terminal-only 80% of the mix: the first 40/60 run moved a 100-row TRAIN sample only 4→11
|
|
76
|
+
* while contrast was already 95/100 before training (93/100 after). Post-run audit found that the global affix relabel
|
|
77
|
+
* pass corrupts many already-decomposed target rows into double suffixes; do not retrain this recipe until relabel is
|
|
78
|
+
* idempotent over a decomposed street family. The 20% contrast leg remains explicit, additive to the already-strong
|
|
79
|
+
* base distribution, and B2 still gates it unchanged.
|
|
80
|
+
*
|
|
81
|
+
* V2 (corpus 0.19.0, 2026-08-10 recipe review): the v4.3.3 board split (rich venue-led rows 5/43 vs bare 53/65) showed
|
|
82
|
+
* the model separating template rows from real ones, and the venue shell was the giveaway — six fixed venue strings. v2
|
|
83
|
+
* draws the venue shell from thousands of REAL HRSA facility names and raises its share (venue 30%, full 35%, bare 20%,
|
|
84
|
+
* street-only 15%). Dose policy moved to the recipe's config side: weight ≤4 effective passes per run (Muennighoff
|
|
85
|
+
* 2023's repetition knee) and the source is excluded from the augmentation pool — see the v4.4.0 config.
|
|
86
|
+
*/
|
|
87
|
+
export declare const suffixBoundaryRecipe: ShardRecipe;
|
|
88
|
+
export {};
|
|
35
89
|
//# sourceMappingURL=street-affix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"street-affix.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"street-affix.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAWH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAOzD,OAAO,EAAuE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAuFrH;;GAEG;AACH,UAAU,OAAO;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;CACtB;AAmGD,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,mBAAmB,CAAA;AAEvE;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAevF;AAsFD;;;;GAIG;AACH,UAAU,aAAa;IACtB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,MAAM,EAAE,MAAM,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,EACvD,IAAI,GAAE,aAAkB,GACtB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CA8BjF;AAyDD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAiM/B,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,EAAE,WA0JlC,CAAA"}
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
* to keep the postcode-ORDER distribution multi-locale so a US-heavy affix shard doesn't dilute
|
|
27
27
|
* FR/DE postcode (the v0.9.8 blemish).
|
|
28
28
|
*/
|
|
29
|
-
import { spawnSync } from "node:child_process";
|
|
30
29
|
import { DirectionalAbbreviation, lookupDirectional, matchCase, matchLeadingDirectional, matchTrailingSuffix, renderDirectional, US_STREET_SUFFIX_PREFERRED_ABBR, } from "@mailwoman/codex/us";
|
|
31
30
|
import { dataRootPath } from "@mailwoman/core/utils";
|
|
32
|
-
import { stableSourceID } from "
|
|
33
|
-
import { alignRow } from "
|
|
34
|
-
import {
|
|
31
|
+
import { stableSourceID } from "@mailwoman/corpus/adapters/utils";
|
|
32
|
+
import { alignRow } from "@mailwoman/corpus/utils";
|
|
33
|
+
import { NAME_PRONE_US_SUFFIXES } from "../name-prone-us-suffixes.js";
|
|
34
|
+
import { makeMulberry32, readCSVRecords, readZippedCSVRecords, shardSourceID } from "./scaffold.js";
|
|
35
35
|
const TRAIN_SOURCES = [
|
|
36
36
|
{ zip: dataRootPath("oa-cache", "us__ca__berkeley.zip"), csv: "us/ca/berkeley.csv", region: "CA" },
|
|
37
37
|
{ zip: dataRootPath("oa-cache", "us__ca__marin.zip"), csv: "us/ca/marin.csv", region: "CA" },
|
|
@@ -90,15 +90,10 @@ const INJECT_PREFIX_PROB = 0.3;
|
|
|
90
90
|
/**
|
|
91
91
|
* Stream real US tuples (number/street/city/postcode) out of a cached OA zip.
|
|
92
92
|
*/
|
|
93
|
-
function readTuples(source) {
|
|
94
|
-
const r = spawnSync("unzip", ["-p", source.zip, source.csv], { maxBuffer: 1024 * 1024 * 1024, encoding: "buffer" });
|
|
95
|
-
if (r.status !== 0) {
|
|
96
|
-
console.error(` WARN: unzip failed for ${source.zip} (status ${r.status})`);
|
|
97
|
-
return [];
|
|
98
|
-
}
|
|
93
|
+
async function readTuples(source) {
|
|
99
94
|
const tuples = [];
|
|
100
95
|
const seen = new Set();
|
|
101
|
-
for (const row of
|
|
96
|
+
for await (const row of readZippedCSVRecords(source.zip, source.csv)) {
|
|
102
97
|
const street = row.street ?? "";
|
|
103
98
|
const locality = row.city ?? "";
|
|
104
99
|
const house_number = row.number ?? "";
|
|
@@ -108,7 +103,14 @@ function readTuples(source) {
|
|
|
108
103
|
if (seen.has(key))
|
|
109
104
|
continue;
|
|
110
105
|
seen.add(key);
|
|
111
|
-
tuples.push({
|
|
106
|
+
tuples.push({
|
|
107
|
+
house_number,
|
|
108
|
+
street,
|
|
109
|
+
locality,
|
|
110
|
+
region: source.region,
|
|
111
|
+
postcode: row.postcode ?? "",
|
|
112
|
+
base_source_id: `openaddresses:${source.csv}:${key}`,
|
|
113
|
+
});
|
|
112
114
|
}
|
|
113
115
|
return tuples;
|
|
114
116
|
}
|
|
@@ -122,7 +124,7 @@ const isSuffixOrDirectional = (word) => matchTrailingSuffix(word) !== null || ma
|
|
|
122
124
|
* Split an OA street into { prefix?, name, suffix } using the codex. Requires a trailing suffix and a non-empty name
|
|
123
125
|
* that isn't itself an affix token. Returns null when the street has no usable suffix.
|
|
124
126
|
*/
|
|
125
|
-
function parseStreet(street) {
|
|
127
|
+
function parseStreet(street, opts = {}) {
|
|
126
128
|
let words = street.trim().split(/\s+/);
|
|
127
129
|
if (words.length < 2)
|
|
128
130
|
return null;
|
|
@@ -139,10 +141,35 @@ function parseStreet(street) {
|
|
|
139
141
|
return null;
|
|
140
142
|
const suffix = trail.canonical;
|
|
141
143
|
const name = words.slice(0, -1).join(" ");
|
|
142
|
-
if (!name
|
|
144
|
+
if (!name)
|
|
143
145
|
return null;
|
|
146
|
+
if (isSuffixOrDirectional(name)) {
|
|
147
|
+
const nameTail = matchTrailingSuffix(name);
|
|
148
|
+
if (!opts.allowNameProneTail || !nameTail || !NAME_PRONE_US_SUFFIXES.has(nameTail.canonical))
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
144
151
|
return { prefix, name, suffix };
|
|
145
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Classify a real street surface for #1569. `terminal-only` has an ambiguous suffix-eligible name word immediately
|
|
155
|
+
* before a different terminal type (`Blue Hill Rd`); `terminal-contrast` ends at the ambiguous word itself (`Sutton
|
|
156
|
+
* Hollow`). The contrast check intentionally wins when both final words are name-prone: only the LAST token is the
|
|
157
|
+
* suffix under the canonical rule.
|
|
158
|
+
*/
|
|
159
|
+
export function classifySuffixBoundaryStreet(street) {
|
|
160
|
+
const words = street.trim().split(/\s+/);
|
|
161
|
+
if (words.length < 2)
|
|
162
|
+
return null;
|
|
163
|
+
const terminal = matchTrailingSuffix(words.at(-1));
|
|
164
|
+
if (!terminal)
|
|
165
|
+
return null;
|
|
166
|
+
if (NAME_PRONE_US_SUFFIXES.has(terminal.canonical))
|
|
167
|
+
return "terminal-contrast";
|
|
168
|
+
if (words.length < 3)
|
|
169
|
+
return null;
|
|
170
|
+
const penultimate = matchTrailingSuffix(words.at(-2));
|
|
171
|
+
return penultimate && NAME_PRONE_US_SUFFIXES.has(penultimate.canonical) ? "terminal-only" : null;
|
|
172
|
+
}
|
|
146
173
|
/**
|
|
147
174
|
* Render the affix-split street in random surface forms (abbrev vs expanded per affix), Title-cased.
|
|
148
175
|
*/
|
|
@@ -176,27 +203,53 @@ function renderStreet(random, parsed) {
|
|
|
176
203
|
* Synthetic recipient/venue prefixes — the arena's "JOHN DOE, ACME INC, …" pattern.
|
|
177
204
|
*/
|
|
178
205
|
const VENUES = ["John Doe", "Jane Smith", "Acme Inc", "Wayne Enterprises", "Maria Garcia", "Riverside Clinic"];
|
|
206
|
+
/**
|
|
207
|
+
* Real-venue pool for the suffix-boundary v2 venue shell (corpus 0.19.0). The 2026-08-10 recipe review found the
|
|
208
|
+
* v0.18.x shard's venue-led rows detectable as templates (six fixed venue strings), and the frozen B1 board's failures
|
|
209
|
+
* concentrate in exactly that shell (rich rows 5/43 vs bare 53/65 at v4.3.3 step-40k). HRSA's health-center site file
|
|
210
|
+
* supplies thousands of REAL US facility names ('Alburg Health Center'-register), US-government public domain, already
|
|
211
|
+
* a corpus source (`usgov-hrsa-fqhc`). Kept verbatim (including the ~11% all-caps names — real register diversity);
|
|
212
|
+
* comma-carrying names are dropped because the venue layout uses commas as its field delimiter.
|
|
213
|
+
*/
|
|
214
|
+
const VENUE_POOL_CSV = dataRootPath("corpus", "sources", "usgov-hrsa-fqhc", "Health_Center_Service_Delivery_and_LookAlike_Sites.csv");
|
|
215
|
+
async function readVenuePool(csvPath) {
|
|
216
|
+
const seen = new Set();
|
|
217
|
+
const pool = [];
|
|
218
|
+
for await (const record of readCSVRecords(csvPath)) {
|
|
219
|
+
const name = (record["site name"] ?? record["Site Name"] ?? "").trim().replaceAll(/\s+/gu, " ");
|
|
220
|
+
if (name.length < 3 || name.length > 60 || name.includes(",") || !/\p{L}/u.test(name))
|
|
221
|
+
continue;
|
|
222
|
+
const key = name.toLowerCase();
|
|
223
|
+
if (seen.has(key))
|
|
224
|
+
continue;
|
|
225
|
+
seen.add(key);
|
|
226
|
+
pool.push(name);
|
|
227
|
+
}
|
|
228
|
+
return pool;
|
|
229
|
+
}
|
|
179
230
|
const tail = (loc, reg, pc) => (pc ? `${loc}, ${reg} ${pc}` : `${loc}, ${reg}`);
|
|
180
231
|
/**
|
|
181
232
|
* Embed the rendered street in a RANDOM layout so the model recognizes affixes wherever the street sits: full address,
|
|
182
233
|
* bare house+street, street-only (pure affix parse), or venue-prefixed.
|
|
183
234
|
*/
|
|
184
|
-
function renderRow(random, base, street, streetComponents) {
|
|
235
|
+
export function renderRow(random, base, street, streetComponents, opts = {}) {
|
|
236
|
+
const venues = opts.venues ?? VENUES;
|
|
237
|
+
const [fullCut, bareCut, streetOnlyCut] = opts.cuts ?? [0.4, 0.65, 0.85];
|
|
185
238
|
const hn = base.house_number, loc = base.locality, reg = base.region, pc = base.postcode;
|
|
186
239
|
const road = `${hn} ${street}`;
|
|
187
240
|
const withRoad = { house_number: hn, ...streetComponents };
|
|
188
241
|
const r = random();
|
|
189
|
-
if (r <
|
|
242
|
+
if (r < fullCut)
|
|
190
243
|
return {
|
|
191
244
|
fmt: "full",
|
|
192
245
|
raw: `${road}, ${tail(loc, reg, pc)}`,
|
|
193
246
|
components: { ...withRoad, locality: loc, region: reg, ...(pc ? { postcode: pc } : {}) },
|
|
194
247
|
};
|
|
195
|
-
if (r <
|
|
248
|
+
if (r < bareCut)
|
|
196
249
|
return { fmt: "bare", raw: road, components: withRoad };
|
|
197
|
-
if (r <
|
|
250
|
+
if (r < streetOnlyCut)
|
|
198
251
|
return { fmt: "street-only", raw: street, components: { ...streetComponents } };
|
|
199
|
-
const v =
|
|
252
|
+
const v = venues[Math.floor(random() * venues.length)];
|
|
200
253
|
return {
|
|
201
254
|
fmt: "venue",
|
|
202
255
|
raw: `${v}, ${road}, ${tail(loc, reg, pc)}`,
|
|
@@ -204,23 +257,14 @@ function renderRow(random, base, street, streetComponents) {
|
|
|
204
257
|
};
|
|
205
258
|
}
|
|
206
259
|
/**
|
|
207
|
-
* Capped reader for the multi-locale BALANCE sources. The FR/IT/NL countrywide extracts are GB-scale, so
|
|
208
|
-
*
|
|
209
|
-
*
|
|
260
|
+
* Capped reader for the multi-locale BALANCE sources. The FR/IT/NL countrywide extracts are GB-scale, so this reads
|
|
261
|
+
* only as far as `limit` distinct tuples — the `break` closes the reader and releases the archive. Only keeps tuples
|
|
262
|
+
* that carry a POSTCODE.
|
|
210
263
|
*/
|
|
211
|
-
function readBalanceTuples(source, limit) {
|
|
212
|
-
const maxLines = Math.max(limit * 8, 20_000) + 1;
|
|
213
|
-
const r = spawnSync("bash", ["-c", `unzip -p "${source.zip}" "${source.csv}" | head -n ${maxLines}`], {
|
|
214
|
-
maxBuffer: 1024 * 1024 * 1024,
|
|
215
|
-
encoding: "buffer",
|
|
216
|
-
});
|
|
217
|
-
if (r.status !== 0) {
|
|
218
|
-
console.error(` WARN: unzip failed for ${source.zip} (status ${r.status})`);
|
|
219
|
-
return [];
|
|
220
|
-
}
|
|
264
|
+
async function readBalanceTuples(source, limit) {
|
|
221
265
|
const tuples = [];
|
|
222
266
|
const seen = new Set();
|
|
223
|
-
for (const row of
|
|
267
|
+
for await (const row of readZippedCSVRecords(source.zip, source.csv)) {
|
|
224
268
|
if (tuples.length >= limit)
|
|
225
269
|
break;
|
|
226
270
|
const street = row.street ?? "", locality = row.city ?? "", house_number = row.number ?? "", postcode = row.postcode ?? "";
|
|
@@ -279,7 +323,7 @@ export const streetAffixRecipe = {
|
|
|
279
323
|
const sources = opts.golden ? [EVAL_SOURCE] : TRAIN_SOURCES;
|
|
280
324
|
const pool = [];
|
|
281
325
|
for (const s of sources) {
|
|
282
|
-
const t = readTuples(s);
|
|
326
|
+
const t = await readTuples(s);
|
|
283
327
|
console.error(` ${s.csv}: ${t.length} unique tuples`);
|
|
284
328
|
for (const x of t) {
|
|
285
329
|
pool.push(x);
|
|
@@ -355,7 +399,7 @@ export const streetAffixRecipe = {
|
|
|
355
399
|
const perSource = Math.ceil((multilocaleCount * 3) / mlSources.length); // over-read; balance locales
|
|
356
400
|
const mlPool = [];
|
|
357
401
|
for (const s of mlSources) {
|
|
358
|
-
const t = readBalanceTuples(s, perSource);
|
|
402
|
+
const t = await readBalanceTuples(s, perSource);
|
|
359
403
|
console.error(` balance ${s.csv} (${s.iso2}): ${t.length} tuples`);
|
|
360
404
|
for (const x of t) {
|
|
361
405
|
mlPool.push(x);
|
|
@@ -407,4 +451,128 @@ export const streetAffixRecipe = {
|
|
|
407
451
|
return { emitted: emitted + balanceEmitted, skipped: skipped + balanceSkipped };
|
|
408
452
|
},
|
|
409
453
|
};
|
|
454
|
+
/**
|
|
455
|
+
* #1569 root-fix shard. Both classes come from real non-Vermont OA streets and use the affix recipe's existing layout
|
|
456
|
+
* diversity. v4.3.1 makes terminal-only 80% of the mix: the first 40/60 run moved a 100-row TRAIN sample only 4→11
|
|
457
|
+
* while contrast was already 95/100 before training (93/100 after). Post-run audit found that the global affix relabel
|
|
458
|
+
* pass corrupts many already-decomposed target rows into double suffixes; do not retrain this recipe until relabel is
|
|
459
|
+
* idempotent over a decomposed street family. The 20% contrast leg remains explicit, additive to the already-strong
|
|
460
|
+
* base distribution, and B2 still gates it unchanged.
|
|
461
|
+
*
|
|
462
|
+
* V2 (corpus 0.19.0, 2026-08-10 recipe review): the v4.3.3 board split (rich venue-led rows 5/43 vs bare 53/65) showed
|
|
463
|
+
* the model separating template rows from real ones, and the venue shell was the giveaway — six fixed venue strings. v2
|
|
464
|
+
* draws the venue shell from thousands of REAL HRSA facility names and raises its share (venue 30%, full 35%, bare 20%,
|
|
465
|
+
* street-only 15%). Dose policy moved to the recipe's config side: weight ≤4 effective passes per run (Muennighoff
|
|
466
|
+
* 2023's repetition knee) and the source is excluded from the augmentation pool — see the v4.4.0 config.
|
|
467
|
+
*/
|
|
468
|
+
export const suffixBoundaryRecipe = {
|
|
469
|
+
name: "suffix-boundary",
|
|
470
|
+
description: "US #1569 suffix boundary: OA terminal-only positives + over-sampled terminal contrasts",
|
|
471
|
+
mode: "generate",
|
|
472
|
+
async run(opts, write) {
|
|
473
|
+
const random = makeMulberry32(opts.seed);
|
|
474
|
+
const count = opts.count ?? 30_000;
|
|
475
|
+
const source = opts.sourceName ?? "synth-suffix-boundary";
|
|
476
|
+
const sources = opts.golden ? [EVAL_SOURCE] : TRAIN_SOURCES;
|
|
477
|
+
// v2 venue shell: real facility names, loud when the source file is missing or thin.
|
|
478
|
+
const venuePool = await readVenuePool(VENUE_POOL_CSV);
|
|
479
|
+
if (venuePool.length < 500) {
|
|
480
|
+
throw new Error(`suffix-boundary v2 venue pool too thin: ${venuePool.length} names from ${VENUE_POOL_CSV} — ` +
|
|
481
|
+
"is the usgov-hrsa-fqhc source present?");
|
|
482
|
+
}
|
|
483
|
+
const shell = { venues: venuePool, cuts: [0.35, 0.55, 0.7] };
|
|
484
|
+
const pool = {
|
|
485
|
+
"terminal-only": [],
|
|
486
|
+
"terminal-contrast": [],
|
|
487
|
+
};
|
|
488
|
+
for (const s of sources) {
|
|
489
|
+
for (const tuple of await readTuples(s)) {
|
|
490
|
+
const rowClass = classifySuffixBoundaryStreet(tuple.street);
|
|
491
|
+
if (rowClass) {
|
|
492
|
+
pool[rowClass].push(tuple);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
if (!pool["terminal-only"].length || !pool["terminal-contrast"].length) {
|
|
497
|
+
throw new Error(`Suffix-boundary source class missing: terminal-only=${pool["terminal-only"].length}, ` +
|
|
498
|
+
`terminal-contrast=${pool["terminal-contrast"].length}`);
|
|
499
|
+
}
|
|
500
|
+
let emitted = 0;
|
|
501
|
+
let skipped = 0;
|
|
502
|
+
const classCounts = { "terminal-only": 0, "terminal-contrast": 0 };
|
|
503
|
+
const terminalOnlyTarget = Math.round(count * 0.8);
|
|
504
|
+
const classTargets = {
|
|
505
|
+
"terminal-only": terminalOnlyTarget,
|
|
506
|
+
"terminal-contrast": count - terminalOnlyTarget,
|
|
507
|
+
};
|
|
508
|
+
const formatCounts = {};
|
|
509
|
+
let stemPairs = 0;
|
|
510
|
+
const emitOne = (rowClass, base, parsed, method) => {
|
|
511
|
+
const { street, components: streetComponents } = renderStreet(random, parsed);
|
|
512
|
+
const { fmt, raw, components } = renderRow(random, base, street, streetComponents, shell);
|
|
513
|
+
const canonical = {
|
|
514
|
+
raw,
|
|
515
|
+
components,
|
|
516
|
+
country: "US",
|
|
517
|
+
locale: "en-US",
|
|
518
|
+
source,
|
|
519
|
+
source_id: shardSourceID(source, { ...components, class: rowClass, n: String(emitted) }),
|
|
520
|
+
corpus_version: "0.19.0",
|
|
521
|
+
license: "OpenAddresses US (non-VT) skeletons; terminal suffix labels via USPS Pub-28 codex; venue shell from HRSA site names (US public domain)",
|
|
522
|
+
};
|
|
523
|
+
const aligned = alignRow(canonical);
|
|
524
|
+
if (aligned.kind !== "labeled" || !aligned.row) {
|
|
525
|
+
skipped++;
|
|
526
|
+
return false;
|
|
527
|
+
}
|
|
528
|
+
write(JSON.stringify({ ...aligned.row, synth_method: method, synth_base_id: base.base_source_id }) + "\n");
|
|
529
|
+
classCounts[rowClass]++;
|
|
530
|
+
formatCounts[fmt] = (formatCounts[fmt] ?? 0) + 1;
|
|
531
|
+
emitted++;
|
|
532
|
+
return true;
|
|
533
|
+
};
|
|
534
|
+
// oxlint-disable-next-line eslint/no-unmodified-loop-condition -- emitted/skipped advance inside emitOne (a closure); the rule cannot see through the call
|
|
535
|
+
while (emitted < count && emitted + skipped < count * 10) {
|
|
536
|
+
const terminalOnlyOpen = classCounts["terminal-only"] < classTargets["terminal-only"];
|
|
537
|
+
const terminalContrastOpen = classCounts["terminal-contrast"] < classTargets["terminal-contrast"];
|
|
538
|
+
const rowClass = terminalOnlyOpen && terminalContrastOpen
|
|
539
|
+
? random() < 0.8
|
|
540
|
+
? "terminal-only"
|
|
541
|
+
: "terminal-contrast"
|
|
542
|
+
: terminalContrastOpen
|
|
543
|
+
? "terminal-contrast"
|
|
544
|
+
: "terminal-only";
|
|
545
|
+
const classPool = pool[rowClass];
|
|
546
|
+
const base = classPool[Math.floor(random() * classPool.length)];
|
|
547
|
+
const parsed = parseStreet(base.street, { allowNameProneTail: rowClass === "terminal-only" });
|
|
548
|
+
if (!parsed) {
|
|
549
|
+
skipped++;
|
|
550
|
+
continue;
|
|
551
|
+
}
|
|
552
|
+
if (!emitOne(rowClass, base, parsed, `suffix-boundary:${rowClass}`))
|
|
553
|
+
continue;
|
|
554
|
+
// Stem-pair hard negative (v2, 2026-08-10 recipe review): after a terminal-only row
|
|
555
|
+
// ('Menlo Park' + 'Road'), also emit the SAME stem without its true suffix as a
|
|
556
|
+
// contrast row ('Menlo' + 'Park' under the canonical last-token rule). Sharing the stem
|
|
557
|
+
// forces the model to key on the licensing evidence — the trailing true suffix — rather
|
|
558
|
+
// than on name identity. Dose-neutral: these fill the existing 20% contrast target.
|
|
559
|
+
if (rowClass === "terminal-only" &&
|
|
560
|
+
classCounts["terminal-contrast"] < classTargets["terminal-contrast"] &&
|
|
561
|
+
emitted < count &&
|
|
562
|
+
random() < 0.5) {
|
|
563
|
+
const stemParsed = parseStreet(parsed.name);
|
|
564
|
+
if (stemParsed &&
|
|
565
|
+
emitOne("terminal-contrast", base, stemParsed, "suffix-boundary:terminal-contrast:stem-pair")) {
|
|
566
|
+
stemPairs++;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
console.error(`Done: emitted ${emitted}, skipped ${skipped}; source pools ${JSON.stringify({
|
|
571
|
+
terminalOnly: pool["terminal-only"].length,
|
|
572
|
+
terminalContrast: pool["terminal-contrast"].length,
|
|
573
|
+
})}; classes ${JSON.stringify(classCounts)}; stem pairs ${stemPairs}; ` +
|
|
574
|
+
`venue pool ${venuePool.length}; formats ${JSON.stringify(formatCounts)}`);
|
|
575
|
+
return { emitted, skipped };
|
|
576
|
+
},
|
|
577
|
+
};
|
|
410
578
|
//# sourceMappingURL=street-affix.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"street-affix.js","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"street-affix.js","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"street-bare.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/street-bare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"street-bare.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/street-bare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,EAAyD,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEvG;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAuE9B,CAAA"}
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
* (`makeMulberry32(opts.seed)`) and preserves the synthesis call order exactly, so `--seed N`
|
|
17
17
|
* reproduces the legacy run byte-for-byte.
|
|
18
18
|
*/
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
19
|
+
import { DEFAULT_US_BASES } from "@mailwoman/corpus/synthesizers/intersection";
|
|
20
|
+
import { synthesizeStreetRow } from "@mailwoman/corpus/synthesizers/street";
|
|
21
|
+
import { alignRow } from "@mailwoman/corpus/utils";
|
|
22
22
|
import { makeMulberry32, shardSourceID } from "./scaffold.js";
|
|
23
23
|
/**
|
|
24
24
|
* Shard recipe registered with the corpus builder — see the file header for the parse behaviour it exists to exercise,
|