@finbheara/names 0.9.1 → 0.9.2

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.
@@ -94,11 +94,14 @@ var given_diminutives_default = {
94
94
  "the two names."
95
95
  ],
96
96
  families: {
97
+ ABIGAIL: ["ABBY", "ABBIE"],
97
98
  AIDAN: ["AIDEN", "AODHAN", "AIDY"],
98
99
  ALEXANDER: ["ALEX", "ALEC", "SANDY", "XANDER", "ALEXANDRA", "ALEXA", "LEXI", "LEXIE"],
100
+ AMANDA: ["MANDY"],
99
101
  ANDREW: ["ANDY"],
100
102
  ANNE: ["ANN", "ANNA", "ANNIE", "NANCY", "NAN", "ANYA"],
101
103
  ANTHONY: ["TONY"],
104
+ BARBARA: ["BARB"],
102
105
  BRIDGET: ["BRIDIE", "BRID", "BRIGID", "BRIGHID", "BREDA", "BREEDA", "BIDDY"],
103
106
  CAITLIN: ["CAITLYN", "KAITLIN", "KAITLYN", "KATELYN", "CAIT"],
104
107
  CATHERINE: [
@@ -119,13 +122,18 @@ var given_diminutives_default = {
119
122
  CHRISTOPHER: ["CHRIS", "KIT", "TOPHER"],
120
123
  CIARA: ["KIERA", "KEIRA", "CIARRA"],
121
124
  CIARAN: ["KIERAN", "KEIRAN"],
125
+ CYNTHIA: ["CINDY"],
122
126
  DANIEL: ["DAN", "DANNY", "DANIELLE", "DANI"],
127
+ DEBORAH: ["DEBRA", "DEBBIE", "DEB"],
123
128
  DEIRDRE: ["DEE", "DIDI"],
129
+ DOROTHY: ["DOT", "DOTTIE"],
124
130
  EDWARD: ["ED", "EDDIE", "TED", "TEDDY", "NED"],
125
131
  EILEEN: ["EILISH", "EILIS", "AILEEN"],
126
132
  ELIZABETH: ["LIZ", "LIZZIE", "BETH", "BETSY", "BETTY", "ELIZA", "LIBBY", "ELSIE", "ELISE"],
127
133
  EOIN: ["OWEN", "EOGHAN"],
134
+ FIONNUALA: ["FIONNULA", "FINOLA", "NUALA"],
128
135
  FRANCIS: ["FRANK", "FRANKIE", "FRAN", "FRANCES"],
136
+ GILLIAN: ["GILL"],
129
137
  GRAINNE: ["GRANIA", "GRACE", "GRAINE"],
130
138
  JACQUELINE: ["JACKIE"],
131
139
  JAMES: ["JIM", "JIMMY", "JAMIE", "SEAMUS", "JAY"],
@@ -133,6 +141,7 @@ var given_diminutives_default = {
133
141
  JOHN: ["JACK", "JOHNNY", "SEAN", "SHANE", "JOHNNIE", "EOIN"],
134
142
  JOSEPH: ["JOE", "JOEY", "JOSEPHINE", "JO"],
135
143
  JUDITH: ["JUDY"],
144
+ KIMBERLY: ["KIMBERLEY", "KIM"],
136
145
  MARGARET: [
137
146
  "MAGGIE",
138
147
  "PEGGY",
@@ -150,8 +159,10 @@ var given_diminutives_default = {
150
159
  MICHAEL: ["MIKE", "MICK", "MICKEY", "MICHEAL", "MICHELLE", "MICHAELA"],
151
160
  NICHOLAS: ["NICK", "NICKY", "NICOLE", "NICOLA", "NIKKI"],
152
161
  NIAMH: ["NEVE", "NEEVE"],
162
+ PAMELA: ["PAM"],
153
163
  PATRICK: ["PAT", "PADDY", "PADRAIG", "PATSY", "PATRICIA", "TRICIA", "TRISH", "PATTY"],
154
164
  PETER: ["PETE", "PEADAR"],
165
+ PHILIPPA: ["PIPPA"],
155
166
  RAYMOND: ["RAY"],
156
167
  REBECCA: ["BECKY", "BECCA", "BEX"],
157
168
  RICHARD: ["RICK", "RICKY", "DICK", "RICH", "RICHIE"],
@@ -160,11 +171,15 @@ var given_diminutives_default = {
160
171
  SIOBHAN: ["SHIVAUN", "CHEVONNE", "SIOBHAIN"],
161
172
  STEPHEN: ["STEVEN", "STEVE", "STEPHANIE", "STEPH"],
162
173
  SUSAN: ["SUE", "SUSIE", "SUZANNE", "SUZY"],
174
+ TERESA: ["THERESA", "TESS"],
163
175
  THOMAS: ["TOM", "TOMMY", "TOMAS", "THOM"],
176
+ VICTORIA: ["VICKY", "VICKI"],
164
177
  VINCENT: ["VINNIE"],
165
178
  WILLIAM: ["WILL", "BILL", "BILLY", "WILLIE", "LIAM"]
166
179
  },
167
180
  notAtGate: [
181
+ "ABBIE",
182
+ "ABBY",
168
183
  "ALEXA",
169
184
  "ALEXANDRA",
170
185
  "ANNA",
@@ -187,6 +202,7 @@ var given_diminutives_default = {
187
202
  "JO",
188
203
  "JOSEPHINE",
189
204
  "KATHLEEN",
205
+ "KIM",
190
206
  "LEXI",
191
207
  "LEXIE",
192
208
  "LIAM",
@@ -206,6 +222,7 @@ var given_diminutives_default = {
206
222
  "NICOLA",
207
223
  "NICOLE",
208
224
  "NIKKI",
225
+ "NUALA",
209
226
  "OWEN",
210
227
  "PADRAIG",
211
228
  "PATRICIA",
@@ -221,6 +238,7 @@ var given_diminutives_default = {
221
238
  "STEPH",
222
239
  "STEPHANIE",
223
240
  "SUZANNE",
241
+ "TESS",
224
242
  "TOMAS",
225
243
  "TRICIA",
226
244
  "TRISH"
@@ -1340,5 +1358,5 @@ function deriveNameFormat2(prints, options = {}) {
1340
1358
  }
1341
1359
  export { repairMojibake2, sameGivenFamily2, comparePosition2, nameRelation2, nameCompare2, probablySame2, createNameSet2, createNameMap2, createNameClusters2, MAX_READINGS2, surnameParts2, printAttestsOrder2, nameReadings2, meetReading2, refinesReading2, sameReading2, chooseReadingPair2, composeReadings2, composeNames2, meetReadings2, nameMeet2, showReading2, blockKeysOfReadings2, nameBlockKeys2, namesFeasible2, INFEASIBLE_CLASSES2, editDistance2, nearSpelling2, compoundGiven2, middleForm2, infeasibleClass2, isListJoiner2, personList2, NAME_FORMATS2, nameFormatOrder2, ORDER_READINGS2, readNameCell2, DEFAULT_NAME_FORMAT_THRESHOLD2, deriveNameFormat2 };
1342
1360
 
1343
- //# debugId=82AC2FB0D34BD09D64756E2164756E21
1344
- //# sourceMappingURL=index-b2k3er3h.js.map
1361
+ //# debugId=A94FC7266AE0EB2964756E2164756E21
1362
+ //# sourceMappingURL=index-knrkej0f.js.map
@@ -11,7 +11,7 @@
11
11
  "/**\n * person-list.ts — THE PEOPLE A PRINTED TEACHER LIST NAMES, each one a `PersonName`.\n *\n * A directory prints its teachers as one value more often than as one value per person:\n * `Kate & Katie Mailtina`, `Julie Mailtina, TCRG & Fiona Lillick, TCRG`, `Kevin, Helena, Leona\n * ADCRG, Sinead Corrbeg TCRG`. Handed to `personName` whole, such a value parses as ONE\n * person, and every name after the first lands in the middles: `Kate & Anthony Mailtina`\n * reads `Mailtina<<Kate<&<Anthony`, whose first given is `Kate` and whose middle is `Anthony`.\n * A gate that forgives a middle one side prints then meets `Mailtina, Kate` through a\n * middle name that is really a second person. This reader is the fix at the source: the\n * value is read into its people first, and each person is parsed on its own (`personName`\n * once per person), so no second name is ever a middle.\n *\n * IT IS A GIVEN-FIRST READER, and the order is not a parameter. The comma in a directory's\n * teacher value separates people or precedes letters (`Julie Mailtina, TCRG`); measured over a\n * large results corpus, 0 of 3,371 teacher mentions prints `Surname, Given`.\n * A caller holding a surname-first cell reads it with `personName(print, \"surname-first\")`\n * and never with this.\n *\n * WHAT SEPARATES TWO PEOPLE: `&`, a spaced `and`, a comma, a semicolon and a spaced slash.\n *\n * WHAT IS NOT A PERSON: letters. A member is cut at its first LETTERS token, which is a\n * credential or a degree (`TCRG`, `ADCRG/TCRG`, `A.D.C.R.G.`, `Ph.D.`, `Esq.`), an\n * all-capitals token after the name has begun in a print that is not itself all capitals,\n * or a token carrying a digit (a phone number). What follows the letters is not the name\n * either (`Kate O'Kysko, TCRG Bristol`), and a member that is only letters names nobody.\n * A caption before the name (`Teacher:`) and a style (`Dr.`) are not the name either.\n *\n * A SHARED SURNAME IS READ, NEVER GUESSED. A member of one name token (`Kate`, `Leona`) is\n * a given name whose surname the list prints once, on the next member that has one:\n * `Kate & Katie Mailtina` is Kate Mailtina and Katie Mailtina, and `Kevin, Helena, Leona ADCRG,\n * Sinead Corrbeg TCRG` is four Corrbegs. The surname is the donor's own parsed surname,\n * particles and all, so `Livia & Ann De Histow` lends `De Histow` and not `Histow`. A lone given\n * name with no full name after it (`Carole, Patricia, Conor`) names nobody this reader\n * can read, and is dropped rather than parsed as a surname.\n *\n * A VALUE THAT IS NOT A LIST IS ONE VALUE. Where any member runs past four name tokens the\n * value is prose (idm prints paragraphs), and it is returned as the one person the producer\n * delimited, exactly as `personName(print, \"given-first\")` reads it. Cutting a paragraph at\n * its commas would mint a person out of every clause.\n */\n\nimport { type PersonName, type PersonNameFactory, defaultPersonNameFactory } from \"./factory.ts\";\n\n/** One person a list names. */\nexport interface ListedPerson {\n\t/** the member as printed, letters cut off: a verbatim slice of the value */\n\tprinted: string;\n\t/** the member parsed, with the list's shared surname where it borrowed one */\n\tname: PersonName;\n\t/** the surname borrowed from a later member, as that member printed it, or `null` */\n\tsurnameFrom: string | null;\n}\n\n/** The tokens that join two people in a list, standing alone as a name field. */\nconst JOINERS: ReadonlySet<string> = new Set([\"&\", \"and\", \"+\"]);\n\n/**\n * Is this printed name field a list joiner (`&`, `and`, `+`)? A parsed name that carries\n * one as a given field is two people read as one, and `personList` is how to read it.\n */\nexport function isListJoiner(field: string): boolean {\n\treturn JOINERS.has(field.trim().toLocaleLowerCase());\n}\n\n/** Where one person ends and the next begins. */\nconst SEPARATOR = /\\s*[&;,]\\s*|\\s+\\/\\s+|\\s+and\\s+|\\s+\\+\\s+/giu;\n\n/**\n * Letters that name nobody wherever they stand, dots removed, lower case: the CLRG\n * credentials the directories print (with the spellings they print them in), and degrees.\n */\nconst LETTERS: ReadonlySet<string> = new Set([\n\t\"adcrg\",\n\t\"adcg\",\n\t\"adcrn\",\n\t\"bg\",\n\t\"bgcrg\",\n\t\"odcrn\",\n\t\"sdcrg\",\n\t\"tcg\",\n\t\"tcrg\",\n\t\"tmcrn\",\n\t\"tmrf\",\n\t\"phd\",\n\t\"esq\",\n\t\"jd\",\n]);\n\n/** A style printed before a name, which is not a given name. Dots removed, lower case. */\nconst TITLES: ReadonlySet<string> = new Set([\"dr\", \"mr\", \"mrs\", \"ms\", \"miss\"]);\n\n/** The most name tokens a member of a list carries before the value reads as prose. */\nconst MAX_NAME_TOKENS = 4;\n\nconst EDGE = /^[(\"“'‘[]+|[)\"”'’\\].:]+$/gu;\n\n/** A token's letters, edges and dots removed; for `ADCRG/TCRG` the first piece. */\nconst bareOf = (token: string): string =>\n\t(token.replace(EDGE, \"\").split(\"/\")[0] as string).replace(/\\./gu, \"\");\n\n/**\n * Is this token letters (a credential, a degree, a phone number) rather than a name? A\n * known credential is letters anywhere; any other all-capitals token only after a name has\n * begun, so `JR Nirnirvo` and `KT Quellane` keep their initials.\n */\nfunction isLetters(token: string, begun: boolean, allCaps: boolean): boolean {\n\tif (/\\p{N}/u.test(token)) return true;\n\tconst bare = bareOf(token);\n\tif (bare === \"\" || LETTERS.has(bare.toLocaleLowerCase())) return true;\n\treturn begun && !allCaps && bare.length >= 2 && /^\\p{Lu}+$/u.test(bare);\n}\n\n/**\n * A member's name tokens: everything before its first letters token, after any caption\n * (`Teacher:`, `TCRG's:`) and any leading style (`Dr.`).\n */\nfunction nameTokens(member: string, allCaps: boolean): string[] {\n\tlet out: string[] = [];\n\tfor (const t of member.split(/\\s+/u)) {\n\t\tif (t === \"\") continue;\n\t\tif (t.endsWith(\":\")) {\n\t\t\tout = [];\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLetters(t, out.length > 0, allCaps)) {\n\t\t\tif (out.length > 0) break;\n\t\t\tcontinue;\n\t\t}\n\t\tif (out.length === 0 && TITLES.has(bareOf(t).toLocaleLowerCase())) continue;\n\t\tout.push(t);\n\t}\n\treturn out;\n}\n\n/** The surname a parsed name prints, particles included, as one string. */\nconst surnamePrint = (p: PersonName): string =>\n\t[...p.surname.particles, p.surname.base].filter((s) => s !== \"\").join(\" \");\n\n/**\n * The people a given-first teacher value names, in print order. See the module docblock\n * for what separates them, what is cut as letters and how a shared surname is read.\n */\nexport function personList(\n\tprint: string,\n\tfactory: PersonNameFactory = defaultPersonNameFactory(),\n): ListedPerson[] {\n\tconst allCaps = !/\\p{Ll}/u.test(print);\n\tconst members = print\n\t\t.split(SEPARATOR)\n\t\t.map((m) => nameTokens(m, allCaps))\n\t\t.filter((tokens) => tokens.length > 0);\n\tif (members.length === 0) return [];\n\tconst whole = (): ListedPerson[] => [\n\t\t{ printed: print.trim(), name: factory.parse(print, \"given-first\"), surnameFrom: null },\n\t];\n\tif (members.some((tokens) => tokens.length > MAX_NAME_TOKENS)) return whole();\n\n\tconst out: ListedPerson[] = [];\n\tlet pending: string[] = [];\n\tfor (const tokens of members) {\n\t\tconst printed = tokens.join(\" \");\n\t\tif (tokens.length === 1) {\n\t\t\tpending.push(printed);\n\t\t\tcontinue;\n\t\t}\n\t\tconst name = factory.parse(printed, \"given-first\");\n\t\tconst surname = name.isPerson() ? surnamePrint(name) : \"\";\n\t\tif (surname !== \"\")\n\t\t\tfor (const given of pending)\n\t\t\t\tout.push({\n\t\t\t\t\tprinted: given,\n\t\t\t\t\tname: factory.parse(`${given} ${surname}`, \"given-first\"),\n\t\t\t\t\tsurnameFrom: surname,\n\t\t\t\t});\n\t\tpending = [];\n\t\tout.push({ printed, name, surnameFrom: null });\n\t}\n\treturn out;\n}\n",
12
12
  "/**\n * name-format.ts — which order a COLLECTION of printed names uses, and whether its name\n * cells also carry a school or a place, as probabilities.\n *\n * ## One print, then many\n *\n * `readNameCell` reads one printed name cell: which part is the name, which part (if\n * any) is a school or a place, how its comma reads, and which order the lexicon reads\n * its name part in. `deriveNameFormat` scores those readings over a collection, and\n * `deriveNameFormat([print])` is the one-print answer in the same shape.\n *\n * The collection is a DOCUMENT: one results sheet, one roster, one column. Deciding\n * what a document is (grouping rows by source, by event, by year), corroborating a\n * reading across documents, and hand-written declarations stay with the caller. A\n * derived format is a declaration the caller makes about a document, never a guess\n * about one print: hand it to `splitPersonName` (via `nameFormatOrder`) and to the\n * classifier as the document's order.\n *\n * ## The three formats\n *\n * - `First Last`: given-first (`Zelvine Quorrish`);\n * - `Last, First`: surname-first with a separator comma (`Quorrish, Zelvine`);\n * - `Last First`: surname-first with no comma (`QUORRISH ZELVINE`).\n *\n * `inferNameOrder` reads one print by its comma, so it reads `Last First` as\n * given-first. The token-position reading below is the only signal that sees it.\n *\n * ## How a print's commas are read\n *\n * A comma may be an order separator (`Quorrish, Zelvine`), a place delimiter\n * (`Zelvine Quorrish, Zandrel`), school glue (`Zelvine Quorrish, Quorrish Academy`), a\n * suffix delimiter (`Ydris Vantrell, Jr.`) or stray punctuation. The place and the\n * school are cut off first, each consuming the comma before it, and the comma that is\n * left is read by `commaReading`, the rule `inferNameOrder` reads one print with. A\n * print with a separator comma is not also read for token position.\n *\n * - A PLACE is a trailing field after a spaced dash, a comma (after a name of two or\n * more tokens), or inside a trailing parenthesis, every word of which the lexicon\n * flags as a place (`isPlaceWordFlags`, the classifier's place-phrase rule). After a\n * `:` (the name + school + region glue), the tail's trailing place fields are the\n * place and whatever precedes them is a school.\n * - A SCHOOL is the part after a `:` that is not a place, the row's own school cell\n * where the name cell prints it again at its end, or what the injected segmenter\n * (`createSegmenter` from `@finbheara/names/classifier`, built on the same lexicon\n * as `options.lexicon`) reads after the person span. This module never imports the\n * classifier; with neither a segmenter nor a row school, `hasSchool` is `null`.\n *\n * ## Token position against the lexicon\n *\n * A two-token name part with no separator comma is read against `names.txt`: a token\n * is GIVEN-ONLY (`F`/`M`/`N`, no `L`/`A`) or SURNAME-ONLY (`L`, no `F`/`M`/`N`/`A`),\n * and the print reads given-first or surname-first where one of each sits at either\n * end. Where one token is settled and the other is absent from the lexicon, the\n * settled token orients the print alone: the ONE-TOKEN reading, its own class because\n * it is noisier. A token the lexicon does not settle contributes nothing. The lexicon\n * is keyed case-insensitively, so `QUORRISH ZELVINE` and `Quorrish Zelvine` read the\n * same.\n *\n * ## Probabilistic, not a vote\n *\n * Each read print is scored independently under each format: whether it carries a\n * separator comma, and, for a lexicon reading, which way it points GIVEN its class.\n * The class itself is not scored, because how many prints the lexicon can read is a\n * fact about its coverage, not about order; so each print consistent with a format\n * can only raise that format. Smoothing keeps a small collection near uniform. Because\n * the prints are scored independently, a large collection is confident even when it\n * prints both orders; the separate MIXED test (a binomial test of the dissent count\n * against the dissent rate documents of the leading format show) turns such a\n * collection `unknown` and sets `mixed`. `hasSchool` and `hasLocation` are the\n * probability that MOST cells carry the part, given the reader's recall and false-read\n * rate. Every rate is fitted by `training/fit-name-format.ts`; the threshold and the\n * mixed test's level are decided, and the pull request that set them records both.\n */\n\nimport { isAmbiguous, isGiven, isSurname } from \"../lexicon/flags.ts\";\nimport { Lexicon } from \"../lexicon/index.ts\";\nimport { isPlaceWordFlags } from \"../lexicon/place.ts\";\nimport { isNoNamePrint, isPlaceholderPrint } from \"./name-placeholder.ts\";\nimport {\n\ttype CommaReading,\n\ttype NameOrder,\n\tcommaReading,\n\tisNameSuffix,\n\ttokenize,\n} from \"./name-split.ts\";\nimport { isTeamPrint } from \"./team-name.ts\";\n\n/** A printed-name order, as a document prints it. */\nexport type NameFormat = \"First Last\" | \"Last, First\" | \"Last First\";\n\n/** The three formats, in the order every vector below is laid out. */\nexport const NAME_FORMATS: readonly NameFormat[] = [\"First Last\", \"Last, First\", \"Last First\"];\n\n/** A collection's verdict: a format, or `\"unknown\"` where none clears the threshold. */\nexport type NameFormatVerdict = NameFormat | \"unknown\";\n\n/**\n * The `NameOrder` a verdict declares: `First Last` is given-first, both surname-first\n * forms are surname-first, and `unknown` stays `unknown`.\n */\nexport function nameFormatOrder(verdict: NameFormatVerdict): NameOrder {\n\tif (verdict === \"unknown\") return \"unknown\";\n\treturn verdict === \"First Last\" ? \"given-first\" : \"surname-first\";\n}\n\n/**\n * What one print says about order. `comma` is a separator comma; the others are the\n * lexicon's token-position readings, two tokens settled or one.\n */\nexport type OrderReading =\n\t| \"comma\"\n\t| \"given-first:two-token\"\n\t| \"surname-first:two-token\"\n\t| \"given-first:one-token\"\n\t| \"surname-first:one-token\";\n\n/** The order readings, in the order every count vector below is laid out. */\nexport const ORDER_READINGS: readonly OrderReading[] = [\n\t\"comma\",\n\t\"given-first:two-token\",\n\t\"surname-first:two-token\",\n\t\"given-first:one-token\",\n\t\"surname-first:one-token\",\n];\n\n/** Why a print was not read at all: it names nobody, or it is a team designation. */\nexport type SkipReason = \"empty\" | \"no-name\" | \"team\";\n\n/** How a print's comma was read, `place` where it delimited a trailing place. */\nexport type CommaClass = CommaReading | \"place\";\n\n/** One printed name cell, read. */\nexport interface NameCellReading {\n\t/** The print, verbatim. */\n\tprint: string;\n\t/** Set where the print was not read; every other field is then empty. */\n\tskipped?: SkipReason;\n\t/**\n\t * The name part: the print with its school and place cut off, whitespace collapsed.\n\t * Hand it to the splitter in place of the print.\n\t */\n\tname: string;\n\t/** The school part, where the segmenter read one. */\n\tschool?: string;\n\t/** The place part, where a delimited place was read. */\n\tlocation?: string;\n\t/**\n\t * How the print's commas read. `place` and `glue` are commas the place or school\n\t * reading consumed; the rest are `commaReading` of the name part.\n\t */\n\tcommas: readonly CommaClass[];\n\t/** The order reading, or `undefined` where the name part orients nothing. */\n\torder?: OrderReading;\n\t/** The order the reading points to; `undefined` where there is none. */\n\torderPoints?: \"given-first\" | \"surname-first\";\n\t/** Name tokens read (suffixes and punctuation-only tokens set aside). */\n\ttokens: number;\n}\n\n/** The counts behind a verdict. */\nexport interface NameFormatEvidence {\n\t/** Every print given. */\n\tprints: number;\n\t/** Prints not read, by reason. */\n\tskipped: Record<SkipReason, number>;\n\t/** Prints carrying a separator comma. */\n\tseparatorCommas: number;\n\t/** Commas that were not order separators, by class. */\n\tdiscountedCommas: Record<Exclude<CommaClass, \"none\" | \"separator\">, number>;\n\t/** Prints oriented by the lexicon, by reading. */\n\tlexicon: Record<Exclude<OrderReading, \"comma\">, number>;\n\t/** Read prints that orient nothing. */\n\tunread: number;\n\t/** Read prints carrying a school; `null` where no segmenter was given. */\n\tschool: number | null;\n\t/** Read prints carrying a place. */\n\tlocation: number;\n}\n\n/** A collection's answer. One print's answer has the same shape. */\nexport interface NameFormatResult {\n\t/** Over the three formats, summing to 1. */\n\tprobabilities: Record<NameFormat, number>;\n\t/** The format whose probability clears the threshold, else `\"unknown\"`. */\n\tverdict: NameFormatVerdict;\n\t/** The probability that the name cells carry a school; `null` without a segmenter. */\n\thasSchool: number | null;\n\t/** The probability that the name cells carry a place. */\n\thasLocation: number;\n\t/**\n\t * True where the dissent is too large for the leading format to have printed it: the\n\t * collection prints both orders, and the verdict is `unknown`.\n\t */\n\tmixed: boolean;\n\tevidence: NameFormatEvidence;\n\t/**\n\t * The readings that point to the order the verdict does not: given-first readings\n\t * under a surname-first verdict and the reverse. Where the verdict is `\"unknown\"`,\n\t * against the most probable format.\n\t */\n\tdissent: NameCellReading[];\n\t/** Every print's reading, in input order. */\n\treadings: NameCellReading[];\n}\n\n/** What the segmenter returns that is read here; the classifier's `SegmentResult` is one. */\nexport interface CellSegmentation {\n\treadonly person: readonly string[];\n\treadonly school: readonly string[];\n\treadonly location: readonly string[];\n}\n\n/** The segmenter as read here; the classifier's `createSegmenter(lexicon)` is one. */\nexport interface CellSegmenter {\n\tsegmentTokens(tokens: string[]): CellSegmentation;\n}\n\nexport interface NameCellOptions {\n\t/** The lexicon read for token position and places. Default: `Lexicon.default()`. */\n\tlexicon?: Lexicon;\n\t/** Reads the school part. Without one, no school is read. */\n\tsegmenter?: CellSegmenter | null;\n\t/** Read delimited places. Default true; `false` reads every comma by `commaReading`. */\n\treadLocation?: boolean;\n\t/**\n\t * The document's cells carry places (`deriveNameFormat` sets it where `hasLocation`\n\t * passes 0.5 on a first reading): a comma after a name of two or more tokens that no\n\t * given name follows is read as a place delimiter, so a place the lexicon does not\n\t * know is not read as `Last, First`.\n\t */\n\tplaceColumn?: boolean;\n}\n\nexport interface NameFormatOptions extends NameCellOptions {\n\t/** The probability a format must reach to be the verdict. Default `DEFAULT_NAME_FORMAT_THRESHOLD`. */\n\tthreshold?: number;\n}\n\n/**\n * A print given as its name cell, or as the cell and its row's own school cell. Where\n * the name cell prints that school again at its end, the school is cut off there.\n */\nexport type PrintedNameCell = string | { name: string; school?: string };\n\n// ─── one print ──────────────────────────────────────────────────────────────\n\nconst HAS_LETTER = /\\p{L}/u;\nconst SPACED_DASH = /\\s[-–—]\\s/gu;\n\n/** A field every word of which (split at `,` and `/`) is a place word. */\nfunction isPlaceField(field: string, flagsOf: (t: string) => string | null): boolean {\n\tconst words = field\n\t\t.split(/[\\s,/]+/u)\n\t\t.map((w) => w.replace(/^[.(]+|[.)]+$/gu, \"\"))\n\t\t.filter((w) => w !== \"\");\n\treturn words.length > 0 && words.every((w) => isPlaceWordFlags(flagsOf(w) ?? \"\"));\n}\n\nfunction givenOnly(flags: string | null): boolean {\n\treturn flags !== null && isGiven(flags) && !isSurname(flags) && !isAmbiguous(flags);\n}\n\nfunction surnameOnly(flags: string | null): boolean {\n\treturn flags !== null && isSurname(flags) && !isGiven(flags) && !isAmbiguous(flags);\n}\n\n/** Two tokens, read against the lexicon. */\nfunction tokenOrder(a: string | null, b: string | null): OrderReading | undefined {\n\tif (givenOnly(a) && surnameOnly(b)) return \"given-first:two-token\";\n\tif (surnameOnly(a) && givenOnly(b)) return \"surname-first:two-token\";\n\tif (a !== null && b !== null) return undefined;\n\tif (b === null && givenOnly(a)) return \"given-first:one-token\";\n\tif (a === null && surnameOnly(b)) return \"given-first:one-token\";\n\tif (b === null && surnameOnly(a)) return \"surname-first:one-token\";\n\tif (a === null && givenOnly(b)) return \"surname-first:one-token\";\n\treturn undefined;\n}\n\n/** The order a reading points to. */\nexport function orderReadingPoints(r: OrderReading): \"given-first\" | \"surname-first\" {\n\treturn r === \"given-first:two-token\" || r === \"given-first:one-token\"\n\t\t? \"given-first\"\n\t\t: \"surname-first\";\n}\n\n/** A lexicon, its flag lookup bound once per lexicon. */\nconst flagLookups = new WeakMap<Lexicon, (t: string) => string | null>();\nfunction flagsOfLexicon(lexicon: Lexicon): (t: string) => string | null {\n\tlet f = flagLookups.get(lexicon);\n\tif (f === undefined) {\n\t\tf = (t) => lexicon.getNameFlags(t);\n\t\tflagLookups.set(lexicon, f);\n\t}\n\treturn f;\n}\n\n/**\n * Read one printed name cell: its name, school and place parts, how its commas read,\n * and the order its name part reads in.\n */\nexport function readNameCell(\n\tcell: PrintedNameCell,\n\toptions: NameCellOptions = {},\n): NameCellReading {\n\tconst print = typeof cell === \"string\" ? cell : cell.name;\n\tconst rowSchool =\n\t\ttypeof cell === \"string\" ? \"\" : (cell.school ?? \"\").replace(/\\s+/gu, \" \").trim();\n\tconst flagsOf = flagsOfLexicon(options.lexicon ?? Lexicon.default());\n\tconst readLocation = options.readLocation ?? true;\n\tconst skip = (skipped: SkipReason): NameCellReading => ({\n\t\tprint,\n\t\tskipped,\n\t\tname: \"\",\n\t\tcommas: [],\n\t\ttokens: 0,\n\t});\n\n\tlet s = print.replace(/\\s+/gu, \" \").trim();\n\tif (s === \"\") return skip(\"empty\");\n\tif (isNoNamePrint(s) || isPlaceholderPrint(s)) return skip(\"no-name\");\n\tif (isTeamPrint(s)) return skip(\"team\");\n\n\tconst places: string[] = [];\n\tconst commas: CommaClass[] = [];\n\tlet school: string | undefined;\n\tif (readLocation) {\n\t\t// After a colon: the glue of a name + school + region print. The tail's trailing\n\t\t// place fields are the place; whatever precedes them in the tail is a school.\n\t\tconst colon = s.indexOf(\":\");\n\t\tif (colon > 0) {\n\t\t\tlet tail = s.slice(colon + 1).trim();\n\t\t\ts = s.slice(0, colon).trim();\n\t\t\tconst tailPlaces: string[] = [];\n\t\t\tfor (;;) {\n\t\t\t\tif (isPlaceField(tail, flagsOf)) {\n\t\t\t\t\ttailPlaces.unshift(tail);\n\t\t\t\t\tfor (const _ of tail.matchAll(/,/gu)) commas.push(\"place\");\n\t\t\t\t\ttail = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst at = tail.lastIndexOf(\",\");\n\t\t\t\tif (at <= 0) break;\n\t\t\t\tconst field = tail.slice(at + 1).trim();\n\t\t\t\tif (field === \"\" || !isPlaceField(field, flagsOf)) break;\n\t\t\t\ttailPlaces.unshift(field);\n\t\t\t\tcommas.push(\"place\");\n\t\t\t\ttail = tail.slice(0, at).trim();\n\t\t\t}\n\t\t\tif (tailPlaces.length > 0) places.unshift(tailPlaces.join(\", \"));\n\t\t\tif (HAS_LETTER.test(tail)) school = tail;\n\t\t}\n\t\t// A trailing parenthesis naming a place.\n\t\tconst paren = /\\s*\\(([^()]*)\\)\\s*$/u.exec(s);\n\t\tif (paren !== null && paren.index > 0 && isPlaceField(paren[1] as string, flagsOf)) {\n\t\t\tplaces.unshift((paren[1] as string).trim());\n\t\t\ts = s.slice(0, paren.index).trim();\n\t\t}\n\t\t// After each spaced dash from the end, while each tail is a place.\n\t\tfor (;;) {\n\t\t\tconst dashes = [...s.matchAll(SPACED_DASH)];\n\t\t\tconst dash = dashes[dashes.length - 1];\n\t\t\tif (dash === undefined || dash.index <= 0) break;\n\t\t\tconst tail = s.slice(dash.index + dash[0].length).trim();\n\t\t\tif (!isPlaceField(tail, flagsOf)) break;\n\t\t\tplaces.unshift(tail);\n\t\t\tfor (const _ of tail.matchAll(/,/gu)) commas.push(\"place\");\n\t\t\ts = s.slice(0, dash.index).trim();\n\t\t}\n\t\t// Comma fields from the end, while each is a place.\n\t\tfor (;;) {\n\t\t\tconst at = s.lastIndexOf(\",\");\n\t\t\tif (at <= 0) break;\n\t\t\tconst tail = s.slice(at + 1).trim();\n\t\t\tif (tail === \"\" || !isPlaceField(tail, flagsOf)) break;\n\t\t\tconst head = s.slice(0, at).trim();\n\t\t\t// A one-token head is a surname before its given name (`Ospindle, Lirabel`), and a\n\t\t\t// given name the lexicon also knows as a place is still a given name there.\n\t\t\tif (tokenize(head.replace(/,/gu, \" \")).filter((t) => HAS_LETTER.test(t)).length < 2) break;\n\t\t\tplaces.unshift(tail);\n\t\t\tcommas.push(\"place\");\n\t\t\ts = head;\n\t\t}\n\t}\n\t// Asides other than a place are not part of the name.\n\ts = s\n\t\t.replace(/\\([^()]*\\)/gu, \" \")\n\t\t.replace(/\\s+/gu, \" \")\n\t\t.trim();\n\tif (!HAS_LETTER.test(s)) {\n\t\tif (places.length === 0) return skip(\"no-name\");\n\t\ts = \"\";\n\t}\n\n\t// The row's own school cell, printed again at the end of the name cell.\n\tif (school === undefined && rowSchool !== \"\" && HAS_LETTER.test(rowSchool)) {\n\t\tconst at = s.toLocaleLowerCase().lastIndexOf(rowSchool.toLocaleLowerCase());\n\t\t// Only at a word boundary: `Zelvine QVarrow Hall` does not end with `Varrow Hall`.\n\t\tif (at > 0 && at + rowSchool.length === s.length && /[\\s,;:-]/u.test(s[at - 1] ?? \"\")) {\n\t\t\tconst head = s.slice(0, at);\n\t\t\tif (HAS_LETTER.test(head)) {\n\t\t\t\tschool = s.slice(at);\n\t\t\t\tif (/,\\s*$/u.test(head)) commas.push(\"glue\");\n\t\t\t\ts = head.replace(/[\\s,;:-]+$/u, \"\");\n\t\t\t}\n\t\t}\n\t}\n\tif (school === undefined && options.segmenter && s !== \"\") {\n\t\tconst words = s.split(\" \");\n\t\tconst kept: number[] = [];\n\t\tconst clean: string[] = [];\n\t\tfor (const [i, w] of words.entries()) {\n\t\t\tconst c = w.replace(/^[,;.]+|[,;.]+$/gu, \"\");\n\t\t\tif (!HAS_LETTER.test(c)) continue;\n\t\t\tkept.push(i);\n\t\t\tclean.push(c);\n\t\t}\n\t\tif (clean.length >= 2) {\n\t\t\tconst seg = options.segmenter.segmentTokens(clean);\n\t\t\tif (seg.person.length > 0 && seg.school.length > 0) {\n\t\t\t\tconst cut = kept[seg.person.length] as number;\n\t\t\t\tschool = seg.school.join(\" \");\n\t\t\t\tif (seg.location.length > 0) places.unshift(seg.location.join(\" \"));\n\t\t\t\tconst tail = words.slice(cut).join(\" \");\n\t\t\t\tfor (const _ of tail.matchAll(/,/gu)) commas.push(\"glue\");\n\t\t\t\ts = words\n\t\t\t\t\t.slice(0, cut)\n\t\t\t\t\t.join(\" \")\n\t\t\t\t\t.replace(/[\\s,;-]+$/u, \"\");\n\t\t\t\tif (/,\\s*$/u.test(words.slice(0, cut).join(\" \"))) commas.push(\"glue\");\n\t\t\t}\n\t\t}\n\t}\n\n\tlet comma = commaReading(s);\n\t// In a document whose cells carry places, a comma after a name of two or more\n\t// tokens, followed by no given name, delimits a place the lexicon does not know.\n\tif (comma === \"separator\" && readLocation && options.placeColumn) {\n\t\tconst at = s.lastIndexOf(\",\");\n\t\tconst head = s.slice(0, at).trim();\n\t\tconst tail = s.slice(at + 1).trim();\n\t\tconst headTokens = tokenize(head).filter((t) => HAS_LETTER.test(t));\n\t\tconst tailTokens = tokenize(tail).filter((t) => HAS_LETTER.test(t));\n\t\tconst givenInTail = tailTokens.some((t) => {\n\t\t\tconst f = flagsOf(t);\n\t\t\treturn f !== null && isGiven(f);\n\t\t});\n\t\tif (headTokens.length >= 2 && tailTokens.length > 0 && !givenInTail) {\n\t\t\tplaces.push(tail);\n\t\t\tcommas.push(\"place\");\n\t\t\ts = head;\n\t\t\tcomma = commaReading(s);\n\t\t}\n\t}\n\tif (comma !== \"none\") commas.push(comma);\n\tconst out: NameCellReading = {\n\t\tprint,\n\t\tname: s,\n\t\tcommas,\n\t\ttokens: 0,\n\t\t...(school !== undefined ? { school } : {}),\n\t\t...(places.length > 0 ? { location: places.join(\", \") } : {}),\n\t};\n\tconst tokens = tokenize(s.replace(/,/gu, \" \")).filter(\n\t\t(t) => HAS_LETTER.test(t) && !isNameSuffix(t),\n\t);\n\tout.tokens = tokens.length;\n\tif (comma === \"separator\") {\n\t\tout.order = \"comma\";\n\t} else if (comma !== \"glue\" && comma !== \"particle\" && tokens.length === 2) {\n\t\tconst order = tokenOrder(flagsOf(tokens[0] as string), flagsOf(tokens[1] as string));\n\t\tif (order !== undefined) out.order = order;\n\t}\n\tif (out.order !== undefined) out.orderPoints = orderReadingPoints(out.order);\n\treturn out;\n}\n\n// ─── many prints ────────────────────────────────────────────────────────────\n\n/** Natural log of the gamma function (Lanczos, g = 7), for positive arguments. */\nfunction logGamma(x: number): number {\n\tif (x < 0.5) return Math.log(Math.PI / Math.sin(Math.PI * x)) - logGamma(1 - x);\n\tconst c = [\n\t\t0.99999999999980993, 676.5203681218851, -1259.1392167224028, 771.32342877765313,\n\t\t-176.61502916214059, 12.507343278686905, -0.13857109526572012, 9.9843695780195716e-6,\n\t\t1.5056327351493116e-7,\n\t];\n\tconst z = x - 1;\n\tlet a = c[0] as number;\n\tconst t = z + 7.5;\n\tfor (let i = 1; i < 9; i++) a += (c[i] as number) / (z + i);\n\treturn 0.5 * Math.log(2 * Math.PI) + (z + 0.5) * Math.log(t) - t + Math.log(a);\n}\n\n/** `P(X >= k)` for `X` binomial over `n` trials with rate `p`. */\nexport function binomialTail(k: number, n: number, p: number): number {\n\tif (k <= 0) return 1;\n\tif (p <= 0) return 0;\n\tif (p >= 1) return 1;\n\tconst lp = Math.log(p);\n\tconst lq = Math.log1p(-p);\n\tlet tail = 0;\n\tfor (let j = k; j <= n; j++)\n\t\ttail += Math.exp(\n\t\t\tlogGamma(n + 1) - logGamma(j + 1) - logGamma(n - j + 1) + j * lp + (n - j) * lq,\n\t\t);\n\treturn Math.min(1, tail);\n}\n\n/** Posterior over hypotheses with a uniform prior: softmax of the log likelihoods. */\nfunction posterior(logs: readonly number[]): number[] {\n\tconst m = Math.max(...logs);\n\tconst e = logs.map((l) => Math.exp(l - m));\n\tconst z = e.reduce((x, y) => x + y, 0);\n\treturn e.map((x) => x / z);\n}\n\n/** How the reader sees a part (school or place): how often it reads one that is there, and one that is not. */\nexport interface PartReader {\n\t/** P(read | the cell carries one). */\n\trecall: number;\n\t/** P(read | the cell carries none). */\n\tfalseRate: number;\n}\n\n/**\n * The fitted model. Every print is read independently given the format:\n *\n * - `comma`: P(a read print carries a separator comma | format);\n * - `surnameFirst`: P(a lexicon reading points surname-first | its class, format).\n * The CLASS (two-token or one-token) is taken as given, not scored: how many prints\n * the lexicon can read at all is a fact about the lexicon's coverage, not about\n * order. So each consistent print can only raise the format it is consistent with.\n * - `dissent`: the share of oriented prints that point against a format's order in\n * documents of that format; the mixed-document test's bound.\n * - `school`, `location`: the reader's recall and false-read rate for each part.\n */\nexport interface NameFormatModel {\n\tcomma: Record<NameFormat, number>;\n\tsurnameFirst: Record<NameFormat, { twoToken: number; oneToken: number }>;\n\tdissent: Record<NameFormat, number>;\n\t/**\n\t * Uninformative pseudo-prints mixed into the order probabilities: with `n` oriented\n\t * prints, each probability is `(n·p + smoothing/3) / (n + smoothing)`, and each\n\t * part probability is `(n·p + smoothing/2) / (n + smoothing)` over `n` read prints,\n\t * so a small population stays near uniform whatever its likelihoods say.\n\t */\n\tsmoothing: number;\n\t/**\n\t * The mixed-document test's level: a collection whose dissent count is less\n\t * probable than this, binomially, at the leading format's `dissent` rate, prints\n\t * both orders; its verdict is `unknown` (`mixed`) however the probabilities fall.\n\t */\n\tmixedTail: number;\n\tschool: PartReader;\n\tlocation: PartReader;\n}\n\n/**\n * FITTED by `training/fit-name-format.ts` (and its selection of `smoothing`; the\n * threshold and `mixedTail` are decided, see the pull request). Provenance:\n *\n * corpus: corpus-v3.0.0-188, solo competitions, transcript and manifested halves\n * command: NAMES_CORPUS_DIR=<corpus-v3.0.0-188> bun training/fit-name-format.ts\n * split: 80/10/10 by event-year, `splitOf` (FNV-1a of the event-year, no seed)\n * date: 2026-10-02\n *\n * Refit when the readings above change.\n */\nexport const NAME_FORMAT_MODEL: NameFormatModel = {\n\tcomma: { \"First Last\": 0.00001237, \"Last, First\": 0.9989, \"Last First\": 0.0009921 },\n\tsurnameFirst: {\n\t\t\"First Last\": { twoToken: 0.0008603, oneToken: 0.02476 },\n\t\t\"Last, First\": { twoToken: 0.5, oneToken: 0.0625 },\n\t\t\"Last First\": { twoToken: 0.9972, oneToken: 0.9604 },\n\t},\n\tdissent: { \"First Last\": 0.004387, \"Last, First\": 0.0004406, \"Last First\": 0.01895 },\n\tsmoothing: 0.25,\n\tmixedTail: 0.01,\n\tschool: { recall: 0.9945, falseRate: 0.0248 },\n\tlocation: { recall: 0.6772, falseRate: 0.0001503 },\n};\n\n/** The default threshold (see `NAME_FORMAT_MODEL`). */\nexport const DEFAULT_NAME_FORMAT_THRESHOLD = 0.95;\n\n/** The order readings of a collection, counted in `ORDER_READINGS` order. */\nexport function orderCounts(readings: readonly NameCellReading[]): number[] {\n\tconst counts = ORDER_READINGS.map(() => 0);\n\tfor (const r of readings) if (r.order !== undefined) counts[ORDER_READINGS.indexOf(r.order)]!++;\n\treturn counts;\n}\n\n/** Log likelihood of a collection's readings under one format. */\nfunction orderLogLikelihood(\n\tcounts: readonly number[],\n\tread: number,\n\tmodel: NameFormatModel,\n\tf: NameFormat,\n): number {\n\tconst [comma, gf2, sf2, gf1, sf1] = counts as [number, number, number, number, number];\n\tconst k = model.comma[f];\n\tconst s = model.surnameFirst[f];\n\treturn (\n\t\tcomma * Math.log(k) +\n\t\t(read - comma) * Math.log1p(-k) +\n\t\tsf2 * Math.log(s.twoToken) +\n\t\tgf2 * Math.log1p(-s.twoToken) +\n\t\tsf1 * Math.log(s.oneToken) +\n\t\tgf1 * Math.log1p(-s.oneToken)\n\t);\n}\n\n/**\n * P(most cells carry the part | `k` of `n` read prints read one): the share `θ` of\n * cells carrying it is uniform a priori, each print reads one with probability\n * `θ·recall + (1 - θ)·falseRate`, and the answer is the posterior mass of `θ ≥ 1/2`.\n */\nexport function partProbability(k: number, n: number, reader: PartReader): number {\n\tif (n === 0) return 0.5;\n\tconst steps = 200;\n\tlet lo = 0;\n\tlet hi = 0;\n\tconst logs: number[] = [];\n\tfor (let i = 0; i < steps; i++) {\n\t\tconst theta = (i + 0.5) / steps;\n\t\tconst q = theta * reader.recall + (1 - theta) * reader.falseRate;\n\t\tlogs.push(k * Math.log(q) + (n - k) * Math.log1p(-q));\n\t}\n\tconst m = Math.max(...logs);\n\tfor (const [i, l] of logs.entries()) {\n\t\tconst w = Math.exp(l - m);\n\t\tif ((i + 0.5) / steps >= 0.5) hi += w;\n\t\telse lo += w;\n\t}\n\treturn hi / (lo + hi);\n}\n\n/** Score a collection's readings under a model. Exported for the fit; callers use `deriveNameFormat`. */\nexport function scoreReadings(\n\treadings: readonly NameCellReading[],\n\tmodel: NameFormatModel,\n\tthreshold: number,\n\tschoolRead: boolean,\n): NameFormatResult {\n\tconst evidence: NameFormatEvidence = {\n\t\tprints: readings.length,\n\t\tskipped: { empty: 0, \"no-name\": 0, team: 0 },\n\t\tseparatorCommas: 0,\n\t\tdiscountedCommas: { place: 0, glue: 0, trailing: 0, suffix: 0, particle: 0 },\n\t\tlexicon: {\n\t\t\t\"given-first:two-token\": 0,\n\t\t\t\"surname-first:two-token\": 0,\n\t\t\t\"given-first:one-token\": 0,\n\t\t\t\"surname-first:one-token\": 0,\n\t\t},\n\t\tunread: 0,\n\t\tschool: schoolRead ? 0 : null,\n\t\tlocation: 0,\n\t};\n\tlet read = 0;\n\tfor (const r of readings) {\n\t\tif (r.skipped !== undefined) {\n\t\t\tevidence.skipped[r.skipped]++;\n\t\t\tcontinue;\n\t\t}\n\t\tread++;\n\t\tfor (const c of r.commas) {\n\t\t\tif (c === \"separator\") evidence.separatorCommas++;\n\t\t\telse if (c !== \"none\") evidence.discountedCommas[c]++;\n\t\t}\n\t\tif (r.order === undefined) evidence.unread++;\n\t\telse if (r.order !== \"comma\") evidence.lexicon[r.order]++;\n\t\tif (r.school !== undefined && evidence.school !== null) evidence.school++;\n\t\tif (r.location !== undefined) evidence.location++;\n\t}\n\n\tconst counts = orderCounts(readings);\n\tconst oriented = counts.reduce((a, b) => a + b, 0);\n\tconst smooth = (x: number, n: number, k: number): number =>\n\t\tn + model.smoothing === 0 ? x : (n * x + model.smoothing / k) / (n + model.smoothing);\n\tconst p = posterior(NAME_FORMATS.map((f) => orderLogLikelihood(counts, read, model, f))).map(\n\t\t(x) => smooth(x, oriented, NAME_FORMATS.length),\n\t);\n\tconst probabilities = Object.fromEntries(\n\t\tNAME_FORMATS.map((f, i) => [f, p[i] as number]),\n\t) as Record<NameFormat, number>;\n\tlet best = 0;\n\tfor (let i = 1; i < p.length; i++) if ((p[i] as number) > (p[best] as number)) best = i;\n\tconst leading = NAME_FORMATS[best] as NameFormat;\n\tconst against = nameFormatOrder(leading) === \"given-first\" ? \"surname-first\" : \"given-first\";\n\tconst dissent = readings.filter((r) => r.orderPoints === against);\n\tconst mixed =\n\t\tdissent.length > 0 &&\n\t\tbinomialTail(dissent.length, oriented, model.dissent[leading]) < model.mixedTail;\n\tconst verdict: NameFormatVerdict =\n\t\t!mixed && (p[best] as number) >= threshold ? leading : \"unknown\";\n\n\treturn {\n\t\tprobabilities,\n\t\tverdict,\n\t\thasSchool:\n\t\t\tevidence.school === null\n\t\t\t\t? null\n\t\t\t\t: smooth(partProbability(evidence.school, read, model.school), read, 2),\n\t\thasLocation: smooth(partProbability(evidence.location, read, model.location), read, 2),\n\t\tmixed,\n\t\tevidence,\n\t\tdissent,\n\t\treadings: [...readings],\n\t};\n}\n\n/**\n * Which printed-name order one collection of name cells uses, and whether the cells\n * carry a school or a place. See the module comment.\n */\nexport function deriveNameFormat(\n\tprints: Iterable<PrintedNameCell>,\n\toptions: NameFormatOptions = {},\n): NameFormatResult {\n\tconst cells = [...prints];\n\tconst threshold = options.threshold ?? DEFAULT_NAME_FORMAT_THRESHOLD;\n\tconst schoolRead =\n\t\tBoolean(options.segmenter) || cells.some((c) => typeof c !== \"string\" && Boolean(c.school));\n\tconst first = scoreReadings(\n\t\tcells.map((c) => readNameCell(c, options)),\n\t\tNAME_FORMAT_MODEL,\n\t\tthreshold,\n\t\tschoolRead,\n\t);\n\tif (first.hasLocation <= 0.5 || options.readLocation === false || options.placeColumn)\n\t\treturn first;\n\treturn scoreReadings(\n\t\tcells.map((c) => readNameCell(c, { ...options, placeColumn: true })),\n\t\tNAME_FORMAT_MODEL,\n\t\tthreshold,\n\t\tschoolRead,\n\t);\n}\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "82AC2FB0D34BD09D64756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "A94FC7266AE0EB2964756E2164756E21",
16
16
  "names": []
17
17
  }
package/dist/index.js CHANGED
@@ -79,7 +79,7 @@ import {
79
79
  readNameCell2,
80
80
  DEFAULT_NAME_FORMAT_THRESHOLD2,
81
81
  deriveNameFormat2
82
- } from "./chunks/index-b2k3er3h.js";
82
+ } from "./chunks/index-knrkej0f.js";
83
83
  import {
84
84
  composeEvalSet2,
85
85
  evaluateClassifier2
@@ -38,7 +38,7 @@ import {
38
38
  readNameCell2,
39
39
  DEFAULT_NAME_FORMAT_THRESHOLD2,
40
40
  deriveNameFormat2
41
- } from "../chunks/index-b2k3er3h.js";
41
+ } from "../chunks/index-knrkej0f.js";
42
42
  import {
43
43
  NAME_REFUSED2,
44
44
  stripEveryAside2,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finbheara/names",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "A curated lexicon of personal, school and place names, the surname-particle vocabulary, a phrase classifier and a person-name normalizer",
5
5
  "keywords": [
6
6
  "names",