我目前正在编写的核心数据应用程序有一个小问题。我有两个不同的模型,上下文和永久存储。一个用于我的应用数据,另一个用于与我相关的网站。
大多数时候,我将我的应用程序中的一条记录与另一个来源的另一条记录完全匹配。然而,有时我不得不回退到模糊字符串匹配来链接两条记录。我正在尝试匹配歌曲标题。我的本地标题可能是(编造的)"The French Idealist is in your pensée"
,而远程歌曲标题可能是"01 - 10 - French idealist in in you're pensee, The (dub remix, feat. DJ Objective-C)"
我搜索堆栈溢出、谷歌、可可文档,但在这些情况下我找不到任何关于如何进行模糊匹配的明确答案。我的字符串可以以任何开头,有一堆特殊字符,通常以随机或被忽略的字符结尾。
Regexp 不行,NSPredicates 也不行,Soundex 不能很好地处理外国名称,也许 Levenshtein 还不够(或者会吗?)。
我在一组大约十几个潜在的比赛中寻找一个标题,但我不得不做这个操作很多。100% 的准确率不是目标。
我正在考虑删除被忽略的单词,提取关键字(在本例中为“french, Idealist, pensée”),将它们连接起来,然后使用 Levenshtein 距离(歌曲标题中的单词应该按相同的顺序排列)。
在我的特殊情况下,它会起作用吗?关于这个问题的行业标准是什么(我不可能是世界上唯一一个想要匹配略有不同的歌曲名称的人)Core Data、Cocoa 或 Objective-C 可以帮助我吗?
非常感谢。