CURD 写多了,曾对以下几个问题思虑不解,见缘回答。
随便谈谈,问题较多,不需要具体结果,只谈大概思维逻辑。
1. 语法检查
常见操作系统、包括某些 IDE 、文本编辑器都对英文语法、甚至中文语法进行检查,可它内部是如何判断一个单词或者短语的语法是否正确?
举几个例子

我不懂英文的逻辑,这里不考虑动词名词的结尾改法,因为我不太相信编辑器是把所有词分类后进行处理的? 这工作量太大了。我觉得应该是别的语义相关的吧?
上述有几个词,其中 "xign" 有的人一眼就能识别出这个不是英语,问他为什么?他却没有原因。 同理,编辑器又是如何判断出来的?
2. 分词
这个常见于一些操作系统自带的软件,包括 Chrome 地址栏、编辑器、记事本等。
当你输入完整的一段内容,比如中文的:“保持对陌生人的友善。用知识去帮助别人。” 若在 Chrome 地址栏输入上述内容,再多次慢慢按 CTRL + BACK SAPCE 那么他会逐个删除所有词组,直至为空。
这个是怎么做到的?是软件内部自己写的还是操作系统自带的分词?类似 ES 的中文分词原理?
如果自己写一个 win 桌面软件,用系统自带的编辑器控件、富文本编辑器控件,其中是不附带这部分功能的,要如何实现?

3. 手机输入法
26 键的就不说了,只说九宫格的输入方式。 比如汉字拼音九宫格的 9426 486 可以组合出很多的可能。 输入法会给你很多的待选项:
- xiao guo
- xiang to
- zhang to
- xian huo/
- xiao guo/gun/hun/huo/gu....
- ...
- zi ao hun ....
感觉就是它根据 声母+韵母 把所有的可能性给你列出来了,这个难做吗?
因为日语九宫格的输入,一个键虽然隐藏着 5 个字母。联想上文的输入,但它并不会把所有可能性给你列出来。
根据键位的方向滑动选择其中一个音,那么可能性和结果就确定为一个了,这个几乎等同于 26 键位。
目前为止没有一个日语输入法可以实现类似汉语拼音的输入法那样,做成那样难吗?自己拿开源项目魔改难吗?
还有个疑问就是,所有 拼音或者假名 对应的汉字都以字典形式在程序里吗?还是有更好的实现方式?


