谷歌浏览器 Chrome 里牛逼的中文分词
用过vim的都知道w和b键的功能。
深入Windows的都知道,通用文本框控件里,可以通过Ctrl+Left, Ctrl+Right来实现类似vim里w和b键的功能
但是大家都知道,这个小技巧对于中文是无效的。
但是今天突然发现谷歌浏览器(chrome/chromium)居然实现了中文词语之间的跳转
举个例子,一个文本框里放一句英文:(这里用了一个input
,RSS阅读器里可能看不到这个HTML元素,请到博客原文围观)
在文本框里,按 left 和 right 键,光标只会一个字一个字的左移或者右移;Ctrl+left和Ctrl+right,光标会一个词一个词的移动。shift的作用是选择,那么Ctrl+Shift+Right就会直接选定一个词语。
再放一段中文:
在文本框里,按 left 和 right 键,光标只会一个字一个字的左移或者右移;Ctrl+left和Ctrl+right,依然只会一个字一个字,而不是一个词一个词的移动。
为什么呢?很明显Windows没有自带中文分词功能。
但是很牛逼的是,谷歌浏览器(chrome/chromium)带了这个功能。上面那个中文例子,假如我的光标在句首,那么Ctrl+Right之后,光标会在 爱因斯坦 的 坦 字后面,说 字前面;如果光标在第一个双引号前面,按下Ctrl+Right之后,光标会跳转到 想像力 的 力 字之后。实现了中文跨词语跳转。这给我们在文本框里做文字编辑提供了非常大的灵活性和方便。
中文分词比英文分词麻烦多了。很明显英文基于词语的跳转就是跳转到下一个空白字符,而中文很麻烦的一点是二义性。举一个谷歌中国黑板报的例子,发展中国家 是分词为 发展 中国 家 好呢,还是 发展中 国家 好?这个纯粹靠上下文和概率算了。
深入研究了一下这个有趣的功能,发现是IBM的ICU库提供的,每个Chrome安装文件夹下面都有一个icudt38.dll,这里面包含了一份中文词语表。基于CC-CEDICT那个版本
不得不佩服Google工程师们做i18n的敬业和牛逼。
# 原文在作者的老博客上,作者的新 Blog: http://blog.est.im/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。