1.4 KiB
1.4 KiB
grapheme-segmentation(子模块规范)
子模块名称
grapheme-segmentation(TC 字符簇分割)
目标描述
在 TC(中文/繁中)场景下,统一“按 grapheme cluster(字符簇)切分”的实现口径,确保:
- 不拆分 surrogate pair(代理对)
- 不拆分 ZWJ 序列(家庭 emoji 等)
- 不拆分 variation selector(VS16 等)
- 不拆分 skin tone modifier(肤色修饰符)
- 不拆分 regional indicator flags(国旗)
- 覆盖组合字符(如
é)
优先使用平台级 segmentation(如 ICU / 系统 API / Intl.Segmenter),无库时提供最低可用兜底。
输入/输出定义
输入
text: string(已完成空白归一化的文本,或原始文本)mode: 'PREFERRED' | 'FALLBACK'
输出
clusters: string[]- 每个元素为一个 grapheme cluster(用于 TC tokens)
meta?: { strategy: 'PLATFORM' | 'INTL_SEGMENTER' | 'FALLBACK'; hadFallback: boolean }
验收标准(可验证)
至少通过以下回归样例(每个样例都必须“单 token 不拆”):
👨👩👧👦🇸🇬👍🏽😮💨é
并满足:
- 确定性:同输入同输出(clusters 顺序与内容完全一致)
- 边界一致:任意换行断点只允许发生在
clusters边界
依赖与关联
- 被依赖:
core-contract(TC token 生成)、breakpoint-candidates - 不依赖其他模块