我正在編寫一個iOS應用程序,它從公共Google日曆中提取事件,提取自由形式的「位置」字段,並在與給定位置相對應的地圖上放置一個別針。我希望使用某種字符串搜索或模糊匹配算法儘可能靈活地應用程序,但我不知道從哪裏開始。iOS中複雜的模糊字符串匹配
有幾件事情日曆主持人可能進入位置字段:
- 建築名稱和房間號(如美孚館123室)
- 建築物縮寫,房間號(如FOO 123 )
- 簡寫房間或位置名稱(例如美孚)
目前,我已經SQLite數據庫由一個表的每一行存儲緯度,經度,充分的buildin g名稱(Foo Hall)和標準化建築縮寫(FOO)。
我想取主持人的自由格式字符串並從數據庫中獲取正確的座標(如果存在)。
我試過使用LIKE '%FOO%'
和類似的模式,以及Levenshtein距離,但我遇到的問題,例如,如果實際的建築物名稱是「示例Foo和酒吧建設」,並由主持人輸入的位置是「示例酒吧建築「。
我考慮的三個選項...
強制主持人以標準化的縮寫或建築物名稱進入。對於日曆版主來說,這可能是一個繁瑣的過程,所以我儘可能避免這種情況。
做一個粗略的子串搜索,檢查輸入的字符串是否包含在數據庫字符串中的任何位置。這是我的大學在他們的網站上做的,但顯然不是很靈活。
實現一個更復雜的模糊字符串匹配算法,該算法提供了最大的靈活性,但將需要更多的時間來實現。如果正確的一個已經存在,那將是理想的解決方案!
以下哪個選項(如果有的話)似乎最好?有沒有更好的選擇,我沒有想到?有沒有一個圖書館能夠滿足我的需求,而我還沒有找到它?
在此先感謝您的幫助!