lv-mccarthy D3 on gx10: leak gate PASSED, and the val split is now bigger than Hemingway's

~/lv-mccarthy on pfi-gx10: corpus-clean, corpus-renamed (6 copies, 1,002 records), scripts.

  leak gate   0 of 75 renameable and 0 of 37 sub-threshold survive in any copy
              positive control 108/108 surfaces found in the unrenamed source
              negative control nonce absent from both trees

THREE McCARTHY-SPECIFIC DECISIONS, each forced by a measurement.

1. --scope corpus, NOT the default per-work map. The Border Trilogy shares characters
   across books -- 9 surfaces appear in more than one work, including Parham (The
   Crossing + Cities of the Plain), Grady and Cole (All the Pretty Horses + Cities of
   the Plain), Socorro and Héctor. A per-work map would give John Grady a different
   invented name in each novel, turning one character into two.

2. A NEW `mccarthy` rename preset rather than reusing `hemingway`. Both are
   Spanish-inflected, but Hemingway's romance pool carries it_IT and fr_FR for his
   Italian and French casts, and McCarthy writes neither language -- drawing from it
   would drop Italian and French surnames into a Texas-Mexico border novel. en_GB goes
   for the same reason. en_US + es_MX/es_ES at an even share.

3. --min-cap 5 to MATCH the entity map's floor. The first gate run FAILED with 45
   survivors, and the diagnosis is the Brontë lesson exactly: entities.py admits
   cap >= 5 while rename.py only renamed cap >= 8, so every entity between 5 and 7 sat
   in the map, was never renamed, and was counted as a leak. Hemingway never hit it
   because its map had sub_threshold_total 0.

⭐ --holdout-chapter NOW TAKES A LIST, and this is the change with the most downstream
effect. The val split is one chapter index per work, so its SIZE is set by how many
WORKS a corpus has, not how many words:

  Hemingway  10 works -> 9 val units -> 36,563 words/copy -> gate DECISIVE
  Brontë      4 works -> 4 val units -> 17,043 words/copy -> gate MARGINAL
  McCarthy    6 works -> 6 val units -> ~18,000 would have been Brontë's end of that

Holding out chapters 7 AND 17 gives 11 units and 40,653 words per copy -- larger than
Hemingway's, at a cost of 7% of the corpus -- on a corpus 40% smaller than his. No
amount of corpus size fixes a val split that scales with work count.

THE HUMAN GENDER PASS IS NOW AN AUDITABLE FILE, not a hand edit. The honorific/window
resolver scored 21 correct / 3 held / 1 WRONG against a 26-name control; the base-rate
proximity resolver built for Hemingway scored 18/6/1 and its own guard correctly
REFUSED to write. So the incumbent stands and four entries are fixed by hand in
gender_overrides_mccarthy.json, each carrying its evidence.

⚠ All four are female and all four look male-dominated in raw pronoun counts, because
this corpus runs 29,144 male pronouns to 5,036 female -- a base rate of 85.3% male.
Carla Jean Moss at 31m/21f would be 44m/8f at that base rate, so 21 female against an
expected 8 is decisive. Same arithmetic that recovered Pilar and Brett on Hemingway.
Alfonsa was in my control set and is correctly absent from the map at 4 occurrences,
below the min-count floor -- an error in the control, not the pipeline.

apply_gender_overrides.py refuses two ways: a name absent from the map is an error
rather than a silent no-op, and overruling a gender the detector already holds needs
an explicit "correcting": true so it cannot look like filling a held entity in a diff.
This commit is contained in:
vh
2026-09-17 08:59:00 -07:00
parent 5aa10bf138
commit 5ddb0472e4
4 changed files with 171 additions and 4 deletions
+24 -2
View File
@@ -41,7 +41,10 @@
"Ford / Hashknives": "STOPLISTED. 'a Model A Ford truck'; 'went to work for the Hashknives' -- the real Aztec Land & Cattle outfit. Brands and real companies.",
"Calle": "STOPLISTED. Spanish for 'street' -- 'the Calle de Noche Triste'. A common noun, like Avenue.",
"Yaqui / Gilenos": "STOPLISTED. Real indigenous peoples -- 'lay clear of the Yaqui country', 'all trace of the Gilenos faded'. Demonyms.",
"Terrell": "STOPLISTED. 'nineteen felony charges were filed in the Terrell County Court' -- a real Texas county."
"Terrell": "STOPLISTED. 'nineteen felony charges were filed in the Terrell County Court' -- a real Texas county.",
"Hearst / Trias / Huerta / Madero": "STOPLISTED as REAL PEOPLE. 'a señor Hearst' (the real Hearst ranch at Babícora); 'a contract with Trias' (Ángel Trías, the real Chihuahua governor who paid Glanton for scalps); 'Victoriano Huerta'; 'Francisco Madero'. Blood Meridian and the Border Trilogy put real historical figures on the page under their own names.",
"Batopite / Buenaventura / Deming / Nacogdoches / Californy / Hog": "STOPLISTED as geography. Real Chihuahua, New Mexico and Texas towns; 'Californy' is dialect for California; 'Hog' is only ever 'Hog Canyon Springs'.",
"Doc / Dorsey / Gillian": "KEPT RENAMEABLE. 'Doc Irving' and 'John Dorsey' are men; 'Soto y Gillian' is a cattle company named for its owners, which is ambiguous and so takes the safe direction."
},
"geography": [
"America",
@@ -52,35 +55,46 @@
"Arkansas",
"Avenue",
"Babícora",
"Batopite",
"Baviacora",
"Bavispe",
"Bexar",
"Boquilla",
"Buenaventura",
"Caborca",
"California",
"Californy",
"Calle",
"Casas",
"Chihuahua",
"Cloverdale",
"Coahuila",
"Colorado",
"Deming",
"Diego",
"Durango",
"Eagle",
"El",
"Encantada",
"Francisco",
"Frontera",
"Galveston",
"Grandes",
"Griffin",
"Hog",
"Huisiachepic",
"Janos",
"Kentucky",
"Langtry",
"Madera",
"Mexico",
"Missouri",
"Nacogdoches",
"Nacozari",
"Namiquipa",
"Odessa",
"Oklahoma",
"Parras",
"Paso",
"Pilares",
"Purísima",
@@ -169,5 +183,13 @@
"Venada",
"Moderno"
]
}
},
"real_people": [
"Francisco",
"Hearst",
"Huerta",
"Madero",
"Trias",
"Victoriano"
]
}