匹配核心数据存储中的近似字符串

2024-01-04

我当前正在编写的核心数据应用程序有一个小问题。我有两种不同的模型,上下文和持久存储。一个用于我的应用程序数据,另一个用于包含与我相关的信息的网站。

大多数时候,我将应用程序中的一条记录与其他来源的另一条记录完全匹配。然而,有时,我必须回退到模糊字符串匹配来链接两个记录。 我正在尝试匹配歌曲名称。我的本地头衔可能是(虚构的)"The French Idealist is in your pensée"远程歌曲标题可以是"01 - 10 - French idealist in in you're pensee, The (dub remix, feat. DJ Objective-C)"

我搜索堆栈溢出、谷歌、可可文档,但我找不到关于如何在这些情况下进行模糊匹配的任何明确答案。我的字符串可以以任何内容开头,有一堆特殊字符,通常以随机或被忽略的字符结尾。

Regex 不行,NSPredicate 不行,Soundex 不能很好地处理外国名称,也许 Levenshtein 还不够(或者会吗?)。

我正在寻找一组大约十几场潜在比赛的冠军,但我必须做很多这样的操作。 100% 准确率不是目标。

我正在考虑删除被忽略的单词,提取关键字(在本例中为“french,idealist,pensée”),将它们连接起来,然后使用 Levenshtein 距离(歌曲标题中的单词应按相同顺序)。

在我的特殊情况下,它会起作用吗?关于这个问题的行业标准是什么(我不可能是世界上唯一一个想要匹配稍微不同的歌曲名称的人)Core Data、Cocoa 或 Objective-C 可以帮助我吗?

多谢。


您希望搜索不区分变音符号,以匹配 pensée 中的“é”和 pensee 中的“e”。您可以通过在属性后面添加 [d] 来获得此信息。就像这样:

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(songTitle like[cd] %@)", yourSongSubstring];
The 'c' in [cd] is for case insensitivity.

由于您的字符串可能以任何顺序出现在您正在搜索的字符串中,因此您可以标记您的搜索字符串 ([... ComponentsByString:@" "]),然后创建一个谓词,例如

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(songTitle like[cd] %@) and (songTitle like[cd] %@)", songToken1, songToken2];
That syntax to combine predicates above may be off, going from memory.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

匹配核心数据存储中的近似字符串 的相关文章

  • Python Pandas:如何替换包含“?”的字符串

    我有一个 Python 2 7 Pandas Dataframe 如下所示 Id Title URL Id 1 Bruce Almighty https www youtube com watch v 5VGyTOGxyVA Id 2 Su
  • Objective-C 字符串文字的预处理器宏值

    我在构建设置中定义了一个预处理器宏 FOO BAR 我想将该值转换为可以传递给方法的 Objective C 字符串文字 以下 define 不起作用 但它应该展示我想要实现的目标 define FOOLITERAL FOO want FO
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 为什么 as.character() 返回日期列表中的整数?

    我惊讶地发现 R 中出现以下行为 as character c Sys Date gt 1 2018 02 05 as character list Sys Date gt 1 17567 为什么会出现这种情况 也就是说 显然 17567
  • 检查多个变量java中的替换空值

    我试图找到一种简单的方法来在 Java 中的多个变量中执行多个 null 检查 替换 我有一个包含大约 20 个字符串变量的对象 在构造函数中 我想检查是否有任何变量值为空 如果它们为空 我想用空字符串替换它们 我可以执行一系列 if 语句
  • 删除字符串 C 的第一个字符

    我试图删除字符串的第一个字符并保留其余部分 我当前的代码无法编译 我对如何修复它感到困惑 My code char newStr char charBuffer int len strlen charBuffer int i 1 char
  • 迁移大型 Core Data 数据库崩溃

    我有一个将产品存储在核心数据文件中的应用程序 这些产品包括作为 可转换 数据的图像 现在我尝试使用轻量级迁移添加一些属性 当我使用一个小型数据库对其进行测试时 它运行良好 但当我使用一个接近 500 MB 的大型数据库时 应用程序通常会因内
  • PHP 中的多行字符串文字

    考虑 xml l xml vv echo xml 这将回响vv 为什么以及如何为诸如此类的事情执行多行字符串文字简单XML https en wikipedia org wiki SimpleXML etc Well xml l vv Wo
  • 为什么 WebView 中的 dataWithPDFInsideRect 不能在 Mavericks 上创建高质量的 PDF?

    Run 示例项目 https github com tvarghese TestWebView并观察桌面上生成的输出 PDF 名为保存网页 pdf 粘贴感兴趣的代码片段 NSURL url NSBundle mainBundle URLFo
  • 具有多个 sqlite 文件的核心数据

    如何将 Core Data 与多个 SQLite 文件一起使用 每个文件都包含相同的结构 但数据是从不同的位置检索的 我希望能够在运行时根据应用程序设置在这些 sqlite 文件之间切换 当然 只需指向持久存储协调器 NSPersisten
  • 从字符串中修剪/删除制表符 ( "\t" )

    任何人都可以建议一种从字符串中删除制表符 t 的方法吗 CString 或 std string 例如 1E10 变为 1E10 hackingwords 的回答 https stackoverflow com questions 5562
  • string.split("(?!^)") 解释

    我正在尝试将字符串的字符拆分为字符串数组 我找到了解决方案here https stackoverflow com questions 5235401 split string into array of character strings
  • 这个看不见的空间是如何创造出来的?

    FileTitle FileTitle false 第一个字符串和最后一个字符串之间有一个空格e and FileTitle length 12 FileTitle length 11 这两个字符之间存在代码为 8203 的 Unicode
  • 使用 Swift 创建 NSAlert

    我有在 Objective C 中创建和 NSAlert 的代码 但我现在想在 Swift 中创建它 该警报旨在确认用户想要删除文档 我想要 删除 按钮来运行删除功能 而 取消 按钮只是为了消除警报 我怎样才能用 Swift 写这个 NSA
  • 如何快速防止标签中出现孤儿?

    我有一个可以有一两行的标签 如果它有两行 我希望第二行至少有两个 或者可能三个 单词 而不仅仅是一个 关于如何使用 swift 实现这一点有什么想法吗 提前致谢 Daniel 编辑 我删除了我愚蠢的第一个想法 这些想法并没有真正的帮助 好吧
  • 获取本周的第一天和最后一天

    如何获取本周的第一天和最后一天 我需要的是某种方法来过滤一组具有 NSDate 属性的对象 只留下本周出现的对象 然后按天过滤它们 我还需要一些方法来获取本地化的日期名称 我尝试使用 NSCalendar NSDate 和 NSDateCo
  • 在 C++ 中查找精确的字符串匹配

    这是我用来检测 txt 文件中一行中的字符串的代码 int main std ifstream file C log txt std string line while file eof while std getline file lin
  • [[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别?

    仍在学习 Objective C iPhone SDK 我想我知道为什么这不起作用 但我只是想确认一下 In awakeFromNib 如果我使用 NSMutableDictionary alloc initWithObjects 它实际上
  • Cocoa 基于文档的应用程序中的 MVC

    我目前正在对我的应用程序进行重构和重组 我意识到模型和视图及其控制器之间的一些分离已经减少 我希望进行一些清理 我的应用程序中使用了几个关键类 NSPersistentDocument NSWindowController 和模型类 NSP
  • 如何从 PHP 中的字符串创建可能的字符串组合?

    如何从 PHP 中的字符串创建可能的字符串组合 Exp input abc output array 0 gt a 1 gt ab 2 gt abc 3 gt ac 4 gt acb 5 gt b 6 gt ba 7 gt bac 8 gt

随机推荐

  • 如何在 Vim 中使用“wildignore”?

    我在弄清楚语法时遇到了很多麻烦wildignoreVim 中的设置 假设我想要我的文件查找器插件 我使用Ctrlp http kien github com ctrlp vim 它使用wildignore 不搜索隐藏的文件和文件夹 即以 a
  • 如何删除树枝中数组的第一项?

    我在树枝中有一个名为 Posts 的数组 有没有办法轻松删除该数组的第一项 所以它的结构就像这样 array post 1 post 2 post 3 我想知道是否可以使用 twig 中的函数轻松删除第一篇文章 array post 2 p
  • 如何使表单的特定部分可滚动?

    我正在用 vb6 编写一个程序 要求我能够向右滚动屏幕的某个区域 它仅由线条和图片框组成 有没有办法只滚动该区域 谢谢 您可以利用以下事实 某些可视控件可以充当其他可视控件的容器 举个例子 在 VBIDE 中 放置一个Frame通过 VB
  • 对所有参数组合应用函数

    我希望能够将函数应用于一组输入参数的所有组合 我有一个可行的解决方案 如下 但如果没有更好 更通用的方法来执行此操作 例如 我会感到惊讶plyr 但到目前为止还没有发现任何东西 有更好的解决方案吗 Apply function FUN to
  • 固定内存OpenCL,有人成功使用过吗?

    我用的是CL MEM ALLOC HOST PTR与我的旗帜clCreateBuffer调用 但计算分析器将我的所有 主机内存传输类型 显示为可分页 我在两种不同的内核设置中尝试过它 但分析器不会显示我正在使用固定内存 当内核开始使用固定内
  • ICS 模拟器没有软件按钮吗?

    因此 我正在将我的应用程序从 3 0 更新到 4 0 但我遇到了模拟器问题 具体来说 软件按钮可以not使用 Galaxy Nexus ish 皮肤时会出现 我不确定它是否准确 但应该足够接近 这是WXGA720 它的值 Hardware
  • 将树状图与 Python 的 scipy.cluster.hierarchy 中的簇号进行匹配

    以下代码生成一个具有 10 个叶节点的简单层次聚类树状图 import scipy import scipy cluster hierarchy as sch import matplotlib pylab as plt X scipy r
  • Python tkinter画布闪烁

    首先 我应该声明 我知道该网站上还有其他名称相似的帖子 我已经经历过它们 但据我所知 它们并没有解决我的问题 实际上我想说我的问题比大多数例子要简单得多 简而言之 我想创建一个透明矩形 可以用来显示拖动选择区域 当我发现 tkinter 不
  • 我制作的相机效果不佳,为什么玩家移动速度比相机快?

    我制作了一个游戏 但是当我想添加相机来移动玩家时 它不起作用 玩家移动得比相机快并离开屏幕 我尝试从地形中移除玩家的大小 但没有任何效果 玩家仍然从屏幕中消失 这是我的代码 pygame init scsizeX 600 scsizeY 4
  • 为什么这个数字会加一? [复制]

    这个问题在这里已经有答案了 console log 10209761399365907 为什么此代码输出一个大一的数字 10209761399365908 而不是 10209761399365907 仅此特定号码才会发生这种情况 例如 使用
  • 在sql中按月份名称分组

    我有一张桌子 看起来像 id Item Quantity Amount created 1 Monitor 10 5000 2013 01 11 2 Keyboard 10 200 2013 02 19 3 Monitor 10 5000
  • 在 Scala 2.8 集合中,为什么在 Iterable 之上添加 Traversable 类型?

    我知道那是Traversable 你只需要有一个foreach方法 Iterable需要一个iterator method Scala 2 8 集合 SID 和 Fighting Bitrot with Types 论文基本上都没有提及为什
  • AMPL:对 cplex 使用“timelimit”选项后的结果是否满足所有约束?

    我有一个虚拟问题 我需要知道它的答案 我正在开发一个需要 AMPL 和 CPLEX 作为求解器的项目 现在这个问题一般需要140秒以上才能解决 当我搜索时 我进入了一个名为timelimit 我有价值地使用了这个选项option cplex
  • 类型错误:无法将 datetime.timedelta 与 float 进行比较

    我正在编写 python 脚本来计算开始日期和结束日期之间的持续时间格式 例如20140520160000 and 20140520170000这样我就能得到时间 我在使用这段代码时遇到了问题 if epgDuration gt 0 10
  • 如何正确使用php fopen()

    我正在学习 php 尝试使用fopen 功能 我正在编码的php文件位于这个目录中 domains xxxxx com au public html phpfile php我为要打开的文件指定什么路径 我正在查看的示例基于电脑上的服务器 其
  • 如何在 C 中对单个数字的所有位进行异或?

    有没有一种简单的方法将单个数字的所有位异或在一起 即 C 中的一元异或 具有以下效果的东西 result 0x45 0 1 0 0 0 1 0 1 1 result 0x33 0 0 1 1 0 0 1 1 0 GCC 为此内置了一个 in
  • 大量在线对话文本的情感分析

    标题说明了一切 我有一个 SQL 数据库 其中充满了在线对话文本 我已经用 Python 完成了这个项目的大部分内容 所以我想使用 Python 的 NLTK 库来完成此操作 除非有一个strong不这样做的理由 数据的组织方式为Threa
  • 何时使用 cudaHostRegister() 和 cudaHostAlloc()? “固定或页面锁定”内存是什么意思? OpenCL 中哪些是等效的?

    我刚刚接触 Nvidia 的 API 有些表达对我来说不太清楚 我想知道是否有人可以帮助我了解何时以及如何以简单的方式使用这些 CUDA 命令 更准确地说 在研究如何通过内核并行执行 例如使用 CUDA 来加速某些应用程序时 在某些时候我面
  • 如何在不使用 NSTimer 的情况下在 iPhone 上循环游戏

    为了将我的游戏干净地移植到 iPhone 我正在尝试制作一个不使用 NSTimer 的游戏循环 我在一些示例代码中注意到 如果使用 NSTimer 您需要在开始时使用类似的内容进行设置 self animationTimer NSTimer
  • 匹配核心数据存储中的近似字符串

    我当前正在编写的核心数据应用程序有一个小问题 我有两种不同的模型 上下文和持久存储 一个用于我的应用程序数据 另一个用于包含与我相关的信息的网站 大多数时候 我将应用程序中的一条记录与其他来源的另一条记录完全匹配 然而 有时 我必须回退到模