在 QWERTY 键盘上输入中文的探索如何创造了自动完成功能

在 QWERTY 键盘上输入中文的探索如何创造了自动完成功能

自动完成功能在英语世界被重新发现的几十年前就被发明用于将汉字输入计算机。

一位年轻的中国男子坐在他的 QWERTY 键盘前,快速敲出一串神秘的字母和数字。

这是密码吗?儿戏?混乱?不,这是中文。

至少,这是中文输入的起点。这 44 个按键标志着“输入”或“shuru”过程的第一步:使用 QWERTY 键盘或触控板将汉字显示在电脑屏幕或其他数字设备上。在所有计算和数字媒体中,中文文本输入都依赖于称为“输入法编辑器”的软件程序——通常简称为“IME”或“输入法”(shurufa)。IME 是一种“中间件”,在用户设备的硬件和应用程序的软件之间运行。无论是在 Microsoft Word 中撰写中文文档、搜索网页、发送短信,IME 都在背后默默工作,拦截用户的所有击键,并试图找出用户想要输入的汉字。简而言之,输入就是 ymiw2klt4pwyy … 变成一串中文字符的过程。

IME 是永不停歇的。从按下按键或滑动笔划的那一刻起,它们就开始了一个动态的、迭代的过程,获取用户输入的数据并在计算机内存中搜索可能的汉字匹配项。目前最流行的 IME 基于拼音输入法,使用拉丁字母描述汉字的发音。中国大陆的用户采用官方的汉语拼音系统。

这个年轻人名叫黄振宇(笔名于实)。他是当天大约 60 名参赛选手之一,每人都系着鲜红色的肩带——就像老式的彩带游行或选美比赛一样。大厅前的海报上印着“爱汉字”的金色大字。参赛选手的任务是尽可能快速准确地抄写即将卸任的中国国家主席胡锦涛的讲话。讲话开头是“高举中国特色社会主义伟大旗帜为夺取全面建设小康社会新胜利而奋斗”。然而,黄的 QWERTY 键盘无法直接输入这些字符,所以他输入了类似胡言乱语的字母和数字串:ymiw2klt4pwyy1wdy6……

凭借这四十多个击键,黄不仅赢得了 2013 年全国汉字打字大赛的冠军,还创下了世界上有史以来最快的打字速度之一。

ymiw2klt4pwyy1wdy6 和 高举中国特色社会主义 不一样。黄在 QWERTY 键盘上按下的键(我们称之为他的“主要记录稿”)与最终出现在他计算机屏幕上的符号(即胡锦涛讲话的“次要记录稿”)完全不同。对于世界上十多亿中文计算机用户来说,情况都是如此。在中文计算中,输入的内容永远不会是最终得到的内容。

对于习惯使用英语处理文字和计算机的读者来说,这可能会感到惊讶。例如,如果你将你现在正在阅读的段落与一个键盘记录进行比较,该记录显示了我按下的按钮,那么这个练习将毫无意义(说得客气一点)。它会读到“对于习惯英语的读者……”(原谅任何拼写错误或编辑)。在英语打字和计算机输入中,打字员的主要和次要记录原则上是相同的。按键上的符号和屏幕上的符号是相同的。

但中文计算则不然。输入中文时,人们在 QWERTY 键盘上看到的符号总是与最终出现在显示器或纸上的符号不同。每一位中文计算机和新媒体用户——无论他们是飞快还是慢——都以与黄振宇相同的方式使用他们的设备,不断地进行标准-候选-确认的反复过程。请注意,不是某些讲中文的用户,而是所有的用户。这是中文计算的第一个也是最基本的特征:中文人机交互要求用户始终以代码操作。如果黄振宇对复杂字母数字代码的掌握还不够令人印象深刻,那么请看他惊人的速度。他用大约五秒钟时间抄录了胡锦涛讲话的前 31 个汉字,速度约为每分钟 372 个汉字。在长达数千字符的 20 分钟比赛结束时,他以每分钟 221.9 个汉字的速度冲过终点线。

也就是每秒 3.7 个汉字。

在英语中,黄前五秒的速度相当于每分钟 375 个英文单词,他的整体比赛速度轻松超过 200 WPM——这是英语世界中无人能及的速度。1985 年,芭芭拉·布莱克本创造了一项吉尼斯世界纪录——每分钟 170 个英文单词(在打字机上)。速度狂人肖恩·沃罗纳后来以 174 WPM 的成绩(在计算机键盘上)超越了布莱克本。尽管这些里程碑令人印象深刻,但事实是:如果黄文的表现发生在英语世界中,他的名字将被载入吉尼斯世界纪录。

黄的速度还具有特殊的历史意义。

对于生活在 1850 年至 1950 年的人来说,用机械手段以每分钟超过 200 个字符的速度打出中文几乎是不可想象的。纵观中国电报的历史,操作员每分钟最多只能打出几十个字符。在机械中文打字的鼎盛时期,从 1920 年代到 1970 年代,有记录的最快速度略低于每分钟 80 个字符(大多数打字员的速度要慢得多)。也就是说,当谈到现代信息技术时,中文曾是世界上最慢的书写系统之一。

到底发生了什么变化?长期以来被认为繁琐且复杂的文字,怎么会突然与世界其他地区的计算机打字速度相媲美,甚至超过它们?即使我们承认中文计算机用户能够以某种方式进行“实时”编码,中文 IME 难道不应该导致中文文本处理的整体速度低于英语吗?毕竟,中文计算机用户在多步骤过程中必须克服更多的障碍:IME 必须拦截用户的击键,在内存中搜索匹配项,显示潜在候选,并等待用户确认。而英语计算机用户只需按下希望在屏幕上显示的键即可。还有什么比“Q 等于 Q”、“W 等于 W”等“即时性”更简单呢?

为解开这个谜团,我们来看第一台中文计算机:Sinotype,也称为表意文字排字机。这台机器由麻省理工学院教授 Samuel Hawks Caldwell 和美国平面艺术研究基金会于 1959 年推出,采用 QWERTY 键盘,操作员用它来输入的不是汉字的音标,而是组成汉字的笔画。不过,Sinotype 的目的不是在页面上“构建”汉字,就像用户通过连续添加字母来构建英文单词一样。相反,每个笔画“拼写”充当一个电子地址,Sinotype 的逻辑电路用它来从内存中检索汉字。换句话说,历史上第一台中文计算机的前提是采用与黄振宇 2013 年获奖作品中相同的“附加步骤”。

考德威尔发现了所有这些额外步骤的意外好处——这些好处在当时的英语人机交互中是闻所未闻的。他发现,Sinotype 在内存中查找汉字所需的击键次数远少于通过传统方式输入汉字所需的击键次数。打个比方,“拼写”一个九个字母的单词,如“crocodile”,比从内存中检索同一个单词花费的时间要多得多(“crocod”足以让计算机做出明确的匹配,因为没有其他拼写相似或相同的单词)。考德威尔称他的发现为“最小拼写”,使其成为有史以来第一台中文计算机的核心部分。

如今,我们用另一个名字称呼这项技术:“自动完成”,一种通过额外中介层使文本输入速度更快的人机交互策略。自动完成技术在英语世界重新发现的几十年前,首先在中文计算机领域发明。