Quantcast
Channel: FuzzyDupes – KROLL-SOFTWARE
Viewing all 12 articles
Browse latest View live

Dubletten bearbeiten

$
0
0
 

Nach erfolgter Dublettensuche zeigt das Programm die Dubletten gruppiert an.

Hier wollen Sie

  1. die Dubletten manuell durchsehen um das Ergebnis zu überprüfen
  2. bei dieser Durchsicht die Zuordnung für einzelne Sätze aufheben, bei denen es sich nicht um Dubletten handelt
  3. von den gefundenen Dubletten jeweils alle Sätze bis auf einen automatisch löschen.

Manuelle Durchsicht der Dubletten

Wenn Sie Dubletten in wichtigen Kundendatenbanken ö.ä. suchen, empfiehlt sich eine nachträgliche manuelle Durchsicht des Ergebnisses. Sie würden hierbei die Suche mit einem etwas niedrigerem Schwellenwert durchführen (80-85%), sodass eher zu viele Dubletten gefunden werden. In der manuellen Durchsicht heben Sie dann die Zuordnung zwischen angezeigten Dubletten auf, bei denen es sich nicht um eine Dublette handelt (s.u.). (Sie werden feststellen, dass es bei einzelnen Sätzen auch für den Menschen schwer zu entscheiden ist, ob es sich um eine Dublette handelt oder nicht). Durch die übersichtliche Darstellung der Dubletten ist eine manuelle Durchsicht in relativ kurzer Zeit möglich und lohnt den Aufwand.

Bei Marketingadressen o.ä. Daten, bei denen es nicht viel ausmacht, wenn einige Sätze wegfallen, können Sie evtl. auf die manuelle Durchsicht verzichten. Sie würden hierbei einen etwas höheren Schwellenwert (90-95%) bei der Dublettensuche wählen, sodass nur sichere Dubletten gefunden werden. Diese können Sie dann ohne grosses Risiko automatisch bereinigen (d.h. automatisch Sätze in einem Dublettenpaar löschen, s.u.)

Zuordnung für einzelne Sätze aufheben

Um eine Dubletten-Zuordnung zwischen zwei Sätzen aufzuheben (zu sagen: dies ist keine Dublette) markieren Sie einen Satz und wählen "Durchsicht->Zuordnung aufheben".

TIPP: Diese Aktion erreichen Sie auch durch Rechtsklick mit der Maus auf einen Datensatz.

Löschliste erstellen

Nach der manuellen Durchsicht und Entfernung von ungültigen Dubletten wollen Sie alle Datensätze in Dubletten löschen, sodass je Dublette nur ein Datensatz erhalten bleibt (alle ähnlichen gelöscht werden). Nach diesem Löschvorgang ist Ihre Datenbank frei von Dubletten.

Wählen Sie dazu Menü Dubletten->Löschliste erstellen, um eine Liste der zu löschenden Sätze zuerstellen.

Um den ältesten/jüngsten Satz zu erhalten, teilen Sie dem Programm eine entsprechende Spalte für die Sortierreihenfolge mit. Wählen Sie z.B. eine Spalte created o.ä., sofern Ihre Datenbank eine Spalte mit Erstellungsdaten zu jedem Datensatz enthält. Auch die Autonumber-Spalte in Access und SQL-Server Datenbanken enthält grundsätzlich Werte in chronologisch aufsteigender Reihenfolge und kann zu diesem Zweck verwendet werden.

Dubletten löschen

Nach Erstellung der Löschliste wählen Sie Menü Dubletten->Dubletten löschen, um diese Datensätze aus Ihrer Datenbank zu löschen oder eine temporäre Tabelle Ihrer bereinigten Daten anzuzeigen.

Bitte prüfen Sie vorher, ob das Löschen in Ihrer Tabelle überhaupt zulässig ist. Dies könnte z.B. nicht der Fall sein, wenn diese Tabelle mit anderen Tabellen in Ihrer Datenbank verknüpft ist. Berücksichtigen Sie auch, dass durch Verknüpfungen mit anderen Tabellen durch das Löschen u.U. auch andere Daten gelöscht werden könnten.

Überprüfen Sie also das Datenmodell oder klären Sie mit dem Entwickler der Datenbank, ob Sie ohne Weiteres Datensätze aus dieser Tabelle einfach löschen dürfen.

Das Erstellen einer bereinigten Tabelle ist dagegen gefahrlos möglich und verändert nicht Ihre Datenbank.


Liste exportieren

$
0
0
 

Um das Suchergebnis zu exportieren, wählen Sie Menü "Ansicht->Exportieren". Nach Angabe eines Dateinamens erscheint der Dialog mit den Exportoptionen:

FuzzyDupes speichert die Tabelle in eine Textdatei mit Begrenzungszeichen. Diese Dateien können von den meisten Datenbankprogrammen gelesen werden, z.B. auch von MS-Excel.

  • Wählen Sie die Dateiendung "*.csv", wenn Sie eine CSV-Datei erstellen möchten, z.B. zur Weiterverarbeitung in MS-Excel und vielen anderen Programmen.
  • Wählen Sie einen beliebigen Delimiter (Begrenzungszeichen), für CSV-Dateien Komma (,) oder Semikolon (;)
  • Wählen Sie vorher mit dem Icon "Feldliste" (Menü "Ansicht->Spalten einblenden...") bestimmte Spalten aus und wählen Sie in diesem Dialog "nur sichtbare Spalten exportieren", um nur bestimmte Spalten zu exportieren.

Unscharfes Zusammenführen (unscharfer Import)

$
0
0
 

Neben der Dublettensuche erlaubt FuzzyDupes auch das unscharfe Importieren von Daten. Auf diese Weise können Sie zwei Datenbanken zusammenführen, ohne dass Dubletten entstehen.

  1. Wählen Sie Menü "Dubletten->Datenbank unscharf zusammenführen"
  2. Stellen Sie eine Verbindung zu Ihrer Datenbank her
  3. Wählen Sie eine Tabelle aus
  4. Ordnen Sie die Felder der Quell- denen der Zieltabelle zu
  5. Dabei sind mindestens die als Cluster- und Dublettenspalten angegebenen Spalten erforderlich.
  6. Klicken Sie auf OK

Es erscheint der Dialog mit den Import Optionen:

Wählen Sie eine Option für den Rückgabewert dieser Funktion:

  • Neue Sätze: Nach dem Suchlauf werden neue Sätze Ihrer Importdatenbank angezeigt.
  • Alle Sätze mit Quellenkennung: Es werden alle Sätze Ihrer Projektdatenbank und Ihrer Importdatenbank zusammengefügt angezeigt.
  • Sie sehen eine zusätzliche Spalte mit einer Quellenkennung: 0 für Werte aus Projektdatenbank, 1 für Werte aus der Importdatei.
  • Dubletten: Es werden nur Sätze aus der Importdatei angezeigt, die bereits in der Projektdatenbank (ähnlich) enthalten sind.
  • Zusammengeführtes Ergebnis ohne Dubletten: Das Ergebnis ist eine zusammengeführte und dublettenbereinigte Liste.

Sie können hier noch einmal die Schwellenwerte einstellen. Die Voreinstellung stammt aus Ihren Projekteigenschaften.

Unscharfer Abgleich

$
0
0
 

Neben der Dublettensuche erlaubt FuzzyDupes auch den Abgleich mit einer externen Sperrliste (häufig auch Robinsonliste genannt). Auf diese Weise können Sie aus Ihrer Datenbank Sätze entfernen, die auch in einer Sperrliste enthalten sind.

  1. Wählen Sie Menü "Dubletten->Mit externer Liste abgleichen..."
  2. Stellen Sie eine Verbindung zu einer Datenbank mit der Sperrliste her
  3. Wählen Sie eine Tabelle aus
  4. Ordnen Sie die Felder der Quell- denen der Zieltabelle zu
  5. Dabei sind mindestens die als Cluster- und Dublettenspalten angegebenen Spalten erforderlich.
  6. Klicken Sie auf OK

Es erscheint der Dialog mit den Import Optionen:

Wählen Sie eine Option für den Rückgabewert dieser Funktion:

  • Negativ Abgleich: Nach dem Suchlauf werden alle Sätze Ihrer Projekt-Datenbank angezeigt, die nicht (unscharf) in der Sperrliste enthalten sind.
  • Positiv Abgleich: Nach dem Suchlauf werden nur solche Sätze Ihrer Projekt-Datenbank angezeigt, die auch (unscharf) in der externen Liste enthalten sind.
  • Alle Sätze: Es werden alle Sätze Ihrer Projektdatenbank angezeigt. Eine zusätzliche Spalte enthält den Wert 0, wenn keine Übereinstimmung gefunden wurde, bzw. eine Zeilennummer einer übereinstimmenden Zeile Ihrer externen Liste.

Sie können hier noch einmal die Schwellenwerte einstellen. Die Voreinstellung stammt aus Ihren Projekteigenschaften.

Editor für Normalisierungs-Regeln

$
0
0
 

Wählen Sie im Hauptmenü "Extras->Normalisierungen bearbeiten".

Es öffnet sich der Editor für Normalisierungs-Regeln.

Zu jedem benannten Format können Sie eine Beschreibung, 3 verschiedene Eltern-Formate und unbegrenzt viele Ersetzungsregeln bearbeiten.

Die Beschreibung dient ausschließlich der besseren Übersichtlichkeit.

Erbt von: Das aktuelle Format erbt alle Regeln der bis zu 3 gewählten Eltern-Formate.

Suchen / Ersetzen: Geben Sie hier die zu suchende und die zu ersetzende Zeichenkette ein. Geben Sie eine leere Zeichenfolge für Ersetzen ein, wenn die gesuchte Zeichnfolge gelöscht werden soll. Beachten Sie, dass die Suchzeichenfolgen nicht auf andere Weise in Ihren Daten vorkommen. Wählen Sie evtl. führende Leerzeichen bei Abkürzungen, wenn Ihre gesuchte Zeichenfolge stets mit einem führenden Leerzeichen in den Daten erscheint.

Falls das gewählte Format die Standard Normalisierung einschließt, werden bereits bei der Eingabe die Zeichenfolgen durch die Standard-Normalisierung bearbeitet und geändert.

Wählen Sie Neu, um ein neues Format zu erstellen. Markieren Sie erfordert Standard Normalisierung für alle Formate per Voreinstellung.

Die Standard Normalisierung wandelt die Zeichen in Großbuchstaben um, ersetzt Sonderzeichen und Umlaute, etc. Die Standard Normalisierung ist für Adressdaten und ähnliche Daten in jedem Fall erforderlich

 

divider

Glossar

$
0
0

Clusterbildung

Ein unscharfer Vergleich von allen Datensätzen mit allen ist nicht möglich, da die Anzahl der einzelnen Vergleiche schnell zu einer astronomisch hohen Anzahl von Vergleichen führen würde.

Jede Software zur Dublettensuche wird hier also eine Vorauswahl treffen müssen, bei der jene Datensätze zu Blöcken zusammengefasst werden, die sich zum unscharfen Vergleich lohnen.

FuzzyDupes verwendet ein Verfahren zur Clusterbildung, welches sehr schnell zuverlässige und kleine Cluster ermittelt. Das Verfahren basiert auf N-Grammen, das sind kleine Teilzeichenketten, die das Programm in sehr großer Anzahl verarbeiten kann.

Dieses Verfahren ist mathematisch exakt und die Clustergröße lässt sich dabei frei einstellen. Die aktuelle, durchschnittliche und maximale Clustergröße zeigt das Programm während der Dublettensuche an.

Experimentieren Sie ruhig auch einmal mit anderen Clusterspalten, um zu sehen, ob Sie dadurch ein besseres Ergebnis bekommen oder die Suche beschleunigen können.

Normalisierung

Bevor die Zeichenketten der einzelnen Spalten miteinander unscharf verglichen werden, werden die Daten (temporär im Speicher) normalisiert. Dabei werden Sonderzeichen und Umlaute ersetzt und einige gebräuchliche Abkürzungen und Schreibweisen umgewandelt (z.B. strasse, straße -> str.)

Unscharfer Vergleich

Hier wird mit geeigneten Algorithmen eine (prozentuale) Übereinstimmung der einzelnen Spalten errechnet und daraus (unter Berücksichtigung verschiedener Gewichtungen) eine durchschnittliche Übereinstimmung errechnet.

Es sind verschiedene Pattern-Matching Algorithmen bekannt, die sich zu diesem Zweck mehr oder weniger gut eignen. Jeder Hersteller einer Dubletten-Software wird hier sein eigenes Verfahren einsetzen. Geeignete Verfahren sollten u.a. gut mit Permutationen (Vertauschungen, Verdrehern) der Zeichen klarkommen, um eine gute Trennschärfe zu erzielen.

Liegt die prozentuale Übereinstimmung am Ende über dem festgelegten Schwellenwert, werden diese Sätze als Dublette markiert (erhalten dieselbe fuzzydupes_ID).

Trennschärfe

Die Qualität einer Dublettensuche wird nicht allein daran gemessen, ob möglichst viele Dubletten gefunden werden, sondern auch daran, wie zuverlässig das Ergebnis ist, bzw. wie viele falsche Dubletten ermittelt werden.

Wichtig ist zudem, welchen Einfluss Änderungen des Schwellenwertes auf das Suchergebnis haben. Ungünstig wäre es, wenn kleine Änderungen des Schwellenwertes zu großen Unterschieden im Suchergebnis führen und die Trennschärfe durch kleinere Schwellenwerte negativ beeinflusst wird.

Sie werden feststellen, dass der Schwellenwert bei FuzzyDupes keinen kritischen Einfluss auf das Suchergebnis hat (dass es etwa auf kleinste Änderungen nach dem Komma ankommt). Selbst bei niedrigeren Schwellenwerten erreicht FuzzyDupes eine sehr gute Trennschärfe.

FuzzyDupes EULA

$
0
0

Lizenzbestimmungen

§ 1 Gegenstand

Gegenstand dieser Lizenzbestimmungen ist das Computerprogramm FuzzyDupes Version 8.x, die Online-Anwenderdokumentation sowie sonstiges zugehöriges schriftliches Material, nachfolgend zusammenfassend als Software bezeichnet.

§ 2 Zusicherungen

(1) Diese Software wird Ihnen zur Verfügung gestellt "so wie sie ist".

(2) Kroll Software-Entwicklung macht keinerlei Zusicherungen bezüglich Funktionstüchtigkeit, Fehlerfreiheit oder Verwendbarkeit zu einem bestimmten Zweck.

§ 3 Evaluierung

(1) Es wird eine kostenlose und unverbindliche Demo-Version bereitgestellt. Diese dient ausschließlich zur Evaluierung der Software und darf nicht produktiv eingesetzt werden.

(2) Schon die Nutzung der Suchergebnisse erfordert eine kostenpflichtige Nutzungslizenz.

§ 4 Nutzungslizenz

(1) Die Nutzungslizenz berechtigt zum zeitlich unbegrenzten Einsatz der Software an einem Arbeitsplatz. Eine zeitgleiche Nutzung auf mehr als einer Hardware erfordert eine Mehrfachlizenz.

§ 5 Auslieferung

(1) Diese Software wird ausschließlich online zum Download angeboten. Auch bei Lizensierung werden keine Datenträger oder gedruckten Handbücher dem Kunden überlassen.

§ 6 Dekompilierung und Programmänderungen

(1) Die Rückübersetzung des überlassenen Programmcodes in andere Codeformen (Dekompilierung) sowie sonstige Arten der Rückerschließung der verschiedenen Herstellungsstufen der Software (Reverse-Engineering) einschließlich einer Programmänderung sind unzulässig.

(2) Die Entfernung eines Kopierschutzes oder ähnlicher Schutzroutinen ist unzulässig.

(3) Urhebervermerke, Seriennummern sowie sonstige der Programmidentifikation dienende Merkmale dürfen auf keinen Fall entfernt oder verändert werden.

§ 7 Haftung

(1) Bei Schäden und Folgeschäden, die durch den Einsatz dieser Software entstehen, haftet Kroll Software-Entwicklung maximal bis zum 1-fachen Kaufpreis.

(2) Die Software weist durch Warnhinweise darauf hin, dass die Dublettensuche mit Sicherungskopien einer Datenbank durchgeführt werden soll. Für Datenverlust an den bearbeiteten Datenbanken übernimmt Kroll Software-Entwicklung keine Haftung.

(3) Die Haftung für sonstigen Datenverlust wird auf den typischen Wiederherstellungsaufwand beschränkt, der bei regelmäßiger und gefahrentsprechender Anfertigung von Sicherungskopien eingetreten wäre.

§ 8 Schriftform

(1) Änderungen oder Ergänzungen dieser Vertragsbedingungen, besondere, über die übliche Vertragsabwicklung hinausgehende Vereinbarungen sowie sonstige besondere Zusicherungen und Abmachungen dürfen von den Mitarbeitern des Lieferanten nicht erklärt werden. Sie sind nur nach einer schriftlichen Bestätigung durch den Lieferanten verbindlich.

§ 9 Gerichtsstand

(1) Gerichtsstand ist in jedem Fall Altdorf (URI), Schweiz

 

Kroll Software-Entwicklung, Altdorf/CH, den 18.11.2009

KS.CRM DeDupe PlugIn


FuzzyDupes 8.5.4 funktioniert in Verbindung mit ORACLE Datenbank Servern

$
0
0

Durch Hinweis eines Anwenders und eine kleine Anpassung kann sich FuzzyDupes nun wieder fehlerfrei mit ORACLE Datenbankservern verbinden.

An dieser Stelle vielen Dank für die genaue Fehlerbeschreibung.

Was ist eigentlich Ähnlichkeit ?

$
0
0

Sowohl bei der Dublettensuche als auch bei den Pulsierenden Neuronen-Netzwerken (Spiking Neural Networks, SNNs) spielt der Ähnlichkeitsbegriff eine große Rolle.

Ähnlichkeit ist mathematisch schwer auszudrücken.

Die heute bekannten Ansätze gehen in zwei Richtungen:

  1. Distanz (metrische Verfahren)
  2. Anzahl übereinstimmender Elemente im Verhältnis zur Gesamtmenge (stochastische Verfahren)

Distanzen

Gemeint ist hier vorwiegend die Entfernung in Form von Rechenschritten oder grundlegenden Operationen wie Einfügen, Löschen und Ersetzen von Elementen, um das Eine in das Andere zu überführen.

Das bekannteste dieser Verfahren ist die Levenshtein-Distanz, die genau wie eben erläutert funktioniert. Die Berechnung ist nicht ganz einfach, denn wir suchen dabei eine optimale Lösung innerhalb eines Suchbaumes.

Selbst wenn diese Verfahren "metrisch" genannt werden, sind sie eigentlich weit entfernt von dem Begriff der Metrik, selbst wenn dieser auf faszinierende Weise sehr weit interpretiert werden kann, ganz abhängig von der Metrik, die man dabei verwendet, wenn Sie verstehen, was ich meine 😉

Pearson ist dabei klar statistisch, Manhattan ist dagegen rein geometrisch, zwischen diesen liegen Welten mit kaum für mich erkennbaren Berührungspunkten.

Jaccard-Koeffizient

Ganz anders und denkbar einfach das Verfahren des Schweizer Botanikers Paul Jaccard:

Um den Jaccard-Koeffizient zweier Mengen zu berechnen, teilt man die Anzahl der gemeinsamen Elemente durch die Größe der Vereinigungsmenge.

Wikipedia

Man könnte es sogar deutlich weniger umständlich ausdrücken, liebe Mathematikfreunde 😉
Wenn man wollte, sogar ganz ohne dabei auch noch die Mengenlehre zu bemühen, aber sei's drum.

Permutationen

Wichtig in diesem Zusammenhang ist der Begriff der Permutation. Denn es geht darum, wie gut die oben genannten Verfahren sämtliche Permutationen berücksichtigen können, und dabei versagen sie alle auf die eine oder andere Weise.*

*) bitte korrigieren Sie mich, wenn Sie anderer Ansicht sind.

Ein gutes Ähnlichkeitsmass wäre in der Lage, sämtliche Permutationen gleichmässig zu berücksichtigen.

Detlef Kroll

Beispiel:

"Detlef Kroll"
"Kroll, Detlef"

Ein Mensch erkennt sofort, dass es sich um denselben Namen handelt und würde dies sogar als identisch bezeichnen, nur eben anders herum geschrieben.

Die Levenshtein-Distanz müsste nun "Kroll, ", also 7 Zeichen löschen, dann ein Leerzeichen und 5 Zeichen "Kroll" am Ende einfügen. Und kommt damit auf eine Ähnlichkeit von exakt 0.5 (13 Operationen bei n=13). Das ist alles in allem keine besonders smarte Lösung. Um besser zu sein müssten Blockoperationen zugelassen werden, aber das könnte die Suche nach der Lösung bereits NP-Hart machen, jedenfalls bei größeren Sequenzen wie einem ganzen Genom mit einigen Millionen Elementen (z.B. bei einer Maus).

Bedeutung für die Mathematik

Wie oben erwähnt soll sich dieser Artikel nicht allein auf die Dublettensuche beziehen.

Der Begriff der Ähnlichkeit hat eine grundlegende Bedeutung wenn es um Unterscheidung geht oder wenn wir etwas klassifizieren wollen. Beides wird überhaupt erst möglich, wenn wir die Ähnlichkeit zwischen zwei Entitäten zuverlässig und übereinkommend ausdrücken können!

  Lesen Sie dazu auch den Abschnitt "Was ist eigentlich Intelligenz ?" auf dieser Seite.

Was es allgemein mit der Kategorisierung und der Clusteranalyse auf sich hat, und welche Verfahren dazu auch noch geeignet wären, und wie dies im Zusammenhang mit anderen Problemen steht, dazu in einem späteren Artikel.

Selbstähnlichkeit

Selbstähnlichkeit ist eine Eigenschaft von fraktalen Mustern, wie sie in Kochkurven, im Apfelmännchen oder in der Natur bei Schneeflocken auftritt. Mandelbrot versuchte dem mit gebrochenen Dimensionen beizukommen, ein Ansatz der mir wenig gefällt, denn Dimensionen sind mir heilig, müssen meiner Ansicht nach ganzzahlig sein und rechtwinklig aufeinander stehen, sonst sind es keine. Und man sollte nicht zu viele von Ihnen für eine Erklärung bemühen, sagen wir: Nicht mehr als 5. Dann bin ich zufrieden.

Nein, die Fraktale ergeben sich allein aus dem Umstand, dass hier zwei Kräfte gegeneinander wirken und sich dabei gegenseitig durchdringen. Dazu braucht es soweit überhaupt keine Dimensionen. Der Begriff der Transzendenz (gegenseitige Durchschreitung) beschreibt dieses Phänomen für mich bereits vollständig. Ein gutes Beispiel aus der Physik ist das Gekoppelte Pendel, wo zwei Pendel* durch eine Spiralfeder miteinander verbunden sind.

*) Der Wikipedia Artikel hinterlässt den Anschein, dass gekoppelte Pendel gut berechenbar wären und beschreibt auch schön die verschiedenen Schwingungszustände, ignoriert dabei aber, dass die Übergänge zwischen diesen Zuständen nicht vorhersagbar sind, wenn die Pendel in mehreren Versuchen von verschiedenen Punkten losgelassen werden. Einen guten Einstieg zum Verständniss von solch chaotischem Verhalten liefert die leicht nachvollziehbare Bifurkation

Dublettensuche

$
0
0

Optionen

Dubletten (Standard): Die Dublettensuche liefert nur gefundene Dubletten zurück.

Alle Sätze: Die Dublettensuche liefert alle Sätze zurück. In einer neuen Spalte FuzzyDupesID wird ein neuer Wert zurückgegeben, der für unterschiedliche Sätze eindeutig, für ähnliche Sätze identisch ist.

Sie können hier noch einmal die Schwellenwerte einstellen. Die Voreinstellung stammt aus Ihren Projekteigenschaften. Siehe Projekt Assistent zur Erläuterung dieser Schwellenwerte.

Dublettensuche starten

Klicken Sie auf "OK" um die Dublettensuche zu starten.

Suchergebnis

Nach der Dublettensuche zeigt das Programm das Suchergebnis gruppiert nach Dubletten an. Wählen Sie Ansicht->Exportieren um das Ergebnis in eine CSV-Datei zu speichern.

(Beispiel Ergebnisanzeige in FuzzyDupes)

Menü „Ansicht“

$
0
0

Wählen Sie Menü "Ansicht->Spalten einblenden..." oder klicken Sie auf das Icon Feldliste, um weitere Spalten Ihrer Datenbanktabelle ein- oder auszublenden.

Wählen Sie Menü "Ansicht->Exportieren..." um die aktuelle Ansicht als CSV-Datei zu speichern.

Viewing all 12 articles
Browse latest View live




Latest Images