Skip to content

Commit 3171267

Browse files
derek73claude
andcommitted
Pin the 殿 exclusion, the one nothing held (#308)
Every other glued-set exclusion has a case row holding it -- 氏 by zh_glued_shi_stays, 博士 by ja_glued_degree_stays, 君 by zh_glued_jun_stays, 양 by ko_suffix_matching_is_whole_token -- while 殿, which has the longest argument behind it, had none: adding it back to GLUED_HONORIFICS passed the entire suite. The discriminating input is the lone surname 鵜殿 (Udono), which a peeled 殿 would report as family 鵜 plus suffix 殿; a two-token 真殿 太郎 puts the site scan on 太郎 and never consults the exclusion. Verified by adding 殿 back: the new row and its facade twin are the only tests that then fail. Classified fix(#271) like its neighbours -- 1.4.0 gives first 鵜殿 and no last, so it is the CJK order flip that moves the field. corpus_cjk.jsonl regenerated; differential stays 0 unexplained. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 6ae3351 commit 3171267

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

tests/v2/cases.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,6 +877,21 @@ def __post_init__(self) -> None:
877877
classification="fix(#271)",
878878
notes="likewise: 王氏 is a historical name form ('the Wang "
879879
"woman'). The spaced 田中氏 keeps its entry"),
880+
Case("ja_glued_dono_stays", "鵜殿",
881+
{"family": "鵜殿"},
882+
classification="fix(#271)",
883+
notes="the exclusion with the longest argument behind it and, "
884+
"until this row, the only one nothing held: adding 殿 "
885+
"back to GLUED_HONORIFICS passed the whole suite. 鵜殿 "
886+
"(Udono) is a real surname, one of roughly ninety "
887+
"Japanese surnames ending in 殿 (真殿, 大殿, ...), and a "
888+
"peeled 殿 would give family 鵜 with 殿 in suffix. It "
889+
"has to be the BARE surname: in a two-token 真殿 太郎 "
890+
"the site scan lands on 太郎 and the exclusion is never "
891+
"consulted, so only a lone surname discriminates. "
892+
"Classified to #271 like its neighbours, not parity: "
893+
"1.4 gave first 鵜殿 and no last, and it is the CJK "
894+
"order flip that makes the one token a family name"),
880895
Case("ja_dono_spaced", "田中 殿",
881896
{"family": "田中", "suffix": "殿"},
882897
classification="fix(#308)",

tools/differential/corpus_cjk.jsonl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"高橋みなみ"
4949
"高橋・一郎"
5050
"高橋一郎"
51+
"鵜殿"
5152
"김 민준"
5253
"김민준"
5354
"김민준 님"

0 commit comments

Comments
 (0)