我正在实施拼写检查算法。我构建了一个Trie
来存储我的单词以便快速搜索。
当传递给定的输入字符串时,我想要做的是为该字符串生成潜在的删除,插入,替换和转置,编辑距离为1.使用此超级集我可以尝试在我的{中找到该单词{1}}并向用户提供“你的意思是?”输入结果。
我在网上看过,大多数解决方案都提到计算Levenstein距离。这只有在您已经知道这两个字符串并且您想要找到两者之间的编辑距离时才有效。
建议?
答案 0 :(得分:2)
我会使用2通算法:
通过1
查看并计算所有单词的距离,以与拼写检查单词相同的字母开头。这会很快。你可以在字符数大于法术字长+2(然后这个看似另一个字)时停止深度搜索 显示pass1的结果,例如通过标记红色下划线
通过2
查找所有单词并在长度+ 3或4时停止
更新第1版中的结果