我正在開發iOS應用程序。我有一個擁有大量公司名稱的核心數據庫。實施「你的意思是?」核心數據
當用戶插入一個不存在的公司名稱時,我想顯示「相似」的公司名稱。例如,如果用戶輸入了「Aple」,我想顯示「您的意思是蘋果?」。
我知道,找到近似模式匹配的字符串的技術(而不是正是)被稱爲或近似字符串匹配,通俗,模糊串搜索。
理論上有很多算法,或多或少有效:Levenshtein距離計算算法等等。
但實際上,是否有人已經實施了類似的東西,可以使用輕鬆地將與核心數據一起使用?
我正在開發iOS應用程序。我有一個擁有大量公司名稱的核心數據庫。實施「你的意思是?」核心數據
當用戶插入一個不存在的公司名稱時,我想顯示「相似」的公司名稱。例如,如果用戶輸入了「Aple」,我想顯示「您的意思是蘋果?」。
我知道,找到近似模式匹配的字符串的技術(而不是正是)被稱爲或近似字符串匹配,通俗,模糊串搜索。
理論上有很多算法,或多或少有效:Levenshtein距離計算算法等等。
但實際上,是否有人已經實施了類似的東西,可以使用輕鬆地將與核心數據一起使用?
我找到了解決方案。在GitHub上使用這個NSString的類別:NSString-DamerauLevenshtein。
嘗試查看Soundex,我相信這是SQLite核心功能集的一部分,如果這是您的基礎數據存儲。
Soundex將只適用於英語,從大多數歐洲語言嘗試雙重metaphone。但我不認爲SQLite會支持這一點,所以你可能必須事先計算出它的價值並在其上進行搜索。 – rckoenes
只有在構建SQLite時使用SQLITE_SOUNDEX編譯時選項時,Soundex纔可用。如果我沒有錯,iOS Sqlite沒有Soundex(並且在任何情況下都不容易與Core Data一起使用)... – Dev