我正在研究C++中的拼寫檢查器,並且我被困在實現中的某個步驟中。在拼寫檢查器中使用Levenshtein距離
比方說,我們有一個拼寫正確的單詞和輸入的字符串的文本文件,我們想檢查拼寫錯誤。如果該字符串是一個拼寫錯誤的單詞,我可以通過檢查文本文件中的所有單詞並選擇與最少字母不同的單詞來輕鬆找到它的正確格式。對於這種類型的輸入,我已經實現了一個函數來計算2個字符串之間的Levenshtein編輯距離。到現在爲止還挺好。
現在,困難的部分:如果輸入的字符串是拼寫錯誤的單詞的組合?例如,「iloevcokies」。考慮到「我」,「愛」和「餅乾」是可以在文本文件中找到的單詞,我如何使用已實現的Levenshtein函數來確定文件中的哪些單詞適合於更正?另外,如何將空白插入正確的位置?
歡迎任何想法:)
不幸的是,你可能偶然發現一個完全不相關的單詞(即,這裏的編輯距離大概是6,這很大)。 – 2011-03-23 07:12:06
當然,在編輯距離上幾乎沒有任何字詞會被關閉,所以cookie仍然可能顯示爲頂級命中。儘管離完整的解決方案還很遠! – usul 2011-03-30 01:24:27