中文搜 emoji:名字不在 UCD 在 CLDR
按名反查那页搜的是 UCD 的 UnicodeData.txt,名字全是英文:😀 叫 GRINNING FACE,搜 face 找得到,搜「笑脸」一个都搜不出来。中文名不在 UCD 里——UCD 从来只给一个英文名,翻译不归它管。真正管这件事的是
CLDR:它的 annotations 给每个 emoji 一个本地化短名,外加一串检索关键词,zh 一档就是我们要的中文。这页把那份词库接到 Basic_Emoji 与 RGI 序列 两页拆过的 emoji 集合上,做成一个能用中文搜的选择器。
1 · 选择器
留空按官方 group 浏览,输入中文就跨全部九组搜。搜索命中的是 CLDR 的短名与关键词——🚀 的短名是「火箭」,关键词还有「发射 / 太空 / 旅行」,所以搜「太空」也找得到它。肤色一栏改的是渲染出来的形态,不影响搜索:搜索始终在无 skin-tone 的基础形上做,选中后再套修饰符。点任意一格看它的中文名、关键词与
code point 序列,同时复制到剪贴板。
2 · 词库出自哪里
数据是 CLDR 的两份 zh annotations 合并而成,缺一不可:annotations/zh 收基础 emoji,annotationsDerived/zh 收派生出来的肤色、ZWJ 序列与国旗。每条给两样东西——tts 是朗读用的短名,本页取作「中文名」;default 是一串检索关键词,取作可搜词。
| emoji | tts(短名) |
default(关键词) |
|---|---|---|
| 😀 | 嘿嘿 | 笑脸 · 脸 · 高兴 |
| 🚀 | 火箭 | 发射 · 太空 · 旅行 |
| 🇨🇳 | 旗: 中国 |
旗 |
| 👨👩👧 | 家庭: 男人女人女孩 |
亲子 · 女人 · 女孩 · 家庭 · 父母和儿子 · 男人 |
CLDR 的键一律是不带 U+FE0F 的形态(❤ 而非 ❤️),而 emoji-test.txt 给的是 fully-qualified 形态,直接拿去查会大面积落空,生成期要去掉 VS16 再查一次。对上之后,选择器里那 1906 个基础形是全覆盖,一个不缺——缺一个生成脚本就直接报错,不让「搜不到的空格子」流到页面上。
注 · CLDR 与 UCD 是两根独立的版本轴:本页的词库是 CLDR 48,emoji 集合来自 emoji-test.txt,版本跟着本机 Node 的 ICU 走。两者不同步是常态,所以 lab 右下角把它们分开标注,别当成一个版本号看。
3 · 句式查询怎么兜底
关键词是词,不是句子。「难过」直接命中 😞 😿,但整句「我很难过」在词库里一个字符串都对不上。补救不需要模型,逐级放宽即可:先剥掉「我 / 很 / 的 / 一下」这类没有对应 emoji 的虚词,再切成 bigram 逐个搜,还是空就退到单字;每级一有命中就停,命中多个 gram 的排在前面。
| 查询 | 剥虚词后 | 实际搜的词 | 结果 |
|---|---|---|---|
| 我很难过 | 难过 | 难过 | 😞 😿 |
| 庆祝一下 | 庆祝 | 庆祝 | 🥳 🙌 🎂 🍾 🎉 🎊 … |
| 今天好开心 | 开心 | 开心 | 😄 😆 🙂 … |
| 加班 | 加班 | 加 / 班 | 只剩单字命中,基本是噪声 |
只收虚词是有意的:剥掉实词会把查询搜歪,宁可少剥。真正的边界在词库本身——「加班」「想哭」这类词 CLDR 根本没收,逐级放宽也变不出来,那需要一份同义词表或者语义检索,不是这页的范畴。
注 · 这页与按名反查分工明确:那页覆盖全部 40470 个具名 code point,但只能用英文 UCD 名搜;这页只覆盖 1906 个 emoji,换来中文可搜、而且多码点序列(国旗、ZWJ 家庭、肤色)也在库里——它们在 UCD 里根本没有名字。
4 · 参考文献
- Unicode. CLDR — Unicode Common Locale Data Repository. emoji 本地化短名与检索关键词的权威来源,本页词库即取自其
zhannotations。cldr.unicode.org - Unicode CLDR. cldr-json. CLDR 数据的 JSON 分发仓库,本页生成脚本从中钉版拉取
annotations与annotationsDerived两份zh文件。github.com - Unicode. UTS #51: Unicode Emoji.
emoji-test.txt的定义与官方 group 划分出自这份报告,选择器的分组与顺序照它。unicode.org - Unicode. Emoji Annotations. CLDR 里
tts短名与keywords的用途、翻译规范与征集流程。unicode.org