2011-03-04 135 views
0

我必須寫一個C字典/ C++代碼字典實施具有以下特點:如何實現C/C++使用自動更正,自動完成,拼寫檢查

基本上有定義(1個或多個)的話。

1)插入

2)在搜索(如儘快)

3)自動完成

4)自動修正

5)拼寫檢查

所以我需要知道如何做?

哪個數據結構應該是最高效的? Trie或hast表或其他東西

哪種搜索技術使用...?

如何實現自動完成和拼寫檢查有效..?

+3

這是一個家庭作業問題(即你想暗示如何實現它),還是你需要讓它工作,所以現有的解決方案,你可以鏈接到罰款? – 2011-03-04 10:23:42

回答

0

當然,您需要一個帶有單詞列表的數據庫,然後您需要將文本拆分爲單詞並查看它們是否存在於數據庫中。

對於自動填充,您可以檢查到目前爲止輸入的文本是否與字典中的單詞匹配(使用LIKE txt +'%'子句),並通過AJAX調用實現。

1

您通常會使用詞彙樹,根據edit distance從另一個排列,如BK tree

IIRC,這個想法是有一個平衡樹,每個單詞通過編輯根據編輯距離編號的邊緣鏈接。如果你想找到一個單詞的最接近的匹配,你計算它是編輯根詞的距離,然後跟隨同一個數字的根詞的鏈接,並重復這個過程,直到你到達一個葉節點,它是相同的單詞,或最接近的匹配。

編輯:回想起來,那篇文章我聯繫了比我更好的解釋它。我只是建議通讀一遍,以便對方法有一個很好的解釋。