0

我的数据库中有几个名称标题经常通过微小的更改创建和重新创建。通过手动目测,您可以轻松地将它们识别为重复的,只需进行细微的拼写更改。例如

度假村旅馆、Res Ort 旅馆、Rsort 旅馆等
等等。我正在寻找的是一个解决方案,它给出了作为重复项搜索的关键字的百分比匹配。源集可能不够大,但参考集可以包含数百万个数据。所以潜在的mysql“匹配”是不可扩展的。参考集也在 mysql 和 sphinx 索引中。当前的复制逻辑并不能完全捕获所有重复项。例如

莫伊克恩度假村
莫伊克恩
莫伊克恩度假村
Moeyy-Knn 美国食品

在我看来,所有这些都是重复的。但是第四个根本没有被捕获。我知道它们看起来相同,但是通过消除元音和其他东西进行比较后的百分比数字会有所帮助。首选的解决方案主要是使用 'php-sphinx',因为它的大部分已经准备好或 awk(如果可能并且也适度舒适)。如果没有,任何开源(python/perl 等)逻辑都可以。

4

1 回答 1

0

那么可以使用http://php.net/manual/en/function.levenshtein.php之类的东西 来给你一个实际的“百分比”。

但大概你想要某种“第一次通过”匹配,给你可能的候选人(所以不需要在数百万行上运行 levenshtein),

坦率地说,我认为很难在 Sphinx 中得到一些工作,特别是考虑到你的最后一个例子。那是非常不同的。唯一可能有帮助的是 http://sphinxsearch.com/docs/current.html#conf-morphology 和 Soundex/metaphone 系统,你的“相似”词实际上“听起来”相同的可能性很小。

于 2015-10-14T09:38:30.527 回答