提问一个关于自己不了解的编程领域问题?语言相关,输入法,分词,语法检查

2023-01-15 23:26:05 +08:00
 ellermister

CURD 写多了,曾对以下几个问题思虑不解,见缘回答。

随便谈谈,问题较多,不需要具体结果,只谈大概思维逻辑。

1. 语法检查

常见操作系统、包括某些 IDE 、文本编辑器都对英文语法、甚至中文语法进行检查,可它内部是如何判断一个单词或者短语的语法是否正确?

举几个例子

我不懂英文的逻辑,这里不考虑动词名词的结尾改法,因为我不太相信编辑器是把所有词分类后进行处理的? 这工作量太大了。我觉得应该是别的语义相关的吧?

上述有几个词,其中 "xign" 有的人一眼就能识别出这个不是英语,问他为什么?他却没有原因。 同理,编辑器又是如何判断出来的?

2. 分词

这个常见于一些操作系统自带的软件,包括 Chrome 地址栏、编辑器、记事本等。

当你输入完整的一段内容,比如中文的:“保持对陌生人的友善。用知识去帮助别人。” 若在 Chrome 地址栏输入上述内容,再多次慢慢按 CTRL + BACK SAPCE 那么他会逐个删除所有词组,直至为空。

这个是怎么做到的?是软件内部自己写的还是操作系统自带的分词?类似 ES 的中文分词原理?

如果自己写一个 win 桌面软件,用系统自带的编辑器控件、富文本编辑器控件,其中是不附带这部分功能的,要如何实现?

3. 手机输入法

26 键的就不说了,只说九宫格的输入方式。 比如汉字拼音九宫格的 9426 486 可以组合出很多的可能。 输入法会给你很多的待选项:

感觉就是它根据 声母+韵母 把所有的可能性给你列出来了,这个难做吗?

因为日语九宫格的输入,一个键虽然隐藏着 5 个字母。联想上文的输入,但它并不会把所有可能性给你列出来。

根据键位的方向滑动选择其中一个音,那么可能性和结果就确定为一个了,这个几乎等同于 26 键位。

目前为止没有一个日语输入法可以实现类似汉语拼音的输入法那样,做成那样难吗?自己拿开源项目魔改难吗?

还有个疑问就是,所有 拼音或者假名 对应的汉字都以字典形式在程序里吗?还是有更好的实现方式?

1665 次点击
所在节点    程序员
21 条回复
icatme
2023-01-17 12:47:53 +08:00
第一个问题,看你描述应该是拼写检查,word 的检查就需要有相应的字典,而且早期版本显示有顺序。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909153

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX