输入法真是一个伟大的发明,尤其是非英语母语国家的输入法。以中文的拼音输入法为例,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. 文科生也能当工程师?我用了一年半
  2. Web API应用架构设计分析(2)
  3. aurora 初学页面元素
  4. 【华为云技术分享】Scrum Master如何引导团队中的刺头
  5. Linux ioctl, fcntl
  6. ubuntu 常用指令
  7. nodejs中md5加密模块
  8. Java——单例模式:饿汉、懒汉模式
  9. SAP 固定资产折旧 计算方法
  10. JavaScript九宫格数独生成算法
  11. NFormer: robust person re-identification with neighbor transformer
  12. 角色设计竟然有这些小技巧
  13. IOS点击事件延迟300ms踩坑
  14. 芙拉机器人_【诉说实情】芙拉2020新品女士小号斜挎包心形印花怎么样?别花冤枉钱,内幕大揭秘 | 智能扫地机器人评测...
  15. Android 实现简单的悬浮窗按钮(一)
  16. lineNumber: 1; columnNumber: 1; 前言中不允许有内容。(服务器开启时)
  17. db2diag.log 详解
  18. Android--打造流行的无数据空布局页面
  19. ENVI 5.3 + 哨兵2号(Sentinel-2)L2A提取健康水体和不健康水体
  20. TS7016: Could not find a declaration file for module ‘@/api/checkitem.js‘.解决办法

热门文章

  1. HDU5420 : Victor and Proposition
  2. 图片头顶距离顶部百分比怎么修改_「推荐」绘画中的头部怎么画?超详细教你如何正确绘画头部技巧...
  3. 同事辞职,留下了它 -让所有人都惊呆了!
  4. 10月7日 c语言 函数的递归调用 有5个学生坐在一起,问第五个学生多少岁,比第四个大2岁……最后问第一个学生,他说是10岁
  5. 镭神c16激光雷达使用及适配Autoware
  6. Attempting to operate on hdfs namenode as root
  7. Open3d点云对象详解
  8. 如何初始window的注册表,恢复默认设置
  9. jvectormap 中国地图 (包括香港、台湾、澳门)
  10. 域名或者IP被墙怎么解决?117.27.240.*