词库编码规则
键道词库按内容分为 8 类,各类使用不同的编码方式。本页按词库说明编码结构、码长与排序。
总览
| 词库 | 词库文件 | 编码方式 | 码长 | 基础权重 |
|---|---|---|---|---|
| 单字 | keytao.single.dict.yaml | 音码 2 码 + 形码 | 1–6 | 10 |
| 词组 | keytao.phrase.dict.yaml | 音码 + 各字形码首码 | 2–6 | 100 |
| 补充 | keytao.supplement.dict.yaml | 简码(一简次选、二级简码、字根) | 1–6 | 100 |
| 声笔笔 | keytao.css.dict.yaml | 首字声母 + 次字形码 | 2–3 | 100 |
| 声笔笔单字 | keytao.css-single.dict.yaml | 声母 + 本字形码 | 2–4 | 10 |
| 英文 | keytao.english.dict.yaml | 字母按音码取码 | 2–6 | 100 |
| 符号 | keytao.symbol.dict.yaml | ; 引导的助记码 | 1–5 | 10 |
| 链接 | keytao.link.dict.yaml | o 引导的助记码 | 3–4 | 10000 |
通用规则
编码只能由小写字母组成,或以 ; 开头:单独的 ;、单独的 ;;,或 ; 加字母。
码长上限为:单字、词组、补充、声笔笔、声笔笔单字 6 码,符号、链接 12 码,英文 20 码。
音码每个音节取 2 码,即声母键 + 韵母键。声母键按以下规则取码:
| 声母 | 取码规则 |
|---|---|
| sh | 用 E |
| zh | 外侧韵母 an、ang、ei、en、eng、u、un 用 Q;内侧韵母 a、i、ong、ou、ua、uai、uan、uang、ui、uo 用 F |
| ch | 外侧韵母 ai、an、ang、en、eng、u、un 用 J;内侧用 W |
| 零声母 | a、e、o 开头的音节用 X 引导 |
| y、w | 按普通声母处理 |
例如,爱、欧、而的音码分别为 xh、xd、xj。完整键位见键道音码。
形码只用 a、i、o、u、v 五键,来自字根拆分,见键道形码。
飞键允许同一音码使用不同键位,词库通常收录两种写法:
| 飞键 | 可用键位 | 单字 | 音码 |
|---|---|---|---|
| zh 接 ai、ao、e | Q / F | 这 | qe / fe |
| ch 接 ao、e | J / W | 车 | je / we |
| 韵母 uang | M / X | 光 | gm / gx |
详见飞键。
单字
单字全码由 2 码音码与最多 4 码形码组成,最长 6 码。形码不足 4 码时,重复末码一次。
| 单字 | 全码 |
|---|---|
| 缤 | bbaaoo |
| 子 | zkaivv |
| 人 | rnii |
| 可 | kevoii |
单字遵循“出简不让全”:同一读音下通常收录一个简码和一个全码。简码是全码的前缀,取编码链上第一个空位。
| 单字 | 简码 |
|---|---|
| 宾 | bb |
| 滨 | bba |
| 缤 | bbaa |
上面三个字各自另有 6 码全码。
一级简码中,21 个音码键上的一简字收在单字库;5 个形码键上的一简与各键次选收在补充库。
| 所在词库 | 一级简码示例 |
|---|---|
| 单字 | 不 b、的 d、是 e |
| 补充 | 那 a、上 i、啊 o、得 u、有 v |
详见简码。
多音字的每个读音各自编码:
| 单字 | 读音 | 简码 | 全码 |
|---|---|---|---|
| 绿 | lù | ljaa | ljaaav |
| 绿 | lǜ | lla | llaaav |
词组
词组按字数取音码,再用各字的形码首码补位。
| 字数 | 音码 | 形码补位 | 码长 |
|---|---|---|---|
| 二字 | 声韵声韵(4 码) | 字 1、字 2 形码首码 | 4–6 |
| 三字 | 声声声(3 码) | 字 1、字 2、字 3 形码首码 | 3–6 |
| 四字及以上 | 前三字与末字的声母(4 码) | 字 1、字 2 形码首码 | 4–6 |
形码首码指该字第一个字根编码的首字母,双编码字根只取第一码。“声母”指音码中的声母键:sh 为 e,zh 为 q / f,ch 为 j / w,零声母为 x。
| 词组 | 编码示例 |
|---|---|
| 小恙 | xcyp → xcypi → xcypio |
| 是不是 | ebe |
| 时不时 | ebeo |
| 说不上 | ebeov |
| 说不说 | ebeovo |
| 社会主义 | ehqy |
声母飞键适用于每个参与取码的字;韵母 uang 飞键只用于二字词,三字及以上不取韵母。 例如,撞车 fxje / fmje / fxwe / fmwe 均收录。
少量高频二字词另有 3 码的三级简码,例如:北京 bwj、事实 eke,见简码。
补充
补充库收录手工分配的简码,不按词组规则编码。
| 类型 | 规则与示例 |
|---|---|
| 一级简码与次选 | 形码键上的一简与各键次选,例如:那 a、又 a,上 i、打 i |
| 二级简码 | 二字词取两字的声母,共 2 码,例如:表示 be、中国 fg、使用 ey |
| 字根与部件 | 氵、扌等字根与部件的形码,以及部分单字的音形短码 |
声笔笔
声笔笔取首字声母,加次字形码的前 1–2 码。次字形码不足时,重复末码。
| 词组 | 编码 |
|---|---|
| 时间 | eo |
| 我们 | wi |
| 容易 | roi |
| 别人 | bii |
| 唯一 | wvv |
2 码有 105 个,3 码有 525 个,共 630 个,码位全部填满,一码一词,因此也称 630 简码。
以声母键加形码键开头的编码只属于声笔笔。这类编码以形码结尾,按下一个声母键即可顶屏上字。
声笔笔只在主方案(键道6)中加载。
声笔笔单字
声笔笔单字取本字声母,加本字形码的前 1–3 码,共 2–4 码。
| 单字 | 编码 |
|---|---|
| 边 | ba |
| 马 | ma / maa |
一字可有多码,可能来自多音、飞键或取码长短不同。
声笔笔单字只在单字方案(键道6单字)中加载,与声笔笔二选一:两者的 2 码、3 码位置重叠。
英文
纯英文词的每个字母算一个音节。元音字母按韵母键取码,辅音字母不变:
| 元音字母 | 取码 |
|---|---|
| a | s |
| e | e |
| i | k |
| o | l |
| u | j |
不超过 4 个字母时全取,超过 4 个字母取前三末一;与已有编码重复时,再加 1 码区分。
| 英文词 | 编码 |
|---|---|
| iOS | kls |
| GitHub | gktb |
| Photoshop | phlp |
| Office | lffeo |
中英混合词按词组规则取码,每个字母占 1 码。
| 中英混合词 | 编码 |
|---|---|
| B站 | bqf |
| B超 | bjz / bwz |
受顶功限制,以音码键开头的编码实际最长 6 码,且输入过形码键后只能继续输入形码键,见顶功。
符号
; 上屏 ;,;; 上屏 :。; 加 1 个字母为常用标点,按助记或相邻键成对分配。
| 符号 | 编码 | 取码方式 |
|---|---|---|
| 、 | ;d | 顿号助记 |
| ? | ;w | 问号助记 |
| ( | ;e | 相邻键成对 |
| ) | ;r | 相邻键成对 |
| 《 | ;u | 相邻键成对 |
| 》 | ;i | 相邻键成对 |
; 加 2 个字母为扩展符号,例如箭头和邮箱后缀:
| 符号 | 编码 |
|---|---|
| ↑ | ;je |
| @gmail.com | ;ag |
带圈数字用 o 加数字的音码:① oyk、⑩ oek。
;h 为重复上屏,不用作符号编码。完整列表见特殊符号。
链接
链接编码为 o 加 2 个字母,例如 ogw,另有 http。一个编码可对应多个网址,按权重先后排列。
o、oe、or、ox、ob、oej、orq、oxq、obb 为时间、日期、星期、版本指令,不用作链接编码,见 Lua 功能。
排序与重码
同一编码下的候选先按词库顺序排列:单字 → 词组 → 符号 → 补充 → 链接 → 英文 → 声笔笔 → 用户词库。 同一词库内按权重从小到大排列,数值越小越靠前。例如,求 qq 是首选,英文 QQ qq 在后。
各词库的权重不低于其基础权重,新加的同码词条默认排在已有词条之后。
判断一个编码是否空闲时,要查所有词库:任一词库已使用该编码,就视为已占用。
