我正在编写一个iOS应用程序,它从公共Google日历中提取事件,提取自由形式的“位置”字段,并在与给定位置相对应的地图上放置一个别针。我希望使用某种字符串搜索或模糊匹配算法尽可能灵活地应用程序,但我不知道从哪里开始。iOS中复杂的模糊字符串匹配
有几件事情日历主持人可能进入位置字段:
- 建筑名称和房间号(如美孚馆123室)
- 建筑物缩写,房间号(如FOO 123 )
- 简写房间或位置名称(例如美孚)
目前,我已经SQLite数据库由一个表的每一行存储纬度,经度,充分的buildin g名称(Foo Hall)和标准化建筑缩写(FOO)。
我想取主持人的自由格式字符串并从数据库中获取正确的坐标(如果存在)。
我试过使用LIKE '%FOO%'
和类似的模式,以及Levenshtein距离,但我遇到的问题,例如,如果实际的建筑物名称是“示例Foo和酒吧建设”,并由主持人输入的位置是“示例酒吧建筑“。
我考虑的三个选项...
强制主持人以标准化的缩写或建筑物名称进入。对于日历版主来说,这可能是一个繁琐的过程,所以我尽可能避免这种情况。
做一个粗略的子串搜索,检查输入的字符串是否包含在数据库字符串中的任何位置。这是我的大学在他们的网站上做的,但显然不是很灵活。
实现一个更复杂的模糊字符串匹配算法,该算法提供了最大的灵活性,但将需要更多的时间来实现。如果正确的一个已经存在,那将是理想的解决方案!
以下哪个选项(如果有的话)似乎最好?有没有更好的选择,我没有想到?有没有一个图书馆能够满足我的需求,而我还没有找到它?
在此先感谢您的帮助!