Чтобы расширить мой комментарий к ответу Шонака, я использовал следующий подход:
Создайте серию «хэшей» каждого имени в порядке приоритета. Например, для группы финансовых компаний в Великобритании я использовал следующее:
- "Хеш" 1: Точное название компании, например "Сент-Джон и Джеймс 'Financial Investments Ltd.".
- Хеш-код 2: название компании со всеми не алфавитно-цифровыми символами и разделенными пробелами: "Сент-Джеймс Джеймс Файнэншл Инвестментс Лтд"
- Хэш 3: общие сокращения расширены, например, От 1-го до «Первого», от «Ltd» до «Limited»: «Saint John James Financial Investments Limited». Я также здесь делал общие орфографические ошибки, например «Независимый» на «Независимый». Ваши обычные орфографические ошибки, очевидно, будут зависеть от ваших исходных данных.
- Хэш 4: слова «Стоп», например «The», «Limited», удалено: «Сент-Джон Джеймс Финансовые инвестиции».
Я спрятал все эти данные в таблицу, а затем создал запрос для сравнения названия каждой компании в таблице со всеми остальными, основываясь на том, что они совпадают по хешу 1, хешу 2, хешу 3, хешу 4. Это придало мне уверенности фактор - чем больше количество совпадающих хэшей, тем больше вероятность того, что компании фактически одинаковы. (Обратите внимание, что при подходе, который я выбрал, если совпадение с хешем 1, хеш 2, 3 и 4 гарантированно совпадут, и так далее в дальнейшем.)
(Также проверьте наличие пустых хэшей и не обращайте внимания - «Компания с ограниченной ответственностью» может сократить пустой хеш, но вы не хотите, чтобы он совпадал с другими пустыми хешами.)
Я использовал этот подход вместе с Левенштейном, чтобы отфильтровать мои возможные дубликаты в порядке правдоподобия - как вы решите, как согласовать этот возможный подход с Левенштейном, будет зависеть от ваших данных; вы, возможно, захотите применить Levenshein к третьему хешу, а не к действительному имени, например - и представить список возможных дубликатов моим деловым людям, чтобы принять окончательное решение, автоматически сопоставив совпадения с самым высоким доверием, где я был уверен, что имена действительно представляли одну и ту же компанию.
Глядя на мой код, я также использовал хеш, который был Soundex преобразованием каждого слова после удаления стоп-слов и т. Д., Хотя мои комментарии отмечают, что Метафон было бы лучше (Я использовал SQL Server, поэтому Soundex был встроен ...)