2015-10-14 3 views
1

В моей базе данных есть несколько названий названий, которые очень часто создаются и воссоздаются с незначительными изменениями. При ручном наблюдении глаз можно легко идентифицировать их как дубликаты с незначительными изменениями правописания. Напр. Идентифицировать бесплатные текстовые ключевые слова с процентным совпадением

 Resort Inn, Res Ort inn, Rsort Inn etc
и так далее. То, что я ищу, - это решение, которое дает процентное совпадение ключевых слов, которые ищут как дубликаты. Возможно, набор источников может быть недостаточно большим, но набор ссылок может переходить в миллионы данных. Таким образом, потенциальный mysql «match to» не масштабируется. Также ссылочный набор находится в индексах mysql и sphinx. Текущая логика дублирования не фиксирует все дубликаты. Например,

 
Moy Knn Resort 
Moy-Knn 
Moy Knn Resort 
Moeyy-Knn American Food 

Все это дубликаты по мне. Но четвертый не захватывается вообще. Я понимаю, что они выглядят одинаково, но процентное число после сравнения, устраняя гласные и другие вещи, помогло бы. Решение предпочтительнее в основном будет с «php-sphinx», так как большинство из них уже готово или awk (если возможно и умеренно комфортно). Если нет, любая логика с открытым исходным кодом (python/perl и т. Д.) Будет работать.

+0

Вы имеете в виду «Я понимаю, что они [не похожи]» - пропустили слово? – barryhunter

+0

Да, «не надо» отсутствует – user676500

ответ

0

Нужно использовать что-то вроде http://php.net/manual/en/function.levenshtein.php , чтобы дать вам фактический «процент».

Но persumably вы хотите какой-то матч «первый проход», чтобы дать вам вероятных кандидатов (так что не нужно запускать Левенштейн над миллионами строк),

откровенно говоря, я думаю, что будет бороться, чтобы получить что-то работу в Sphinx, особенно учитывая ваш последний пример. Это совсем другое. Единственное, что может помочь - http://sphinxsearch.com/docs/current.html#conf-morphology и системы Soundex/metaphone, есть небольшой шанс, что ваши «похожие» слова будут «звучать» одинаково.

+0

Индексирование с помощью критериев морфологии не помогло. В ручном режиме глаза свернули в некоторых случаях и почувствовали, как избавиться от гласных, а также обрезать ведущие и переходящие несколько букв на одну букву, могут приблизить меня к матчу. Возможно, тогда с фильтрованными данными + критерии морфологии могут работать. Будет опубликовать мои результаты, хотя я хотел бы услышать о лучшем методе. – user676500

Смежные вопросы