2012-08-15 130 views
2

我正在編寫一個iOS應用程序,它從公共Google日曆中提取事件,提取自由形式的「位置」字段,並在與給定位置相對應的地圖上放置一個別針。我希望使用某種字符串搜索或模糊匹配算法儘可能靈活地應用程序,但我不知道從哪裏開始。iOS中複雜的模糊字符串匹配

有幾件事情日曆主持人可能進入位置字段:

  • 建築名稱和房間號(如美孚館123室)
  • 建築物縮寫,房間號(如FOO 123 )
  • 簡寫房間或位置名稱(例如美孚)

目前,我已經SQLite數據庫由一個表的每一行存儲緯度,經度,充分的buildin g名稱(Foo Hall)和標準化建築縮寫(FOO)。

我想取主持人的自由格式字符串並從數據庫中獲取正確的座標(如果存在)。

我試過使用LIKE '%FOO%'和類似的模式,以及Levenshtein距離,但我遇到的問題,例如,如果實際的建築物名稱是「示例Foo和酒吧建設」,並由主持人輸入的位置是「示例酒吧建築「。

我考慮的三個選項...

  • 強制主持人以標準化的縮寫或建築物名稱進入。對於日曆版主來說,這可能是一個繁瑣的過程,所以我儘可能避免這種情況。

  • 做一個粗略的子串搜索,檢查輸入的字符串是否包含在數據庫字符串中的任何位置。這是我的大學在他們的網站上做的,但顯然不是很靈活。

  • 實現一個更復雜的模糊字符串匹配算法,該算法提供了最大的靈活性,但將需要更多的時間來實現。如果正確的一個已經存在,那將是理想的解決方案!

以下哪個選項(如果有的話)似乎最好?有沒有更好的選擇,我沒有想到?有沒有一個圖書館能夠滿足我的需求,而我還沒有找到它?

在此先感謝您的幫助!

回答

-1

我不是iOS開發人員,所以我不能提供太多幫助,但是如果您必須實施自己的解決方案,那麼您可以使用幾種多功能的Python庫,如fuzzywuzzy。祝你好運!