Я делал такой проект в прошлом столетии.В основном это была консолидация двух клиентских файлов после слияния, и включала имена и адреса из трех разных источников.
Во-первых, как было предложено многими авторами, преобразуйте все распространенные слова, сокращения и орфографические ошибки в общую форму «Апт».«Apatment» и т. Д. До «Apt».
Затем просмотрите имя и укажите первую букву имени, плюс первую фамилию.(Не так просто подумать «Доктор Мед. Сэр Генри де Баскервиль Смит»), но не волнуйтесь, если есть какие-то неясности, просто возьмите оба!Так что если вам повезет, вы получите HBASKERVILLE и HSMYTHE.Теперь избавьтесь от всех гласных, так как именно здесь происходит большинство вариантов написания, так что теперь у вас есть HBSKRVLL HSMTH.
Вы также можете получить эти строки у "Х. Баскервиля", "Сэра Генри Баскервиля Смита" и, к сожалению, "Гарольда Смита", но здесь мы говорим о нечетком совпадении!
Выполните аналогичное упражнение наулица, а также квартиры и почтовые индексы.Но не выбрасывайте исходные данные!
Теперь вы подошли к интересному фрагменту, сначала сравнив каждую из исходных строк и дав, скажем, 50 баллов за каждую строку, которая точно соответствует.Затем пройдитесь по «нормализованным» строкам и дайте, скажем, 20 баллов за каждый, который точно соответствует.Затем пройдитесь по всем строкам и дайте, скажем, 5 баллов за каждые четыре или более подстроки, которые у них общие.Для каждой сравниваемой пары у вас получатся баллы> 150, которые вы можете считать определенным совпадением, некоторые с баллами менее 50, которые вы можете считать несоответствующими, а некоторые между ними с некоторой вероятностью совпадения.
Вам нужно еще немного подправить, чтобы улучшить это, добавив различные правила, такие как «вычесть 20 очков для фамилии« кузнец »».Вы действительно должны продолжать работать и дорабатывать до тех пор, пока не будете довольны полученными совпадениями, но, как только вы посмотрите на результаты, вы получите довольно хорошее представление о том, какой счет считать «совпадением», и какие ложные срабатывания вам нужно избавить.из.