下午好,萊文斯坦DFA在.NET
有誰知道在.NET中的「亂用」的實施萊文斯坦的DFA(確定性有限自動機)的(或容易翻譯吧) ?我有一本超過160000個不同單詞的非常大的字典,我想要給出一個原始單詞w,以有效的方式找到所有已知單詞在Levenshtein距離最多爲2的w。
當然,通過編輯距離計算給定單詞的所有可能編輯並將其應用於每個編輯的功能可以解決問題(並且以非常簡單的方式)。問題是效率 - 給定一個7個字母的單詞,這已經可能需要1秒鐘才能完成,並且我需要更多多 - 如果可能的話,就像使用Levenshtein DFA一樣,這個解決方案需要O (| w |)的步驟。
編輯:我知道我可以用一點點研究來構建我自己的解決問題的方法,但目前我買不起讀Schulz和Mihov長達60頁的文章。
非常感謝。
Lucene中的Levenshtein自動機相關代碼是否可以通過Maven快照資源庫獲得?我一直無法找到它。 – 2011-02-05 19:33:08
我做了艱苦的工作,所以你不必,你可以在這裏找到移植到C#的代碼https://github.com/mjvh80/LevenshteinDFA/(note:wip)。 – Marcus 2014-09-03 13:16:32
鏈接已死亡../ – ostati 2014-11-18 01:21:03