输入法真是一个伟大的发明,尤其是非英语母语国家的输入法。以中文的拼音输入法为例,26 个英文字母组成了声母和韵母,而这些元素足够表示所有的汉字(当然,在编码允许的前提下)。

全拼:这是拼音输入法里最直白和古老的输入方式,虽然古老,但是极其有效。只要使用者学习过拼音,然后把字的拼写和键盘的字母对应即可。不过,全拼还有一些小插曲:汉语拼音里的「ü」在字母里似乎没有对应,聪明的程序员用同样在拼音里没有的「v」代替了;汉语拼音里还有叫做「整体认读音节」的东西,如「ian」,虽然它也是韵母,但和某些声母搭配会可能表示完全不同的两个字。打个比方,「西安」和「线」的拼音都是「xian」。然后,人们又发明了分词符,表示两个字的拼音用「'」分隔即可。西安——xi'an,线——xian。Bravo!

全拼虽然解决了人们输入汉字的问题,但擅于偷懒的程序员试图构造一种能够用更少的键代表更多的字母的方案。即,在原有的全拼编码基础上,对键盘上的字母进行二次编码。

简拼编码:在打字的过程中,如果只需要输入声母部分,输入法就能联想得到用户想要的结果。比如:输入「zhrmghg」可以表示「中华人民共和国」;「pysrf」可以表示「拼音输入法」;更有甚者,用户只需要输入「zhrm」,候选词中就已经有「中华人民共和国」。这种方案的基本思路是创建词库,也就是,把用户经常输入的字母和汉字单词进行映射。上面的「zhrmghg」和「中华人民共和国」就是一种映射关系。这种映射关系丰富到一定程度,就形成了类似字典的词库。现在主流输入法的智能联想、云联想原理相同。

双拼编码:虽然简拼允许人们输入更少的字母,但这种偷懒也需要付出代价,某些不常用的词语可能无法轻松地输出。如,地名,专业名词等。程序员决定回到原点,从全拼中寻找答案。既然拼音=声母+韵母,那为什么不用一个字母表示声母,一个字母表示韵母呢?双拼正是基于此原则,把汉语拼音里的声母和韵母均用一个字母表示。而且,这种编码方式,还解决了全拼中分词的困扰。以小鹤双拼为例,如果「xian」表示「西安」,输入「xian」即可,若表示「线」,则输入「xm」。一个汉字,两个字母,简单。

模式编码:现在主流输入法都引入一种叫做「模式」的功能,如「U 模式」,「I 模式」。简而言之,就是把全拼中不可能作为词的声母部分的字母,映射到一个功能键上。前面说的「U 模式」可能就是用来拆字的。按下 U 键 ,然后把不认识的字拆成认识的多个字拼写出来,输入法会匹配出该字。拿「垚」举例,我可能不认识这个字,但我认识「土」。我只需输入「u tu'tu'tu」,输入法可能就匹配出「垚(yáo)」来。模式作为输入法的拓展虽然很好用,但是在双拼编码里,又引入了不同的小插曲。「u」在小鹤双拼里表示声母「sh」,和「U 模式」的按键冲突了。我们看下万能的程序员是如何解决这个问题的——他们用大写的 U 表示「U 模式」,用小写的 u 表示双拼里的声母,再次 Bravo!

这篇小小的文章,无意表明拼音输入法和五笔输入法哪个更强大的立场,只是想说明程序员在创造拼音输入法那些精巧的设计。这些精妙的设计,可能正体现他们对已知事物强大的抽象能力,共勉。

程序员改变世界:拼音输入法相关推荐

  1. 辍学程序员改变世界,这位长得像马云的90后要击败Facebook的扎克伯格了…

    全世界只有3.14 % 的人关注了 数据与算法之美 众所周知,Facebook的创始人扎克伯格(Mark Zuckerberg),是史上最年轻的世界亿万富豪. 小扎作为社交网络时代的的缔造者,成为了当 ...

  2. 程序员改变世界,从未如此直观

    万万没想到,包博士的代码让一个六岁的小学生哇哇大哭. 这个让小学生流眼泪的"科学家代表"有非常漂亮的履历:清华大学毕业.博士曾在斯坦福就读,他现在是VIPKID的首席AI科学家,带 ...

  3. 辍学程序员改变世界,这个长的像马云的90后少年真要击败扎克伯格

    扎克伯格(Mark Zuckerberg)说来大家肯定都不陌生,Facebook 创始人,历史上最年轻的世界亿万富豪,社交网络时代的的缔造者. 然而今天小本聪介绍的这个少年天才,未来要比小扎更厉害,1 ...

  4. 辍学程序员改变世界,这个长的像马云的90后少年真要击败扎克伯格...

    硅谷Live / 实地探访 / 热点探秘 / 深度探讨 扎克伯格(Mark Zuckerberg)说来大家肯定都不陌生,Facebook 创始人,历史上最年轻的世界亿万富豪,社交网络时代的的缔造者. ...

  5. 快手上市 CEO写下70万行代码 致敬程序员改变世界

    今天,快手正式在香港上市,开盘涨194%,报338港元/股,发行价为115港元/股.快手总市值一度高达1.39万亿港元. 快手联合创始人.董事长兼CEO宿华在上市致辞中提到,快手最在意的始终是人,是对 ...

  6. 【译】数据显示:中国的程序员是世界上最牛的程序员?

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面:一直觉得中国的程序员想法多,肯钻研肯学习,但却不知道原来中国的程序员是世界上最牛的程序员.说来可能不信,但根据Hac ...

  7. OSChina 周日乱弹 ——程序员的世界,医疗都与众不同

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @温家成 :分享以冬的单曲<脑海浮游的你(原曲:大爱)>继我 ...

  8. 如果没有程序员,世界会变成什么样?

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨轩辕之风O 来源丨编程技术宇宙(ID:xuan ...

  9. 用锤子发射导弹,程序员的世界你不懂

    来源 / 码农的荒岛求生/ 世界上有三种人,男人.女人.以及程序员. 程序员,时常处于食物链的最低端,动不动就被撕. "我是一只小小小小鸟",弱小又无助-- 程序员只写代码? 你以 ...

最新文章

  1. JQuery 基础 || 目前 jQuery 有三个大版本||JQuery快速入门
  2. JavaScript---事件详解
  3. Python爬虫入门教程 1-100 CentOS环境安装
  4. 四十七、SQL 语法总结
  5. 如何成为云原生时代的卓越架构师?
  6. 矩阵中的最长递增路径
  7. 外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6
  8. java bitset_Java BitSet nextSetBit()方法与示例
  9. CLIP再创辉煌!西南交大MSRA提出CLIP4Clip,进行端到端的视频文本检索!
  10. 10恢复出厂设置_笔记本电脑怎么恢复出厂设置
  11. 第 25 章 策略模式
  12. Android学习之多触点滑动
  13. 关于用POI和EXCEL交互的问题
  14. python语言字符串逆转顺序_Python字符串逐字符或逐词反转方法
  15. C语言自学路之验证码
  16. html悬浮音乐符号,简谱中常用的音乐记号
  17. xdg在Linux中的用法,Linux – XDG (X Desktop Group)
  18. Android Content开头的Uri和文件绝对路径互相转换
  19. 【RC延迟电路与快速泄放电路】 multisim 14.0仿真 RC延迟电路与快速泄放电路
  20. STM32H750(或743)核心电源Vcore使用外部开关电源SMPS

热门文章

  1. 程序员春节对联,你喜欢哪一副?
  2. 基于FastestDet目标检测模型实现火点烟雾检测
  3. 使用Vue.js搭建简单的表格页面
  4. 德国linux桌面版,来自德国的KNOPPIX,基于Debian的Linux发行
  5. CCNA1:网路基础、TCP/IP、OSI、IPv4、子网划分、数据封装
  6. ubuntu下安装摄像头
  7. 一个悲伤的故事 小蚂蚁的故事
  8. .SCI-HUB搜索引擎(强大无比,只要有网就能下载你要的文献,无需购买数据库)http://sci-hub.tw/
  9. C++实战手把手教您用ffmpeg和QT开发播放器--01音视频基础知识
  10. Webpack详细打包步骤