Frage

Ich habe mehrere Quellen von Tabellen mit personenbezogenen Daten wie folgt aus:

SOURCE 1
ID, FIRST_NAME, LAST_NAME, FIELD1, ...
1, jhon, gates ...

SOURCE 2
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
1, jon, gate ...

SOURCE 3
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
2, jhon, ballmer ...

Also, vorausgesetzt, dass Datensätze mit ID 1, aus Quellen 1 und 2 ist die gleiche Person, mein Problem ist, wie Sie feststellen, ob ein Datensatz in jeder Quelle, die gleiche Person darstellt . Darüber hinaus sicher nicht vorhanden, alle Einträge in allen Quellen. Alle Namen sind in Spanisch geschrieben, vor allem.

In diesem Fall muss die exakte Anpassung entspannt sein, weil wir davon ausgehen, die Datenquellen nicht rigurously geprüft gegen das offizielle Büro der Identifizierung des Landes. Auch müssen wir davon ausgehen, Tippfehler sind häufig , weil die Natur der Prozesse, die Daten zu sammeln. Was mehr ist, ist die Menge der Datensätze ist etwa 2 oder 3 Millionen in jeder Quelle ...

Unser Team hatte wie dies in etwas gedacht: Erstens, wie ID-Nummer in ausgewählten Feldern genaue Abstimmung erzwingen, und Namen zu wissen, wie schwer das Problem sein kann. Zweitens sind die Kriterien entspannend und zählen, wie viel Datensätze mehr können angepasst werden, aber hier ist, wo das Problem auftritt: , wie man tun, um die Kriterien zu entspannen, ohne zu Lärm zu erzeugen, weder zu viel Einschränkung

Welches Werkzeug kann effektiver sein, diese ?, zum Beispiel zu handhaben, wissen Sie über einige especific Erweiterung in irgendeine Datenbank-Engine diese Anpassung zu unterstützen? Wissen Sie, über clevere Algorithmen wie soundex diese ungefähre Übereinstimmungen zu handhaben, aber für spanische Texte?

Jede mögliche Hilfe würde geschätzt!

Danke.

War es hilfreich?

Lösung

Der Kern des Problems ist, eine oder mehr Maßnahmen zur Entfernung von Einträgen zwischen jedem Paar zu berechnen und sie dann gleich sein zu berücksichtigen, wenn einer der Abstände kleiner als eine bestimmte Schwelle akzeptabel. Der Schlüssel ist die Analyse auf Setup und dann variieren die akzeptabler Entfernung, bis Sie erreichen, was Sie für den besten Kompromiss zwischen falsch-positive und falsch-negative sein.

Eine Abstandsmessung könnte Laut sein. Ein weiter man bedenkt, könnte, sind die Levenshtein oder Editierdistanz zwischen dem entires, die Fehler zu messen versuchen würde, .

Wenn Sie eine angemessene Vorstellung davon haben, wie viele Personen Sie haben sollten, dann ist Ihr Ziel ist es, den Sweet Spot zu finden, wo Sie über die richtige Anzahl von Personen bekommen. Machen Sie Ihre passende zu fuzzy und Sie werden zu wenige haben. Machen Sie es zu restriktiv, und Sie werden zu viele haben.

Wenn Sie in etwa wissen, wie viele Einträge eine Person haben sollte, dann können Sie das als Metrik verwenden, um zu sehen, wenn Sie in der Nähe bekommen. Oder Sie können die Anzahl der Datensätze in der durchschnittlichen Anzahl der Datensätze für jede Person teilen und eine grobe Anzahl von Personen erhalten, die Sie peilen.

Wenn Sie keine Zahlen zu verwenden, dann sind links Sie Gruppen von Datensätzen aus Ihrer Analyse Kommissionierung und Überprüfung von Hand, ob sie wie die gleiche Person aussehen oder nicht. So ist es erraten und zu überprüfen.

Ich hoffe, das hilft.

Andere Tipps

Das klingt wie ein Customer Data Integration Problem rel="nofollow. Suchen Sie auf diesen Begriff und Sie könnten ein paar mehr Informationen finden. Außerdem haben einen Poke um innerhalb The Data Warehousing Institude , und Sie könnten einige Antworten auch dort finden.

Edit: Darüber hinaus hier Artikel, die Sie auf spanisch Lautanpassung interessieren könnten.

Ich habe vor etwas ähnliches zu tun und was ich tat, war eine Doppel Metaphone Laut Suche auf den Namen.

Bevor ich die Namen verglichen obwohl, habe ich versucht, durch Nachschlagen den Namen in einem Nickname Tabelle alle Namen / Spitznamen Unterschiede zu normalisieren weg ich herstellte. (I die Tabelle mit Volkszählungsdaten bevölkert Ich fand online) So können die Leute genannt Bob wurde Robert, Alex wurde Alexander, wurde Bill William etc.

Bearbeiten :. Double Metaphone speziell besser sein wurden entwickelt, als Soundex und Arbeit in anderen Sprachen als Englisch

SSIS, versuchen Sie die Transformation für Fuzzysuche mit

Nur einige Details hinzufügen, um dieses Problem zu lösen, ich diese Module für Postgresql gefunden hatte 8.3

Sie könnten versuchen, die Namen canonicalise indem sie mit einem Wörterbuch verglichen werden. Dies würde es ermöglichen Ihnen einige gemeinsame Tippfehler zu erkennen und zu korrigieren.

Klingt für mich haben Sie ein Record Linkage Problem. Sie können die Referenzen in der Verbindung verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top