科技的发展(1) - 中文输入法

来源:互联网 发布:程序员简历工作描述 编辑:程序博客网 时间:2024/06/02 05:00

关于科技的发展系列,我想谈谈的第一个话题便是中文输入法。

回想起二十年前,刚接触计算机时,第一个让人困扰的事便是学习五笔。那时还没有用户痛点的说法,可以熟练使用五笔输入法还是看起来颇为高大上的感觉。不能免俗,记忆里的我还是费了一些劲的,虽然最终也没有能够练就这门“上乘”武功。如今想来也只依稀记得“烟”字的五笔编码是old,还是靠这个编码的巧合。

于是乎,我有一个念头,当下是否还有人在使用五笔输入法?我查阅了一下百度指数:五笔输入法 vs 搜狗输入法。



可以看到五笔输入法已经彻底走下神坛,成为一个非常小众的产品。相信上面的结果,并不出乎大家的意料。

在更多的讨论之前,让我们一起回顾一下中文输入法的大概发展历程:
    1. 第一阶段:五笔输入法解决汉字输入的问题
        虽然如今五笔输入法已经是一个小众的输入法,但它是中文输入法的奠基者
    2. 第二阶段:音码代替需要强背的形码
        典型如智能ABC, 紫光拼音
    3. 第三阶段:智能拼音输入法
        代表当然是搜狗拼音输入法,入门简单,但效率比拼五笔输入法

在这里,我感兴趣的不是为什么五笔输入法被历史所淘汰?而是,回顾整个中文输入法的发展历史,我们能从中得到一些什么启示?
    20年前,你如果处于中文输入法行业,你是否能够提前预测到后来的发展?
    站在今天,你是否能够预测20年后中文输入法是怎样的?

这也是我们去回顾科技发展的历史,希望从中得到的启示。纵观中文输入法的发展,个人以为不同阶段其实对应于不同的设计目标。

类似于,一个算法,或者一个系统的设计,如果设计目标有偏差,那么最终的结果往往就大相径庭。其实,很难有一种通用的设计,能够十全十美,如果存在这样的算法/系统/产品,那么其他的方案都将不会出现。某个特定的设计,总有其优势所在。即便是如今已经小众的五笔输入法,也还存在它独特优势的场景。

举排序算法为例,我们知道快速排序看上去很美,空间复杂度/平均时间复杂度都不可挑剔;而冒泡排序,时间复杂度看上去真是让人不敢恭维。但,我们也知道快速排序在某些场景并不理想,比如接近有序的数组排序。冒泡排序有时非常给力,如规模有限的排序,简单。各有各的美。


回到中文输入法,中文输入法设计目标的演化可以分两个阶段: 
    1. 第一阶段中文输入法设计目标:对于一个汉字来说,如何设计最佳的编码表示?
    2. 第二阶段中文输入法设计目标:对于一段可能输入文字来说,如何设计最佳的编码表示?

在第一阶段,不管是形码输入法,还是音码输入法。设计的主要目标都是确保不同的汉字能使用不同输入字符串系列来表示。

形码输入法,如五笔输入法的目标是在码长方面进行极致优化,使得汉字可以使用尽可能短的编码表示,且尽可能不冲突(两个汉字的编码并不一样)。这个设计目标的优势当然是因为减少冲突带来输入速度很快。缺点也显而易见,那就是这是一套新设计的编码,需要掌握一门新的“编码语言”。在中文输入法刚刚开始发展的时候,这个问题还显得并不重要,因为接触计算机,或者需要大量进行文本输入的用户很少。也正因为这个原因,掌握五笔输入法,犹如掌握一门“高端”的技术。随着计算机的普及和大量计算机用户的出现,上述设计目标的劣势开始凸现。


音码输入法的发展,显然得益于持续增长的计算机用户。一般普通的计算机用户,文本处理的需求不一定非常频繁,为此而掌握一门新的语言是横在广大用户前面的一道门槛。输入法掌握的难易程度开始成为一个重要的指标。如紫光拼音输入法等音码输入法,依然持续优化单个汉字(词汇)的编码表示,只不过基于绝大多数用户天生掌握的中文拼音编码。这样的情况下,开始出现一些双拼,缩写,方言支持,容错(忽略饶舌/鼻音)等都是对设计目标的积极追求。


可以说微软拼音输入法是智能拼音输入法的先驱, 她虽然没有像后来的搜狗输入法那样极致优化。但,据我了解,微软拼音输入法是第一个突破针对汉字/词汇进行编码优化这一设计目标的中文输入法,开启了从局部优化到全局优化的进程。除了优化单个汉字/词汇编码,整体文本输入的优化给中文输入法带来更大的优化空间。中文输入法,再也不是单一汉字的预测,编码和输入上下文更紧密地结合到一起。通过引入更多语言模型方面的知识,即便使用音码,也能极大地优化编码复杂度。后来的搜狗输入法等智能拼音输入法,融合服务器端技术,综合大规模语料学习,个性化词库等,把这一设计目标推向极致。

经过一番事后诸葛亮的分析,如果我们回到20年前,智能拼音输入法为什么不能早点出现呢?当时,若干五笔输入法的厂家还因为专利对诉公堂呢,他们当时如果能够预见未来,也许可以先行一步。潜在的原因,我想应该有以下几个方面:
    1. 中文输入法当时处于发展初期,不能没有学会走路,就期望学会跑步
    2. 计算机普及初期,数字化文本数据都还非常有限,难于支持大规模语言模型训练。
    3. 语言模型技术也还在发展
    4. 早期计算机从硬盘到内存的存储容量都很有限,网络速度很慢,智能拼音输入法依赖的模型等在硬件上也会受限
    5. 刚开始发展中文输入法的时候,的确设计目标会相对受限,是比较稳妥的方式

一个领域的发展,依赖于多个相关领域的突破。智能拼音输入法的今天,也同样得益于硬件发展,语言模型技术,服务器端技术等。虽然随着智能拼音输入法的普及,中文文本输入已经越来越“容易”,但无视当前的“权威”,你是否还有什么痛点?你是否依然觉得你的输入速度落后于你的思考速度?展望未来20年,中文输入法会有什么样的可能呢?
    1. 我们一定需要键盘吗?中文的输入就一定需要通过输入a-z0-9来实现吗? 当前已经开始的手写识别/语音识别相信已经开始新的突破。
    2. 我们需要输入吗? 是否未来的某一天,你的思考可以自动地转化为文字? 通过脑电波?
    3. 物理键盘是否需要? 支持随时随地输入? 虚拟界面? 
    4. 为什么还需要强调中文输入法? 为什么输入法需要区分语言?
    5. ......

你们有什么更好的想法吗? 在你的想象中, 未来的输入法是怎样的? 


欢迎大家关注我的微信公众号 - “水滴杂谈”




1 0
原创粉丝点击