将字符串与来自mysql的值进行比较

问题描述:

我有一个数据库,其中包含乐队名称以及与音乐相关的其他艺术家。现在我想检查一个包含艺术家姓名的字符串,并查找相似或相同的艺术家以避免不同类型的拼写。将字符串与来自mysql的值进行比较

我发现了php函数'similar_text',我相信,在循环过程中构建一个脚本来做这个比较是没问题的。

做这样的比较最好和最快的方法是什么?

+1

它是一次性脚本?还是一个常规流程(如每日或每周)? –

+2

MySQL'soundex'函数也可以使用。 –

+0

每次上传mp3文件时,都会读取id3标签并将其与数据库进行比较。 'soundex'似乎很有趣。有没有一篇好的文章提供一个mysql数据库的用例? – madc

这取决于您的数据大小。如果是微不足道[几万] - 然后运行夜间批处理作业,则是:从源数据

  • 提取独特的艺术家姓名
  • 计算同音
  • 创建密钥为同音,价值字典 - 列表的艺术家列的原始字符串

在此阶段,您必须决定是否要为每个重命名进行自动合并或手动批准。从长远来看,你可以有适当的拼写助手表,发现迄今为止拼写错误。那些案件可以在下次遇到时自动处理。

如果soundex不够好,您可以尝试使用php的similar_text,levenshtein函数对新添加的数据中找到的名称与先前已经审查过的“已批准”艺术家名称进行比较。

+0

这听起来像是一个合适的解决方案。我会考虑的,如果没有人提出更好的解决方案,我会坚持你的。谢谢! – madc

+0

我想,我会创建一个每晚脚本,将错误的艺术家排序。谢谢您的帮助。 – madc