我的数据库中有多个名称标题可以经常创建并重新创建并进行微小更改。通过手动眼球,可以轻松地将它们识别为重复,并进行轻微的拼写更改。对于例如
Resort Inn, Res Ort inn, Rsort Inn etc等等。我正在寻找的是一个解决方案,它提供了搜索重复项的关键字的百分比匹配。源集可能不够大,但参考集可以进入数百万的数据。所以潜在的mysql“匹配”是不可扩展的。参考集也在mysql和sphinx索引中。当前的复制逻辑并不能完全捕获所有重复项。例如
Moy Knn Resort Moy-Knn Moy Knn Resort Moeyy-Knn American Food
根据我的说法,所有这些都是重复的。但第四个根本没有被捕获。我知道它们看起来相同,但通过消除元音和其他东西比较后的一些百分比数字会有所帮助。首选的解决方案主要是'php-sphinx',因为大多数已经准备就绪或awk(如果可能,也适度舒适)。如果没有,任何开源(python / perl等)逻辑都可以。
答案 0 :(得分:0)
可以使用类似的东西 http://php.net/manual/en/function.levenshtein.php 给你一个实际的百分比'。
但据说你想要某种“第一次通过”。匹配,给你可能的候选人(因此不需要在数百万行上运行levenshtein),
坦率地说,我认为很难在Sphinx中找到合适的东西,特别是考虑你的最后一个例子。那是非常不同的。唯一可能有用的是 http://sphinxsearch.com/docs/current.html#conf-morphology 和Soundex / metaphone系统一样,你的类似机会很小。言语会发出声音'相同。