🌟Spell check的实现方式

tags
browser
dev
frontend
type
Post
summary
status
Published
slug
how-english-spell-check-implemented
date
Apr 11, 2024
在电脑上以英文,或其他拉丁字母语言书写文章和信件时,各种App都提供了快捷的拼写检查,甚至在IDE中写代码也不例外。
对于中文母语的人群来讲,在大多数情况下我们很容易认出一个“错字”,即识别一个汉字是否为臆造的能力——哪怕一个字写错一两个笔画,也能认出实际想要表达的是哪个字。一个例子是,小孩子写“自己”这个词时,经常会将““字出头写成“”,但这并不妨碍我们认出“自己”这个词并纠正它。
英文母语者有相似的能力,他们会根据拼读规则将一长串字母拆分出数个单元,根据单元发音拼读识记单词。也就是说,一个拼写错误若违背了拼读规则,它便能够被识别,又能纠正。

英文及其他字母语言的拼写检查

电脑上的中文输入依赖字库,压根不给我们的错字的可能(中文拼写检查的目标是”别字“,即误用字)。
但键盘上有26个字母,因此拼写检查对于英文使用者而言就很重要了。
Hunspell是目前最为主流的一个拼写检查工具,它根据用户locale设定(地区即语言偏好),选择合适的拼读规则并实时应用检查。
它提供了各种平台及编程语言的实现,Hunspell可以加载不同语言预定义的字典及拼读规则,识别提供的文档是否正确拼写。
dictionaries
wooormUpdated May 14, 2024
在JetBrains IDE中,可以预先加载语言的Hunspell字典,以规避恼人的typo inspections
notion image

Hunspell的使用

en-gb 即English UK为例,在Nodejs程序中检查拼写
import en from 'dictionary-en-gb' import nspell from 'nspell' const spell = nspell(en) console.log(spell.correct('color')) console.log(spell.correct('colour'))
在英式英语中,应使用 colour 而非美式英语的 color
notion image

lucky_bricks © 2018 - 2024