2012-08-15 131 views
2

我正在编写一个iOS应用程序,它从公共Google日历中提取事件,提取自由形式的“位置”字段,并在与给定位置相对应的地图上放置一个别针。我希望使用某种字符串搜索或模糊匹配算法尽可能灵活地应用程序,但我不知道从哪里开始。iOS中复杂的模糊字符串匹配

有几件事情日历主持人可能进入位置字段:

  • 建筑名称和房间号(如美孚馆123室)
  • 建筑物缩写,房间号(如FOO 123 )
  • 简写房间或位置名称(例如美孚)

目前,我已经SQLite数据库由一个表的每一行存储纬度,经度,充分的buildin g名称(Foo Hall)和标准化建筑缩写(FOO)。

我想取主持人的自由格式字符串并从数据库中获取正确的坐标(如果存在)。

我试过使用LIKE '%FOO%'和类似的模式,以及Levenshtein距离,但我遇到的问题,例如,如果实际的建筑物名称是“示例Foo和酒吧建设”,并由主持人输入的位置是“示例酒吧建筑“。

我考虑的三个选项...

  • 强制主持人以标准化的缩写或建筑物名称进入。对于日历版主来说,这可能是一个繁琐的过程,所以我尽可能避免这种情况。

  • 做一个粗略的子串搜索,检查输入的字符串是否包含在数据库字符串中的任何位置。这是我的大学在他们的网站上做的,但显然不是很灵活。

  • 实现一个更复杂的模糊字符串匹配算法,该算法提供了最大的灵活性,但将需要更多的时间来实现。如果正确的一个已经存在,那将是理想的解决方案!

以下哪个选项(如果有的话)似乎最好?有没有更好的选择,我没有想到?有没有一个图书馆能够满足我的需求,而我还没有找到它?

在此先感谢您的帮助!

回答

-1

我不是iOS开发人员,所以我不能提供太多帮助,但是如果您必须实施自己的解决方案,那么您可以使用几种多功能的Python库,如fuzzywuzzy。祝你好运!