3 实现
3.1 硬件
○ 人体:脑、手、眼 ○ 界面:键盘、屏幕 ○ 机器:智能设备的主机
3.2 软件
操作系统: Windows、macOS、Linux、Android、iOS
系统输入事件捕获、按键扫描、消息分发
系统底层字符集、编码支持、权限与进程调度
系统自带输入框架、全局文本焦点管理
系统 IME 接口、输入法注册 / 挂接 API
按键事件回调、候选窗接口、文本上屏接口
跨程序输入通信、进程间消息协议
各系统统一输入法开发规范,隔离系统
输入软件:一体式(搜狗输入法)与组合式(Rime, 前后端分离)
后端引擎:librime
输入方案:内在的差异
词典
系统词典
用户词典
前端界面:weasel、trime、squirrel、ibus 等
- 主题或皮肤:外在的差异,与反馈关系密切
辅助设计软件,如 Chai
评测软件
- 总体测评:如科学形码测评系统
- 模拟打字:如极速赛码器
练习软件:如金山打字通、极速跟打器、长流跟打器、排行榜
3.3 用户
终端用户:记忆与操作
- 如何评测和选用输入方案
- 练习软件的使用
方案设计:辅助设计软件的使用
配方
词典
主题设计:所见即所得的设计
主题
配色
软件扩展
前端程序
- lua 脚本
后端程序
C++插件
lua 脚本
3.4 信息论视角下的实现优化
信息论不仅为输入法提供了理论基础,也为工程实现提供了重要的指导原则。从信息论的角度看,输入法的实现过程本质上是一个信息传输与处理的系统工程,各个环节的优化都可以用信息论的概念来分析和指导。
3.4.1 硬件层面的信息论优化
1. 键盘信道容量的最大化
从信息论的角度看,键盘是输入系统的信道,其容量决定了输入效率的上限。硬件设计的核心目标就是最大化信道容量。
键位数量:更多的键位意味着更高的信道容量(
)。这就是为什么全键盘比九宫格效率高,也是为什么很多输入法方案利用标点键、功能键来扩展编码空间。 键位布局:合理的键位布局可以降低平均击键时间,从而提高信道容量。QWERTY键盘、Dvorak键盘、人体工学键盘等,本质上都是在优化键位的时间转移概率,从而提高信道容量。
多通道输入:结合键盘、鼠标、触摸屏、语音等多种输入通道,可以看作是并行信道,理论上总容量是各信道容量之和。多模态输入正是这一思想的体现。
2. 反馈信道的优化
输入系统是一个带反馈的通信系统,反馈信道的质量直接影响整体效率。
视觉反馈:候选窗的位置、大小、颜色、动画等,都会影响反馈信息的传输效率。好的视觉设计应该让用户快速、准确地获取候选信息。
触觉反馈:键盘的键程、手感、震动反馈等,提供了触觉通道的反馈。机械键盘为什么受欢迎?从信息论角度看,它提供了更丰富、更可靠的触觉反馈。
听觉反馈:按键音、错误提示音等,是听觉通道的反馈。适当的听觉反馈可以帮助用户及时发现错误,提高输入效率。
3.4.2 软件层面的信息论优化
1. 解码算法的信息论基础
输入法的解码过程,本质上是一个有噪信道的译码问题。
- 最大后验概率(MAP)译码:这是拼音输入法最核心的算法。根据贝叶斯公式:
其中 P(X) 是语言模型提供的先验概率,P(Y|X) 是编码模型(给定汉字,其编码是 Y 的概率)。
动态规划与Viterbi算法:用于求解最优路径,本质上是在所有可能的分词和候选中,找到概率最大的那一个。这与通信中的维特比译码是完全相同的思想。
Beam Search:当候选空间太大时,通过剪枝来近似最优解。这相当于在信息传输速率和计算复杂度之间做权衡。
2. 语言模型的信息论度量
语言模型是输入法智能程度的核心,而信息论提供了评估语言模型质量的标准方法。
- 困惑度(Perplexity):
困惑度是语言模型最常用的评估指标,它本质上就是信息熵的指数形式。困惑度越低,说明语言模型越准确,能够提供的先验信息越多。
交叉熵:衡量模型分布与真实分布之间的差异。交叉熵越小,模型越好。
互信息:衡量上下文与当前词之间的相关性。互信息越大,说明上下文对预测当前词越有帮助。
3. 词库优化的信息论原则
词库的设计和优化也遵循信息论的原则。
词频排序:按照词频从高到低排列候选,这本质上是一种最优前缀码的思想——高频词用更少的选择操作(排在前面,容易选到),低频词用更多的选择操作。
词库大小的权衡:词库不是越大越好。从率失真理论的角度看,词库越大,覆盖率越高(失真越小),但重码率也越高,解码速度越慢。存在一个最优的词库大小。
用户词典:用户词典本质上是在适应用户的个人信源分布。因为每个用户的使用习惯不同,其信源分布也不同,通用词库不可能对所有人都是最优的。用户词典实现了信源的自适应匹配。
3.4.3 用户层面的信息论优化
1. 学习过程的信息论解释
用户学习输入法的过程,从信息论角度看,是一个逐步建立编码映射、降低不确定性的过程。
学习曲线:随着练习增加,用户的编码错误率降低,击键速度提高,等效于信道的噪声降低、容量提高。
记忆容量:人的记忆容量是有限的,这构成了输入系统的一个重要约束。为什么五笔难学?因为它需要记忆的字根太多,超出了很多人的记忆容量阈值。
认知负荷:输入过程中的认知负荷,可以看作是信息处理的速率限制。人的大脑处理信息的速率是有限的,这是输入系统的另一个瓶颈。
2. 自适应与个性化
从信息论角度看,自适应和个性化的本质是让编码系统更好地匹配用户的个人信源。
调频:根据用户的使用频率调整候选排序,本质上是让编码的概率分布更好地匹配用户的实际使用分布,从而降低平均码长。
自造词:用户添加的自定义词,是对用户个人信源的补充,使得系统能够更准确地编码用户的常用表达。
智能纠错:根据用户的常见错误模式进行纠错,相当于建立了针对该用户的噪声模型,从而提高译码的准确率。
3.4.4 评测中的信息论指标
信息论为输入法的评测提供了一系列科学的指标。
1. 效率类指标
- 平均码长(键/字)
- 编码效率(比特/键)
- 信道利用率(实际速率 / 理论容量)
2. 准确性类指标
- 重码率
- 选字率
- 错误率(CER/WER)
- 等效信噪比
3. 智能类指标
- 语言模型困惑度
- 上下文利用效率
- 自适应速度
4. 综合指标
- 有效信息速率:综合考虑速度和准确性
- 率失真性能:在给定失真下的码长,或给定码长下的失真
这些指标使得输入法的评测从主观感受走向科学量化,也为方案的优化提供了明确的方向。
3.4.5 顶功方案的实现优势
从工程实现的角度看,顶功方案也具有一些信息论层面的优势:
1. 解码的确定性
顶功编码的边界清晰,解码过程是确定的、渐进的。这降低了解码算法的复杂度,也减少了切分歧义带来的错误。
2. 反馈的即时性
顶屏机制提供了即时的反馈,用户可以立即知道当前输入是否正确。这种即时反馈形成了一个闭环的控制系统,能够及时纠正错误,提高整体效率。
3. 渐进式的用户体验
顶功编码支持渐进式学习——用户可以从最简单的声母开始,逐步增加笔画辅助码。这种渐进式的学习曲线,符合人的认知规律,也降低了入门门槛。
4. 易于实现个性化
顶功编码的可变码长特性,天然支持个性化。不同的用户可以根据自己的水平和习惯,选择不同的编码长度,系统不需要做特殊的适配。
这些实现层面的优势,与理论层面的优势相结合,使得顶功方案在信息论的框架下具有独特的价值。