因此,我已經在Python 2中編寫了一個自動完成和自動更正程序。我已經使用上述方法編寫了自動更正程序,是Peter Norvig的博客,其中介紹瞭如何編寫拼寫檢查程序link。爲自動更正程序快速保存和檢索python數據結構?
現在,我正在使用使用嵌套列表實現的trie數據結構。我使用了一個trie,因爲它可以給我所有以特定前綴開始的單詞。葉子將是一個元組,其中包含單詞和一個表示單詞頻率的值。例如,bad,bat,cat是保存爲 -
['b'['a'['d',('bad',4),'t',('bat',3)]],'c'['a'['t',('cat',4)]]]
其中4,3,4是單詞已被使用的次數或頻率值。同樣,我已經制作了約130,000字的英文字典,並使用cPickle進行存儲。
現在,每次讀取整個樹的時間大約需要3-4秒。問題是每遇到一個字遇到頻率值必須遞增,然後需要再次保存更新的樹。正如你可以想象的那樣,每次讀取3-4秒都會有一個很大的問題,然後再次花費大量時間來保存每次更新的trie。每次程序運行時我都需要執行很多更新操作並保存它們。
是否有更快或更有效的方式來存儲重複更新的大型數據結構?在IDE和移動設備中自動更正程序的數據結構如何保存&如此快地獲取?我也接受不同的方法。
@gospelslide:你可能想看看'klepto'包(我是作者),它是爲了方便上面的優秀建議而構建的。 –