我有一个数据库,其中包含与音乐相关的乐队和其他艺术家的名字。现在我想根据该数据库检查包含艺术家姓名的字符串,并找到相似或相同的艺术家以避免不同类型的拼写。
我找到了 php 函数“similar_text”,我确信构建一个脚本来在循环中进行这种比较是没有问题的。
进行此类比较的最佳和最快方法是什么?
最佳答案
这取决于您的数据大小。如果它是微不足道的 [几万] - 然后运行每晚的批处理作业将:
- 从源数据中提取唯一的艺术家姓名
- 计算soundex
- 创建字典,键为 soundex,值为艺术家列的原始字符串列表
在此阶段,您必须决定是要自动合并还是手动批准每次重命名。从长远来看,您可以拥有拼写正确的帮助表,并且到目前为止发现拼写错误。这些情况可以在下次遇到时自动处理。
如果 soundex 不够好,您可以尝试使用 php 的 similar_text、levenshtein 函数进行试验,并将在新添加的数据中找到的名称与您之前已经评论过的“认可”艺术家名称进行比较。
关于php - 将字符串与 mysql 中的值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473756/