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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions