假設我有字的字典,{「貓」,「擔架牀」,「催化劑」},以及字符相似關係F(X,Y)如何模糊搜索詞典單詞?
f(x, y) = 1, if x and y are similar
= 0, otherwise
這些「相似性」可以通過指定程序員。 這樣,比方說,
f('t', 'l') = 1
f('a', 'o') = 1
f('f', 't') = 1
但是,
f('a', 'z') = 0
etc.
現在,如果我們有一個查詢 'cofatyst',算法應報告下列匹配:
3210其中數字是找到的匹配的基於0的起始索引。我已經嘗試過Aho-Corasick algorithm,雖然它對於精確匹配非常有用,並且在字符的「相似」字符數量相對較少的情況下,它的性能會呈指數增長,因爲我們會增加字符的相似字符數。任何人都可以指出我更好的方式嗎?模糊性是絕對必要的,它必須考慮到字符相似性(即不要盲目依賴編輯距離)。
所以基本上,你想要某種最小編輯距離,考慮到某些字符(如字符併攏鍵盤上)更有可能被交換?我的直覺告訴我你將在StackOverflow上得到更好的迴應。 – acattle 2013-05-02 09:37:11
正確!類似人物的概念可能不同(例如,當你對某些東西進行OCR時,更可能被誤解爲't'或'i'而不是被誤讀爲'a')好吧,以及 – 2013-05-02 09:42:20
可能的重複[如何模糊搜索詞典詞?](http://stackoverflow.com/questions/16333766/how-to-fuzzily-search-for-a-dictionary-word)你顯然張貼在兩個SO和語言學。堆棧交換。關於後者的問題隨後在此遷移。 – jogojapan 2013-05-08 09:10:08