~/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.
196 lines
8.2 KiB
JSON
196 lines
8.2 KiB
JSON
{
|
|
"_why": [
|
|
"Surfaces excluded from renaming because they are REAL-WORLD referents, not the author's",
|
|
"invented proper nouns. The R49 rule is that ambiguous cases are deliberately RENAMED --",
|
|
"renaming is the safe direction and leaving is the leaking one -- so this list is kept to",
|
|
"categories that are unambiguously real: geography, demonyms, brands, foreign common nouns,",
|
|
"and extraction fragments that are not words at all.",
|
|
"",
|
|
"⚠ SENSITIVITY FLOOR, stated because it is part of the result: the entity map holds 199",
|
|
"surfaces and the top 170 by count were classified, with every ambiguous one READ IN",
|
|
"CONTEXT before being placed. The bottom 29 were NOT individually read, so a rare",
|
|
"real-world referent may be renamed. That is the safe direction and an accepted cost.",
|
|
"",
|
|
"⚠ McCarthy is a hard case for the same reason Hemingway was and Bronte was not: the Border",
|
|
"Trilogy is half set in real Mexico, so real towns, real states and real Spanish sit beside",
|
|
"invented characters on every page. The 1,411 non-ASCII letters measured on this corpus are",
|
|
"the same fact from the other side."
|
|
],
|
|
"_caught_by_reading_in_context": {
|
|
"Socorro": "NOT the New Mexico town. She is the COOK at Mac's ranch in Cities of the Plain -- 'Socorro came and took the plate of biscuits'. A character; left renameable.",
|
|
"Webster": "NOT the dictionary or the city. 'the outrider Webster', 'A Tennessean named Webster' -- one of Glanton's men. Character.",
|
|
"Jackson": "'two men named Jackson, one black, one white, both forenamed John'. Characters, not the city or the president.",
|
|
"Harlan": "'a man named Harlan from Texas'. Character, not the Kentucky county.",
|
|
"Franklin": "KEPT RENAMEABLE. 'I'm here to see Mr Franklin' -- a lawyer in All the Pretty Horses. ⚠ He was in the geography list on the first pass, because Franklin is also the old name for El Paso, and audit_stoplist.py caught the contradiction against this very note.",
|
|
"Lamar": "'called Lamar on the mobile ... he can have his unit back' -- a lawman in No Country. Character, not the street or the Texas county.",
|
|
"Griffin": "STOPLISTED. 'Fort Griffin', 'we pulled out from Griffin for a last hunt' -- the real Texas buffalo-hunting town.",
|
|
"Santa": "STOPLISTED. Never standalone: the fragment of 'Santa Rita del Cobre' and 'Santa Cruz'.",
|
|
"Varas": "STOPLISTED. The fragment of 'Las Varas', a real Chihuahua town on the Madera road.",
|
|
"Eagle": "STOPLISTED. 'Eagle Pass' (real Texas border town) and 'the Eagle Cafe'.",
|
|
"Avenue": "STOPLISTED. A street-name component -- 'Juárez Avenue'. A common noun, not a name.",
|
|
"Niño": "KEPT RENAMEABLE, deliberately. A Spanish common noun, but here it is the NAME OF A HORSE ('That Niño horse'). The author's invention even though the word is not -- exactly parallel to Hemingway's `Inglés`.",
|
|
"Keno": "KEPT RENAMEABLE for the same reason -- 'their horse Keno'. A gambling game's name used as a horse's.",
|
|
"Redbo": "KEPT RENAMEABLE -- John Grady's horse in All the Pretty Horses.",
|
|
"Mangas": "KEPT RENAMEABLE. Based on the real Apache chief Mangas Coloradas, but presented as a character who speaks ('The man's name was Mangas and he was cordial'). Ambiguous, so it takes the safe direction.",
|
|
"Travis": "KEPT RENAMEABLE. Dual use -- real 'Travis Park' in San Antonio AND a character who speaks ('said Travis'). Ambiguous, so it is renamed.",
|
|
"Venada": "KEPT RENAMEABLE. 'La Venada', a Juárez cantina. McCarthy's Juárez venues are largely invented and this cannot be settled from the text, so it takes the safe direction.",
|
|
"Jc": "KEPT RENAMEABLE. Not a fragment -- 'JC pulled up in front of Maud's' is a character in Cities of the Plain who is named by his initials.",
|
|
"Ed": "KEPT RENAMEABLE. Ed Tom Bell, the sheriff and first-person narrator of No Country for Old Men.",
|
|
"E / H / T / K": "STOPLISTED as fragments. E, H and T were the small-caps drop-cap defect repaired in D1; K is the fragment left by the weapon `H&K`. A bare initial is never a name -- the `G` class from the Hemingway build, where `G` was about to be renamed to a surname 248 times.",
|
|
"fragments": "Only the four letters MEASURED as entities on this corpus. A blanket A-Z was the first pass and it stoplisted `I` and `A`, which are ordinary English words -- `Sir I dont think I can do that` then tripped the honorific audit. Stoplist what the entity map actually produced, not the alphabet.",
|
|
"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.",
|
|
"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",
|
|
"Animas",
|
|
"Antonio",
|
|
"Ardmore",
|
|
"Arizona",
|
|
"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",
|
|
"Saltillo",
|
|
"San",
|
|
"Sanderson",
|
|
"Santa",
|
|
"Sierra",
|
|
"Sonora",
|
|
"States",
|
|
"Tennessee",
|
|
"Terrell",
|
|
"Texas",
|
|
"Torreón",
|
|
"Ures",
|
|
"Uvalde",
|
|
"Varas",
|
|
"Vietnam",
|
|
"Yuma"
|
|
],
|
|
"demonyms_and_peoples": [
|
|
"American",
|
|
"Americans",
|
|
"Apache",
|
|
"Apaches",
|
|
"Arabian",
|
|
"Chiricahuas",
|
|
"Comanche",
|
|
"Comanches",
|
|
"Delaware",
|
|
"Delawares",
|
|
"Gileno",
|
|
"Gilenos",
|
|
"Mennonite",
|
|
"Mexican",
|
|
"Mexicans",
|
|
"Mormon",
|
|
"Tarahumara",
|
|
"Vandiemenlander",
|
|
"Yaqui",
|
|
"Yaquis",
|
|
"Yumas"
|
|
],
|
|
"brands_and_products": [
|
|
"Blanca",
|
|
"Bronco",
|
|
"Carta",
|
|
"Colts",
|
|
"Ford",
|
|
"Hashknife",
|
|
"Hashknives",
|
|
"Ramcharger",
|
|
"Tecate",
|
|
"Winchester"
|
|
],
|
|
"foreign_and_common_nouns": [
|
|
"Adios",
|
|
"Bueno",
|
|
"Claro",
|
|
"Como",
|
|
"Cuates",
|
|
"Dios",
|
|
"Gracias",
|
|
"Hacendado",
|
|
"Mam",
|
|
"Nada",
|
|
"Nosir",
|
|
"Pues",
|
|
"Senor",
|
|
"Senora",
|
|
"Vamos",
|
|
"Yessir"
|
|
],
|
|
"fragments": [
|
|
"E",
|
|
"H",
|
|
"T",
|
|
"K"
|
|
],
|
|
"_audit_allow": {
|
|
"_note": "Surfaces audit_entity_map.py flags as article-preceded that are nonetheless genuine names, READ and cleared. Pass as --allow when re-running the audit. They are article-preceded because English puts a surname attributively behind 'the': 'the Bailey horse', 'the Muñoz woman', 'the Borginnis woman'. That is the detector's known blind spot, not an error.",
|
|
"surfaces": [
|
|
"Bailey",
|
|
"Muñoz",
|
|
"Borginnis",
|
|
"Venada",
|
|
"Moderno"
|
|
]
|
|
},
|
|
"real_people": [
|
|
"Francisco",
|
|
"Hearst",
|
|
"Huerta",
|
|
"Madero",
|
|
"Trias",
|
|
"Victoriano"
|
|
]
|
|
}
|