Skip to content

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. 键盘信道容量的最大化

从信息论的角度看,键盘是输入系统的信道,其容量决定了输入效率的上限。硬件设计的核心目标就是最大化信道容量。

  • 键位数量:更多的键位意味着更高的信道容量(Clog2M)。这就是为什么全键盘比九宫格效率高,也是为什么很多输入法方案利用标点键、功能键来扩展编码空间。

  • 键位布局:合理的键位布局可以降低平均击键时间,从而提高信道容量。QWERTY键盘、Dvorak键盘、人体工学键盘等,本质上都是在优化键位的时间转移概率,从而提高信道容量。

  • 多通道输入:结合键盘、鼠标、触摸屏、语音等多种输入通道,可以看作是并行信道,理论上总容量是各信道容量之和。多模态输入正是这一思想的体现。

2. 反馈信道的优化

输入系统是一个带反馈的通信系统,反馈信道的质量直接影响整体效率。

  • 视觉反馈:候选窗的位置、大小、颜色、动画等,都会影响反馈信息的传输效率。好的视觉设计应该让用户快速、准确地获取候选信息。

  • 触觉反馈:键盘的键程、手感、震动反馈等,提供了触觉通道的反馈。机械键盘为什么受欢迎?从信息论角度看,它提供了更丰富、更可靠的触觉反馈。

  • 听觉反馈:按键音、错误提示音等,是听觉通道的反馈。适当的听觉反馈可以帮助用户及时发现错误,提高输入效率。

3.4.2 软件层面的信息论优化

1. 解码算法的信息论基础

输入法的解码过程,本质上是一个有噪信道的译码问题。

  • 最大后验概率(MAP)译码:这是拼音输入法最核心的算法。根据贝叶斯公式:
P(X|Y)=P(Y|X)P(X)P(Y)

其中 P(X) 是语言模型提供的先验概率,P(Y|X) 是编码模型(给定汉字,其编码是 Y 的概率)。

  • 动态规划与Viterbi算法:用于求解最优路径,本质上是在所有可能的分词和候选中,找到概率最大的那一个。这与通信中的维特比译码是完全相同的思想。

  • Beam Search:当候选空间太大时,通过剪枝来近似最优解。这相当于在信息传输速率和计算复杂度之间做权衡。

2. 语言模型的信息论度量

语言模型是输入法智能程度的核心,而信息论提供了评估语言模型质量的标准方法。

  • 困惑度(Perplexity)
PPL=2H=21Ni=1Nlog2p(wi|w1...wi1)

困惑度是语言模型最常用的评估指标,它本质上就是信息熵的指数形式。困惑度越低,说明语言模型越准确,能够提供的先验信息越多。

  • 交叉熵:衡量模型分布与真实分布之间的差异。交叉熵越小,模型越好。

  • 互信息:衡量上下文与当前词之间的相关性。互信息越大,说明上下文对预测当前词越有帮助。

3. 词库优化的信息论原则

词库的设计和优化也遵循信息论的原则。

  • 词频排序:按照词频从高到低排列候选,这本质上是一种最优前缀码的思想——高频词用更少的选择操作(排在前面,容易选到),低频词用更多的选择操作。

  • 词库大小的权衡:词库不是越大越好。从率失真理论的角度看,词库越大,覆盖率越高(失真越小),但重码率也越高,解码速度越慢。存在一个最优的词库大小。

  • 用户词典:用户词典本质上是在适应用户的个人信源分布。因为每个用户的使用习惯不同,其信源分布也不同,通用词库不可能对所有人都是最优的。用户词典实现了信源的自适应匹配。

3.4.3 用户层面的信息论优化

1. 学习过程的信息论解释

用户学习输入法的过程,从信息论角度看,是一个逐步建立编码映射、降低不确定性的过程。

  • 学习曲线:随着练习增加,用户的编码错误率降低,击键速度提高,等效于信道的噪声降低、容量提高。

  • 记忆容量:人的记忆容量是有限的,这构成了输入系统的一个重要约束。为什么五笔难学?因为它需要记忆的字根太多,超出了很多人的记忆容量阈值。

  • 认知负荷:输入过程中的认知负荷,可以看作是信息处理的速率限制。人的大脑处理信息的速率是有限的,这是输入系统的另一个瓶颈。

2. 自适应与个性化

从信息论角度看,自适应和个性化的本质是让编码系统更好地匹配用户的个人信源。

  • 调频:根据用户的使用频率调整候选排序,本质上是让编码的概率分布更好地匹配用户的实际使用分布,从而降低平均码长。

  • 自造词:用户添加的自定义词,是对用户个人信源的补充,使得系统能够更准确地编码用户的常用表达。

  • 智能纠错:根据用户的常见错误模式进行纠错,相当于建立了针对该用户的噪声模型,从而提高译码的准确率。

3.4.4 评测中的信息论指标

信息论为输入法的评测提供了一系列科学的指标。

1. 效率类指标

  • 平均码长(键/字)
  • 编码效率(比特/键)
  • 信道利用率(实际速率 / 理论容量)

2. 准确性类指标

  • 重码率
  • 选字率
  • 错误率(CER/WER)
  • 等效信噪比

3. 智能类指标

  • 语言模型困惑度
  • 上下文利用效率
  • 自适应速度

4. 综合指标

  • 有效信息速率:综合考虑速度和准确性
  • 率失真性能:在给定失真下的码长,或给定码长下的失真

这些指标使得输入法的评测从主观感受走向科学量化,也为方案的优化提供了明确的方向。

3.4.5 顶功方案的实现优势

从工程实现的角度看,顶功方案也具有一些信息论层面的优势:

1. 解码的确定性

顶功编码的边界清晰,解码过程是确定的、渐进的。这降低了解码算法的复杂度,也减少了切分歧义带来的错误。

2. 反馈的即时性

顶屏机制提供了即时的反馈,用户可以立即知道当前输入是否正确。这种即时反馈形成了一个闭环的控制系统,能够及时纠正错误,提高整体效率。

3. 渐进式的用户体验

顶功编码支持渐进式学习——用户可以从最简单的声母开始,逐步增加笔画辅助码。这种渐进式的学习曲线,符合人的认知规律,也降低了入门门槛。

4. 易于实现个性化

顶功编码的可变码长特性,天然支持个性化。不同的用户可以根据自己的水平和习惯,选择不同的编码长度,系统不需要做特殊的适配。

这些实现层面的优势,与理论层面的优势相结合,使得顶功方案在信息论的框架下具有独特的价值。