我想写一个非常简单的拼写检查器。拼写检查器将尝试将输入单词与字典中的等效单词进行匹配。
可以做些什么来找到那些“等价词”?可以对两个单词进行什么分析以将它们标记为等效?
我想写一个非常简单的拼写检查器。拼写检查器将尝试将输入单词与字典中的等效单词进行匹配。
可以做些什么来找到那些“等价词”?可以对两个单词进行什么分析以将它们标记为等效?
很大程度上取决于您的用例。例如:
编辑距离是编写拼写检查器所需的理论。你还需要一本字典。大多数 UNIX 系统都带有已经为您的语言环境安装的字典。
我刚刚完成了一个拼写检查器,并使用了以下组合来获取“建议”单词的列表
本质上,我主要根据编辑距离和共性对每个潜在单词进行加权。例如,如果单词概率是一个百分比,那么
weight = edit-distance * 100 / probability
(权重越小越好)
但是我也用已知的常见拼写错误覆盖任何结果(即这些总是浮动到建议的结果顶部)。
可能有更好的方法,但这工作得很好。
您可能还希望忽略所有大写单词、首字母等,因此选择要忽略的内容也是需要考虑的事情。
在 linux/unix 下你有 ispell。为什么要彻底改造。