2013-12-20 2 views
0

У меня есть база данных около 800 000 идентификационных номеров (11 или 13 цифр каждый).Найти похожие записи

Затем у меня есть список из нескольких тысяч идентификационных номеров, которые использовались в качестве ссылки, но они не соответствуют идентификационному номеру в базе данных - в основном из-за ошибки пальца клиента. Обычно это означает, что одна цифра может быть опущена или добавлена ​​или некорректна.

Я ищу, чтобы сделать матч на основе «похожих» идентификационных номеров - что было бы лучшим способом сделать это?

Я достаточно разбираюсь в PowerShell и QLikView, но не уверен, что использовать. Excel из-за количества записей.

ответ

1

Проблема довольно известна при хранении данных. Существуют некоторые решения по качеству данных, чтобы обнаружить такие ошибки, но ни один инструмент не может понять каждую ошибку.

Вы уверены, что все ID, которые посмотреть correct действительно правильный? То есть, можете ли вы сказать, что все матчи хороши, а не случайно совпадают? Рассмотрим случай, когда опечатка или несколько опечаток действительно создают действительный, но неверный идентификатор.

Вторая часть для не-матчей может быть решена в некоторой степени с помощью approximate string matches. То есть вместо того, чтобы думать о ID как значениях вокруг tera, подумайте о строке длиной 11 или 13 символов. Вычисляя Levenshtein distances, вы можете выяснить, по крайней мере, некоторые опечатки.

Даже с нечетким поиском, я боюсь, что вы не сможете восстановить все сломанные ID-коды, если только код не имеет встроенной контрольной суммы или групп цифр. То есть цифры 1-3 идентифицируют что-то, 4-7 что-то еще и так далее. При поиске идентификатора, имеющего бессмысленные подгруппы, вы можете выяснить, какая подгруппа имеет ошибку.

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