@mailwoman/corpus 5.2.0 → 5.3.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/out/src/shard-recipes/cz-pcfirst-preposition.d.ts +18 -0
- package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts.map +1 -0
- package/out/src/shard-recipes/cz-pcfirst-preposition.js +76 -0
- package/out/src/shard-recipes/cz-pcfirst-preposition.js.map +1 -0
- package/out/src/shard-recipes/index.d.ts.map +1 -1
- package/out/src/shard-recipes/index.js +6 -0
- package/out/src/shard-recipes/index.js.map +1 -1
- package/out/src/shard-recipes/no-street-led.d.ts +20 -0
- package/out/src/shard-recipes/no-street-led.d.ts.map +1 -0
- package/out/src/shard-recipes/no-street-led.js +74 -0
- package/out/src/shard-recipes/no-street-led.js.map +1 -0
- package/out/src/shard-recipes/si-bare-village.d.ts +28 -0
- package/out/src/shard-recipes/si-bare-village.d.ts.map +1 -0
- package/out/src/shard-recipes/si-bare-village.js +82 -0
- package/out/src/shard-recipes/si-bare-village.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `cz-pcfirst-preposition` — the Czech pc-first prepositional-locality shard, fourth orthography
|
|
7
|
+
* of the #901 leading-name-boundary family. The #897 close-out read all 8 residual CZ rows as one
|
|
8
|
+
* class: a LEADING postcode mis-assigned as house_number while the multi-word "nad/pod/u X"
|
|
9
|
+
* locality shatters ("51244 Rokytnice nad Jizerou, Dolní Rokytnice 111" → street
|
|
10
|
+
* 'RokytnicenadJizerou' + house_number '51244'). That leading-5-digit confusion is the
|
|
11
|
+
* anchor-pollution class whose decode-time OVERRIDE was correctly killed in #723 — this shard is
|
|
12
|
+
* the model-first fix as DATA: real prepositional localities in the order that breaks, so the
|
|
13
|
+
* model learns that a leading postcode before a multi-word name is a postcode. pc-first leads the
|
|
14
|
+
* cycle (the lesson); canonical and city-first keep the polarity balanced (the v1.9.9 lesson).
|
|
15
|
+
*/
|
|
16
|
+
import { type ShardRecipe } from "./scaffold.js";
|
|
17
|
+
export declare const czPcFirstPrepositionRecipe: ShardRecipe;
|
|
18
|
+
//# sourceMappingURL=cz-pcfirst-preposition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cz-pcfirst-preposition.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/cz-pcfirst-preposition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA6C,KAAK,WAAW,EAAiB,MAAM,eAAe,CAAA;AAE1G,eAAO,MAAM,0BAA0B,EAAE,WA6DxC,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `cz-pcfirst-preposition` — the Czech pc-first prepositional-locality shard, fourth orthography
|
|
7
|
+
* of the #901 leading-name-boundary family. The #897 close-out read all 8 residual CZ rows as one
|
|
8
|
+
* class: a LEADING postcode mis-assigned as house_number while the multi-word "nad/pod/u X"
|
|
9
|
+
* locality shatters ("51244 Rokytnice nad Jizerou, Dolní Rokytnice 111" → street
|
|
10
|
+
* 'RokytnicenadJizerou' + house_number '51244'). That leading-5-digit confusion is the
|
|
11
|
+
* anchor-pollution class whose decode-time OVERRIDE was correctly killed in #723 — this shard is
|
|
12
|
+
* the model-first fix as DATA: real prepositional localities in the order that breaks, so the
|
|
13
|
+
* model learns that a leading postcode before a multi-word name is a postcode. pc-first leads the
|
|
14
|
+
* cycle (the lesson); canonical and city-first keep the polarity balanced (the v1.9.9 lesson).
|
|
15
|
+
*/
|
|
16
|
+
import { alignAndWrite, makeMulberry32, readTuples, shardSourceID } from "./scaffold.js";
|
|
17
|
+
export const czPcFirstPrepositionRecipe = {
|
|
18
|
+
name: "cz-pcfirst-preposition",
|
|
19
|
+
description: "CZ pc-first + prepositional locality (#901 family): '«pc» «city nad X», «st» «n»' — the #723 class as data",
|
|
20
|
+
mode: "tuples",
|
|
21
|
+
async run(opts, write) {
|
|
22
|
+
makeMulberry32(opts.seed);
|
|
23
|
+
let read = 0;
|
|
24
|
+
let emitted = 0;
|
|
25
|
+
let skipped = 0;
|
|
26
|
+
for await (const t of readTuples(opts.input)) {
|
|
27
|
+
read++;
|
|
28
|
+
const street = String(t.street ?? "").trim();
|
|
29
|
+
const city = String(t.locality ?? "").trim();
|
|
30
|
+
const number = String(t.number ?? "").trim();
|
|
31
|
+
const postcode = String(t.postcode ?? "").trim();
|
|
32
|
+
if (!street || !city || !number || !postcode) {
|
|
33
|
+
skipped++;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const order = read % 3;
|
|
37
|
+
let raw;
|
|
38
|
+
const components = {
|
|
39
|
+
street,
|
|
40
|
+
house_number: number,
|
|
41
|
+
postcode,
|
|
42
|
+
locality: city,
|
|
43
|
+
};
|
|
44
|
+
if (order === 0) {
|
|
45
|
+
raw = `${postcode} ${city}, ${street} ${number}`;
|
|
46
|
+
}
|
|
47
|
+
else if (order === 1) {
|
|
48
|
+
raw = `${street} ${number}, ${postcode} ${city}`;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
raw = `${city}, ${postcode}, ${street} ${number}`;
|
|
52
|
+
}
|
|
53
|
+
const source_id = shardSourceID("synth-cz-pcfirst-preposition", {
|
|
54
|
+
...components,
|
|
55
|
+
o: String(order),
|
|
56
|
+
v: String(read),
|
|
57
|
+
});
|
|
58
|
+
const canonical = {
|
|
59
|
+
raw,
|
|
60
|
+
components,
|
|
61
|
+
country: "CZ",
|
|
62
|
+
locale: "cs-CZ",
|
|
63
|
+
source: "synth-cz-pcfirst-preposition",
|
|
64
|
+
source_id,
|
|
65
|
+
corpus_version: "0.10.0",
|
|
66
|
+
license: "Synthetic — cz-pcfirst-preposition; (street, number, postcode, city) from OpenAddresses CZ (per-source attribution in the model card)",
|
|
67
|
+
};
|
|
68
|
+
if (alignAndWrite(write, canonical, "cz-pcfirst-preposition"))
|
|
69
|
+
emitted++;
|
|
70
|
+
else
|
|
71
|
+
skipped++;
|
|
72
|
+
}
|
|
73
|
+
return { read, emitted, skipped };
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=cz-pcfirst-preposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cz-pcfirst-preposition.js","sourceRoot":"","sources":["../../../src/shard-recipes/cz-pcfirst-preposition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAA;AAE1G,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACtD,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACV,4GAA4G;IAC7G,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;QACpB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAM,CAAC,EAAE,CAAC;YAC/C,IAAI,EAAE,CAAA;YACN,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAEhD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9C,OAAO,EAAE,CAAA;gBACT,SAAQ;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAA;YACtB,IAAI,GAAW,CAAA;YACf,MAAM,UAAU,GAA2B;gBAC1C,MAAM;gBACN,YAAY,EAAE,MAAM;gBACpB,QAAQ;gBACR,QAAQ,EAAE,IAAI;aACd,CAAA;YAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACjB,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAA;YACjD,CAAC;iBAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACxB,GAAG,GAAG,GAAG,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,IAAI,EAAE,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACP,GAAG,GAAG,GAAG,IAAI,KAAK,QAAQ,KAAK,MAAM,IAAI,MAAM,EAAE,CAAA;YAClD,CAAC;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,8BAA8B,EAAE;gBAC/D,GAAG,UAAU;gBACb,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;gBAChB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;aACf,CAAC,CAAA;YACF,MAAM,SAAS,GAAG;gBACjB,GAAG;gBACH,UAAU;gBACV,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,8BAA8B;gBACtC,SAAS;gBACT,cAAc,EAAE,QAAQ;gBACxB,OAAO,EACN,uIAAuI;aACxI,CAAA;YAED,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,wBAAwB,CAAC;gBAAE,OAAO,EAAE,CAAA;;gBACnE,OAAO,EAAE,CAAA;QACf,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAClC,CAAC;CACD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAOhD,cAAc,eAAe,CAAA;AA0B7B,4BAA4B;AAC5B,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAA4C,CAAA;AAEvG,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED,yCAAyC;AACzC,wBAAgB,gBAAgB,IAAI,SAAS,WAAW,EAAE,CAEzD"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import { anchorAbsorptionRecipe } from "./anchor-absorption.js";
|
|
11
11
|
import { boundaryStressRecipe } from "./boundary-stress.js";
|
|
12
12
|
import { countryBalancedRecipe } from "./country-balanced.js";
|
|
13
|
+
import { czPcFirstPrepositionRecipe } from "./cz-pcfirst-preposition.js";
|
|
13
14
|
import { frAdminSplitRecipe } from "./fr-admin-split.js";
|
|
14
15
|
import { frBareStreetRecipe } from "./fr-bare-street.js";
|
|
15
16
|
import { frOrderRecipe } from "./fr-order.js";
|
|
@@ -17,9 +18,11 @@ import { germanRecipe } from "./german.js";
|
|
|
17
18
|
import { houseVenueRecipe } from "./house-venue.js";
|
|
18
19
|
import { intersectionRecipe } from "./intersection.js";
|
|
19
20
|
import { localeRecipe } from "./locale.js";
|
|
21
|
+
import { noStreetLedRecipe } from "./no-street-led.js";
|
|
20
22
|
import { noStreetRecipe } from "./no-street.js";
|
|
21
23
|
import { poBoxCedexRecipe } from "./po-box-cedex.js";
|
|
22
24
|
import { poBoxRecipe } from "./po-box.js";
|
|
25
|
+
import { siBareVillageRecipe } from "./si-bare-village.js";
|
|
23
26
|
import { streetAffixRecipe } from "./street-affix.js";
|
|
24
27
|
import { streetBareRecipe } from "./street-bare.js";
|
|
25
28
|
import { streetRecipe } from "./street.js";
|
|
@@ -41,6 +44,9 @@ const RECIPES = [
|
|
|
41
44
|
frOrderRecipe,
|
|
42
45
|
frAdminSplitRecipe,
|
|
43
46
|
frBareStreetRecipe,
|
|
47
|
+
czPcFirstPrepositionRecipe,
|
|
48
|
+
noStreetLedRecipe,
|
|
49
|
+
siBareVillageRecipe,
|
|
44
50
|
countryBalancedRecipe,
|
|
45
51
|
boundaryStressRecipe,
|
|
46
52
|
anchorAbsorptionRecipe,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shard-recipes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,cAAc,eAAe,CAAA;AAE7B,iDAAiD;AACjD,MAAM,OAAO,GAA2B;IACvC,YAAY;IACZ,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;CACtB,CAAA;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAqC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvG,+CAA+C;AAC/C,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,gBAAgB;IAC/B,OAAO,OAAO,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shard-recipes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,cAAc,eAAe,CAAA;AAE7B,iDAAiD;AACjD,MAAM,OAAO,GAA2B;IACvC,YAAY;IACZ,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,0BAA0B;IAC1B,iBAAiB;IACjB,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;CACtB,CAAA;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAqC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvG,+CAA+C;AAC/C,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,gBAAgB;IAC/B,OAAO,OAAO,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `no-street-led` — the Norwegian street-led shard, third orthography of the #901
|
|
7
|
+
* leading-name-boundary family. The post-#920 NO row-read measured the residual as
|
|
8
|
+
* ORDER-SENSITIVE decode: street-led forms ("Tangavegen 40, 5620 Tørvikbygd") carry a 30%
|
|
9
|
+
* residual vs pc-first's 7% — the diacritic street head (…vegen/…veien with ø/å/æ) is the same
|
|
10
|
+
* leading-name-before-comma boundary the FR bare-street and SI village forms exercise, in a
|
|
11
|
+
* third orthography. All three real orders cycle per tuple (balanced polarity — the v1.9.9
|
|
12
|
+
* lesson: a one-order gradient loses at convergence):
|
|
13
|
+
*
|
|
14
|
+
* 1. canonical "«st» «n», «pc» «city»" (the 30% residual class — the lesson)
|
|
15
|
+
* 2. city-first "«city», «pc», «st» «n»"
|
|
16
|
+
* 3. pc-first "«pc» «city», «st» «n»" (the 7% floor — the anchor the others converge to)
|
|
17
|
+
*/
|
|
18
|
+
import { type ShardRecipe } from "./scaffold.js";
|
|
19
|
+
export declare const noStreetLedRecipe: ShardRecipe;
|
|
20
|
+
//# sourceMappingURL=no-street-led.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-street-led.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/no-street-led.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAA6C,KAAK,WAAW,EAAiB,MAAM,eAAe,CAAA;AAE1G,eAAO,MAAM,iBAAiB,EAAE,WAwD/B,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `no-street-led` — the Norwegian street-led shard, third orthography of the #901
|
|
7
|
+
* leading-name-boundary family. The post-#920 NO row-read measured the residual as
|
|
8
|
+
* ORDER-SENSITIVE decode: street-led forms ("Tangavegen 40, 5620 Tørvikbygd") carry a 30%
|
|
9
|
+
* residual vs pc-first's 7% — the diacritic street head (…vegen/…veien with ø/å/æ) is the same
|
|
10
|
+
* leading-name-before-comma boundary the FR bare-street and SI village forms exercise, in a
|
|
11
|
+
* third orthography. All three real orders cycle per tuple (balanced polarity — the v1.9.9
|
|
12
|
+
* lesson: a one-order gradient loses at convergence):
|
|
13
|
+
*
|
|
14
|
+
* 1. canonical "«st» «n», «pc» «city»" (the 30% residual class — the lesson)
|
|
15
|
+
* 2. city-first "«city», «pc», «st» «n»"
|
|
16
|
+
* 3. pc-first "«pc» «city», «st» «n»" (the 7% floor — the anchor the others converge to)
|
|
17
|
+
*/
|
|
18
|
+
import { alignAndWrite, makeMulberry32, readTuples, shardSourceID } from "./scaffold.js";
|
|
19
|
+
export const noStreetLedRecipe = {
|
|
20
|
+
name: "no-street-led",
|
|
21
|
+
description: "NO street-led boundary form (#901 family): '«st» «n», «pc» «city»' — diacritic street heads",
|
|
22
|
+
mode: "tuples",
|
|
23
|
+
async run(opts, write) {
|
|
24
|
+
makeMulberry32(opts.seed);
|
|
25
|
+
let read = 0;
|
|
26
|
+
let emitted = 0;
|
|
27
|
+
let skipped = 0;
|
|
28
|
+
for await (const t of readTuples(opts.input)) {
|
|
29
|
+
read++;
|
|
30
|
+
const street = String(t.street ?? "").trim();
|
|
31
|
+
const city = String(t.locality ?? "").trim();
|
|
32
|
+
const number = String(t.number ?? "").trim();
|
|
33
|
+
const postcode = String(t.postcode ?? "").trim();
|
|
34
|
+
if (!street || !city || !number || !postcode) {
|
|
35
|
+
skipped++;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const order = read % 3;
|
|
39
|
+
let raw;
|
|
40
|
+
const components = {
|
|
41
|
+
street,
|
|
42
|
+
house_number: number,
|
|
43
|
+
postcode,
|
|
44
|
+
locality: city,
|
|
45
|
+
};
|
|
46
|
+
if (order === 0) {
|
|
47
|
+
raw = `${street} ${number}, ${postcode} ${city}`;
|
|
48
|
+
}
|
|
49
|
+
else if (order === 1) {
|
|
50
|
+
raw = `${city}, ${postcode}, ${street} ${number}`;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
raw = `${postcode} ${city}, ${street} ${number}`;
|
|
54
|
+
}
|
|
55
|
+
const source_id = shardSourceID("synth-no-street-led", { ...components, o: String(order), v: String(read) });
|
|
56
|
+
const canonical = {
|
|
57
|
+
raw,
|
|
58
|
+
components,
|
|
59
|
+
country: "NO",
|
|
60
|
+
locale: "nb-NO",
|
|
61
|
+
source: "synth-no-street-led",
|
|
62
|
+
source_id,
|
|
63
|
+
corpus_version: "0.10.0",
|
|
64
|
+
license: "Synthetic — no-street-led; (street, number, postcode, city) from OpenAddresses NO (per-source attribution in the model card)",
|
|
65
|
+
};
|
|
66
|
+
if (alignAndWrite(write, canonical, "no-street-led"))
|
|
67
|
+
emitted++;
|
|
68
|
+
else
|
|
69
|
+
skipped++;
|
|
70
|
+
}
|
|
71
|
+
return { read, emitted, skipped };
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=no-street-led.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-street-led.js","sourceRoot":"","sources":["../../../src/shard-recipes/no-street-led.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAA;AAE1G,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC7C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,6FAA6F;IAC1G,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;QACpB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAM,CAAC,EAAE,CAAC;YAC/C,IAAI,EAAE,CAAA;YACN,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAEhD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9C,OAAO,EAAE,CAAA;gBACT,SAAQ;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAA;YACtB,IAAI,GAAW,CAAA;YACf,MAAM,UAAU,GAA2B;gBAC1C,MAAM;gBACN,YAAY,EAAE,MAAM;gBACpB,QAAQ;gBACR,QAAQ,EAAE,IAAI;aACd,CAAA;YAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACjB,GAAG,GAAG,GAAG,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,IAAI,EAAE,CAAA;YACjD,CAAC;iBAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACxB,GAAG,GAAG,GAAG,IAAI,KAAK,QAAQ,KAAK,MAAM,IAAI,MAAM,EAAE,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACP,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAA;YACjD,CAAC;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5G,MAAM,SAAS,GAAG;gBACjB,GAAG;gBACH,UAAU;gBACV,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,qBAAqB;gBAC7B,SAAS;gBACT,cAAc,EAAE,QAAQ;gBACxB,OAAO,EACN,8HAA8H;aAC/H,CAAA;YAED,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC;gBAAE,OAAO,EAAE,CAAA;;gBAC1D,OAAO,EAAE,CAAA;QACf,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAClC,CAAC;CACD,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `si-bare-village` — the Slovenian no-street counter-shard (#901 run-2). Slovenia's rural
|
|
7
|
+
* addressing has NO street line: the village name is the street-level token and repeats as the
|
|
8
|
+
* locality ("Zabiče 8, 6250 Zabiče"). The v1.9.8 gate FALSIFIED the fr-bare-street shard alone on
|
|
9
|
+
* exactly this class (SI resolve −3.4pp; "Apače 108" split into street "Apače 10" + house "8") —
|
|
10
|
+
* the bare-street boundary lesson generalizes onto a form where the leading name must keep its
|
|
11
|
+
* number whole and the trailing mention must stay locality-bound. This shard is the paired
|
|
12
|
+
* counter-distribution: same lesson ("name before number, comma, then admin"), opposite polarity
|
|
13
|
+
* on the trailing mention.
|
|
14
|
+
*
|
|
15
|
+
* Three real-order templates cycle per tuple (mirrors the coord-golden orders so the eval and the
|
|
16
|
+
* training distribution agree):
|
|
17
|
+
*
|
|
18
|
+
* 1. canonical "«V» «n», «pc» «V»"
|
|
19
|
+
* 2. bare "«V» «n», «V»" (no postcode — the anchor-free form, the fr-bare lesson)
|
|
20
|
+
* 3. pc-first "«pc» «V», «V» «n»"
|
|
21
|
+
*
|
|
22
|
+
* Gold spans: leading «V» = street (matches OA ground truth — the village IS the address line),
|
|
23
|
+
* «n» = house_number (NEVER split mid-digits), «pc» = postcode (never swallowing the neighbor),
|
|
24
|
+
* trailing «V» = locality (the binding the resolver needs).
|
|
25
|
+
*/
|
|
26
|
+
import { type ShardRecipe } from "./scaffold.js";
|
|
27
|
+
export declare const siBareVillageRecipe: ShardRecipe;
|
|
28
|
+
//# sourceMappingURL=si-bare-village.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"si-bare-village.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/si-bare-village.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA6C,KAAK,WAAW,EAAiB,MAAM,eAAe,CAAA;AAE1G,eAAO,MAAM,mBAAmB,EAAE,WAwDjC,CAAA"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `si-bare-village` — the Slovenian no-street counter-shard (#901 run-2). Slovenia's rural
|
|
7
|
+
* addressing has NO street line: the village name is the street-level token and repeats as the
|
|
8
|
+
* locality ("Zabiče 8, 6250 Zabiče"). The v1.9.8 gate FALSIFIED the fr-bare-street shard alone on
|
|
9
|
+
* exactly this class (SI resolve −3.4pp; "Apače 108" split into street "Apače 10" + house "8") —
|
|
10
|
+
* the bare-street boundary lesson generalizes onto a form where the leading name must keep its
|
|
11
|
+
* number whole and the trailing mention must stay locality-bound. This shard is the paired
|
|
12
|
+
* counter-distribution: same lesson ("name before number, comma, then admin"), opposite polarity
|
|
13
|
+
* on the trailing mention.
|
|
14
|
+
*
|
|
15
|
+
* Three real-order templates cycle per tuple (mirrors the coord-golden orders so the eval and the
|
|
16
|
+
* training distribution agree):
|
|
17
|
+
*
|
|
18
|
+
* 1. canonical "«V» «n», «pc» «V»"
|
|
19
|
+
* 2. bare "«V» «n», «V»" (no postcode — the anchor-free form, the fr-bare lesson)
|
|
20
|
+
* 3. pc-first "«pc» «V», «V» «n»"
|
|
21
|
+
*
|
|
22
|
+
* Gold spans: leading «V» = street (matches OA ground truth — the village IS the address line),
|
|
23
|
+
* «n» = house_number (NEVER split mid-digits), «pc» = postcode (never swallowing the neighbor),
|
|
24
|
+
* trailing «V» = locality (the binding the resolver needs).
|
|
25
|
+
*/
|
|
26
|
+
import { alignAndWrite, makeMulberry32, readTuples, shardSourceID } from "./scaffold.js";
|
|
27
|
+
export const siBareVillageRecipe = {
|
|
28
|
+
name: "si-bare-village",
|
|
29
|
+
description: "SI no-street village form (#901 run-2): '«V» «n», «pc» «V»' — the fr-bare-street counter-distribution",
|
|
30
|
+
mode: "tuples",
|
|
31
|
+
async run(opts, write) {
|
|
32
|
+
makeMulberry32(opts.seed);
|
|
33
|
+
let read = 0;
|
|
34
|
+
let emitted = 0;
|
|
35
|
+
let skipped = 0;
|
|
36
|
+
for await (const t of readTuples(opts.input)) {
|
|
37
|
+
read++;
|
|
38
|
+
const village = String(t.locality ?? "").trim();
|
|
39
|
+
const number = String(t.number ?? "").trim();
|
|
40
|
+
const postcode = String(t.postcode ?? "").trim();
|
|
41
|
+
if (!village || !number || !postcode) {
|
|
42
|
+
skipped++;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const order = read % 3;
|
|
46
|
+
let raw;
|
|
47
|
+
const components = {
|
|
48
|
+
street: village,
|
|
49
|
+
house_number: number,
|
|
50
|
+
locality: village,
|
|
51
|
+
};
|
|
52
|
+
if (order === 0) {
|
|
53
|
+
components.postcode = postcode;
|
|
54
|
+
raw = `${village} ${number}, ${postcode} ${village}`;
|
|
55
|
+
}
|
|
56
|
+
else if (order === 1) {
|
|
57
|
+
raw = `${village} ${number}, ${village}`;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
components.postcode = postcode;
|
|
61
|
+
raw = `${postcode} ${village}, ${village} ${number}`;
|
|
62
|
+
}
|
|
63
|
+
const source_id = shardSourceID("synth-si-bare-village", { ...components, o: String(order), v: String(read) });
|
|
64
|
+
const canonical = {
|
|
65
|
+
raw,
|
|
66
|
+
components,
|
|
67
|
+
country: "SI",
|
|
68
|
+
locale: "sl-SI",
|
|
69
|
+
source: "synth-si-bare-village",
|
|
70
|
+
source_id,
|
|
71
|
+
corpus_version: "0.9.9",
|
|
72
|
+
license: "Synthetic — si-bare-village; (village, number, postcode) from OpenAddresses SI (per-source attribution in the model card)",
|
|
73
|
+
};
|
|
74
|
+
if (alignAndWrite(write, canonical, "si-bare-village"))
|
|
75
|
+
emitted++;
|
|
76
|
+
else
|
|
77
|
+
skipped++;
|
|
78
|
+
}
|
|
79
|
+
return { read, emitted, skipped };
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=si-bare-village.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"si-bare-village.js","sourceRoot":"","sources":["../../../src/shard-recipes/si-bare-village.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAA;AAE1G,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC/C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,uGAAuG;IACpH,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;QACpB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAM,CAAC,EAAE,CAAC;YAC/C,IAAI,EAAE,CAAA;YACN,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAEhD,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAA;gBACT,SAAQ;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAA;YACtB,IAAI,GAAW,CAAA;YACf,MAAM,UAAU,GAA2B;gBAC1C,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,MAAM;gBACpB,QAAQ,EAAE,OAAO;aACjB,CAAA;YAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACjB,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBAC9B,GAAG,GAAG,GAAG,OAAO,IAAI,MAAM,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAA;YACrD,CAAC;iBAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACxB,GAAG,GAAG,GAAG,OAAO,IAAI,MAAM,KAAK,OAAO,EAAE,CAAA;YACzC,CAAC;iBAAM,CAAC;gBACP,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBAC9B,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,KAAK,OAAO,IAAI,MAAM,EAAE,CAAA;YACrD,CAAC;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,uBAAuB,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC9G,MAAM,SAAS,GAAG;gBACjB,GAAG;gBACH,UAAU;gBACV,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,uBAAuB;gBAC/B,SAAS;gBACT,cAAc,EAAE,OAAO;gBACvB,OAAO,EACN,2HAA2H;aAC5H,CAAA;YAED,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC;gBAAE,OAAO,EAAE,CAAA;;gBAC5D,OAAO,EAAE,CAAA;QACf,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAClC,CAAC;CACD,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mailwoman/corpus",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"description": "Mailwoman corpus pipeline: BIO-labeled dataset builder for the neural classifier.",
|
|
5
5
|
"license": "AGPL-3.0-only OR LicenseRef-Commercial",
|
|
6
6
|
"repository": {
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@dsnp/parquetjs": "1.8.7",
|
|
29
|
-
"@mailwoman/codex": "5.
|
|
30
|
-
"@mailwoman/core": "5.
|
|
31
|
-
"@mailwoman/formatter": "5.
|
|
29
|
+
"@mailwoman/codex": "5.3.0",
|
|
30
|
+
"@mailwoman/core": "5.3.0",
|
|
31
|
+
"@mailwoman/formatter": "5.3.0",
|
|
32
32
|
"csv-parse": "^5.6.0",
|
|
33
33
|
"fast-glob": "^3.3.3",
|
|
34
34
|
"fastest-levenshtein": "^1.0.16",
|