确定字符串或数组中的潜在重复项

时间:2013-01-13 13:03:44

标签: php

我正在使用PHP将RSS源解析为MySQL数据库。在将新条目插入DB之前,我想检查(通过比较项目的标题)是否已有MySQL数据库中的类似条目,并相应地标记它们。现在我不知道如何确定列出的示例中的候选者是源的潜在重复。

示例:

源:

  • CES:Panasonic und Technisat neu in der Smart TV Alliance

候选人:

  • Panasonic,IBM,Specific Media,ABOX42和TechniSat ...... - Area DVD
  • CES 2013:松下,IBM,特定媒体,ABOX42和TechniSat ......
  • Panasonic ABOX42 IBM特定媒体和TechniSat ExpandBuild一次......
  • Panasonic,IBM,Specific Media,ABOX42和TechniSat erweitern die ...
  • ...

已经尝试过array_intersect和levenshtein(),但结果不是很准确。如果不知道的话。

最好,安德烈亚斯

1 个答案:

答案 0 :(得分:0)

大声思考并提出一些建议:

  • 删除除数字,字母和空格之外的所有内容

    $title = preg_replace('/[^\w\d ]+/', '', $title);
    
  • 爆炸成阵列

    $parts = preg_split('/\s+/', $title);
    
  • 您现在可以选择计算重复的单词:array_count

  • 最后,您可以将生成的数组相互比较,并检查重复项,例如,80%的可能性(80%的数组项匹配)