2016-10-12 5 views
1

Давайте рассмотрим пример наличия двух источников данных с размерами данных «m» и «n» соответственно. Оба набора данных представляют собой таблицы SQL, имеющие одну и ту же схему, но разные данные. Наша цель - «разбить» нечеткие матчи (между наборами данных), которые достаточно похожи, чтобы рассмотреть «идентичных».Учитывая 2 многомерных набора данных, идентифицируйте записи, представляющие один и тот же объект, которые немного отличаются

CREATE TABLE player(
    id Integer, 
    fname VARCHAR(64), 
    lname VARCHAR(64), 
    birth_dt datetime, 
    weight Integer 
) 

В то время как большинство из общего числа комбинаций (т * п) не будет матчей, мы хотели бы, чтобы флаг «подобные» совпадения, как следующее:

{"fname": "John", "lname": "Smith", "birth_dt": "6/6/91", "weight": 220} 
{"fname": "Jack", "lname": "Smith", "birth_dt": "6/6/91", "weight": 210} 

Есть ли какие-либо инструменты (открытоугольной источник или нет), которые отлично справляются с определением и помечением этих «совпадений»?

ответ

1

Это проблема «record linkage», и это ключевое слово поможет вам найти большую литературу о проблеме.

Открытый исходный код, библиотека python dedupe, обеспечивает один комплексный подход.

+0

Мы фактически использовали Dedupe, и это оказалось отличным решением! Оставляя это открытым, чтобы поощрять дополнительные ответы ... –

+0

В будущем, пожалуйста, раскрывайте свою принадлежность к дедупе, когда предлагаете, где вопрос еще не об этом. – meagar

+0

спасибо meagar, я сделаю это. – fgregg