我正在研究C++中的拼写检查器,并且我被困在实现中的某个步骤中。在拼写检查器中使用Levenshtein距离
比方说,我们有一个拼写正确的单词和输入的字符串的文本文件,我们想检查拼写错误。如果该字符串是一个拼写错误的单词,我可以通过检查文本文件中的所有单词并选择与最少字母不同的单词来轻松找到它的正确格式。对于这种类型的输入,我已经实现了一个函数来计算2个字符串之间的Levenshtein编辑距离。到现在为止还挺好。
现在,困难的部分:如果输入的字符串是拼写错误的单词的组合?例如,“iloevcokies”。考虑到“我”,“爱”和“饼干”是可以在文本文件中找到的单词,我如何使用已实现的Levenshtein函数来确定文件中的哪些单词适合于更正?另外,如何将空白插入正确的位置?
欢迎任何想法:)
不幸的是,你可能偶然发现一个完全不相关的单词(即,这里的编辑距离大概是6,这很大)。 – 2011-03-23 07:12:06
当然,在编辑距离上几乎没有任何字词会被关闭,所以cookie仍然可能显示为顶级命中。尽管离完整的解决方案还很远! – usul 2011-03-30 01:24:27