我正在为基于 Web 的所见即所得编辑器实现拼写检查功能。我目前正在使用 Damerau-Levenshtein 距离算法来生成拼写建议列表。这一切都很好,但我很好奇如何改进功能。
具体来说,我的实现目前不处理连词。例如,我希望能够检测到“areyou”并建议改为“are you”。我想我可以通过在可能看起来的片段中将潜在的连词分开并测试两半来做到这一点。由于所有英语单词都必须至少有一个元音,我想我可以寻找元音来帮助我决定在哪里将单词分开。
Damerau-Levenshtein 距离算法非常有用;很明显,其他人在这方面比我想得更多。是否有类似的聪明算法可供我考虑用于检测连词,或者我是否已经在正确的轨道上?
最佳答案
我想候选连词的长度不会超过四十 (40) 个字符左右;大多数时候它会少于十 (10)。
考虑到体积小,这个伪代码呢?
if (is_spelled_wrong(word)): N = len(word) list_suggestions = [] for i = 1 to N-1: wordA = word[0:i] // Pythonic 'slice' notation wordB = word[i+1:N] if (!is_spelled_wrong(wordA) && !is_spelled_wrong(wordB)) list_suggestions.appened((wordA, wordB))
换句话说,就是扫描所有可能性的字符串。他们的数量很少。在“areyou”的情况下,您将循环五 (5) 次。
关于algorithm - 连词的拼写建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758287/