Skip to content

Spaced CJK honorifics parse as name parts (王小明 先生 → given 先生) #307

Description

@derek73

CJK honorifics and degrees follow the name, and when written as their own token nothing recognizes them, so the 2.1 script defaults confidently read them as name parts:

>>> parse("王小明 先生").given     # Mr. Wang
'先生'
>>> parse("김민준 씨").middle      # Mr./Ms. Kim — Korean orthography standardly SPACES 씨
'씨'
>>> parse("田中 太郎 様").middle
'様'

The fix is vocabulary, not mechanism: a curated postnominal set matched by the existing whole-token suffix machinery, following the #269 precedent (Cyrillic titles, Arabic بن). The entries are self-selecting — a Han or hangul entry can only ever match CJK text — so the language-agnostic doctrine holds without any script conditioning:

  • Korean (the strongest case — these are standardly spaced): 씨, 박사, 선생님, 교수님, 군, 양
  • Chinese (spaced in formal/bilingual contexts): 先生, 女士, 小姐, 博士, 教授
  • Japanese (spaced forms in forms/databases): 様, 氏, 先生, 博士
  • Shared-Han entries (博士, 先生, 教授) serve zh and ja at once.

Implementation notes: decide the home list (SUFFIX_NOT_ACRONYMS vs a dedicated postnominal set — these are honorifics, not degrees, so the existing split may want a look); verify non-Latin entries flow through _normalize (no case in CJK, so likely trivial); case rows + differential classification for each script; the suffix must win before the family-first order hands the honorific a role.

Out of scope: the glued forms (王先生, 山田太郎様) — the more common shape, tracked separately, since whole-token matching cannot reach them.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions