Записывает алгоритмы дедупликации (связывания)
У меня есть стандартная задача дедупликации записей: у меня есть много записей с некоторыми текстовыми (или некоторыми другими) полями, некоторые из которых соответствуют одной и той же сущности. Объединение таких записей является целью задачи.
Для такого рода задач существует несколько широко используемых и простых статистических подходов, таких как " Вероятностная связь между записями". Некоторые из них являются более точными и более сложными, но используют те же идеи, что и https://github.com/datamade/dedupe: они пытаются как-то взвесить каждое поле как меру сходства, а затем линейную композицию взвешенных различий как меру Вся запись сходства.
Но для некоторых задач у меня есть много неизвестных полей, но количество подобных полей довольно велико, как:
record1 : propA = A ; propB = unknown ; propC = unknown ; ....
record2 : propA = A ; propB = B ; propC = unknown ; ....
record3 : propA = unkown ; propB = B ; propC = D ; ....
record4 : propA = A2 ; propB = unknown ; propC = unknown ; ....
record5 : propA = A2 ; propB = B2 ; propC = unknown ; ....
record6 : propA = X2 ; propB = B2 ; propC = D2 ; ....
в этом случае запись1 может быть связана с записью3 через запись2, гораздо более вероятно, чем запись4 с записью6.
Это означает, что мне нужно нечто похожее на кластеризацию графа, но с большим количеством пропусков и действительно огромным количеством узлов и ребер. Мне не нужно точное решение, но должно быть что-то лучшее, поскольку должна существовать классическая статистическая дедупликация.
1 ответ
Dedupe обрабатывает отсутствующие данные и выполняет кластеризацию графов. Существуют и другие парадигмы для связи записей, но, похоже, ваши данные этого не требуют.
Если вы хотите исследовать новые парадигмы, посмотрите на работу Beka Steorts или Майкла Вика.