Ein Vergleich der Methoden automatisierter Dublettenerkennung.

Größe: px
Ab Seite anzeigen:

Download "Ein Vergleich der Methoden automatisierter Dublettenerkennung."

Transkript

1

2 Universität Hamburg Fachbereich Informatik Arbeitsbereich Softwaretechnik Diplomarbeit Ein Vergleich der Methoden automatisierter Dublettenerkennung. Christoph Kurek Rheinaustr Mannheim Studiengang Wirtschaftsinformatik Matrikelnummer Erstgutachter: Dr. Guido Gryczan Zweitgutachter: Prof. Dr. Norbert Ritter

3 Inhaltsverzeichnis 1 Einleitung Motivation Zielsetzung Aufbau Grundlagen der Dublettenerkennung Einordnung und Relevanz des Problems Formale Definition Ein iterativer Algorithmus zur Dublettenerkennung Fokus der Arbeit und Einschränkung des Problems Ähnlichkeitsbestimmung Token-basierte Ähnlichkeitsfunktionen Jaccard-Ähnlichkeit Cosinus-Ähnlichkeit mit tf/idf Gewichtung Edit-basierte Ähnlichkeitsfunktionen Levenshtein und Needleman-Wunsch Distanz Affine Gapkosten, Smith-Waterman und Smith-Waterman-Gotoh Distanz Jaro und Jaro-Winkler Distanz Hybride Ähnlichkeitsfunktionen Erweiterte Jaccard Ähnlichkeit Monge-Elkan Ähnlichkeit Soft tf/idf Ähnlichkeit Dublettenbestimmung Ähnlichkeitsbasierte Entscheidungsverfahren Ein Attribut Verfahren Durchschnittverfahren Probabilistische Entscheidungsverfahren Bayes-Entscheidungsregel der kleinsten Fehlerrate Die kostenoptimale Bayes-Entscheidungsregel Die Klasse der möglichen Dubletten Maschinelles Lernen Entscheidungsbäume Support Vector Machine Nächste-Nachbarn-Klassifikation... 32

4 4.3.4 Künstliche neuronale Netze Erfolgsmessung der Dublettenerkennung Anforderungen, Vorgehensweise und Versuchsaufbau Die Datenbasis Anforderungen an die Umsetzung der Evaluation Ähnlichkeitsbestimmung Dublettenbestimmung Erfolgsmessung Evaluationsimplementierung Ähnlichkeitsbestimmung Dublettenbestimmung und Erfolgsmessung Durchführung und Ergebnisse der Evaluation Ähnlichkeitsbestimmung Dublettenbestimmung Naive Bayes Entscheidungsbäume Support Vector Machine Nächste-Nachbarn-Klassifikation Künstliche neuronale Netze Erfolgsmessung und Ergebnisanalyse Erfolgsmessung bei dem ähnlichkeitsbasierten Entscheidungsverfahren Erfolgsmessung bei dem Verfahren des maschinellen Lernens Analyse und Beurteilung der Ergebnisse Analyse der Fehlerbilder Zusammenfassung, Fazit und Ausblick Zusammenfassung Fazit Ausblick Anhang A Anhang B Anhang C Anhang D Literaturverzeichnis Eidesstattliche Erklärung... 79

5

6 1 Einleitung Durch die ständig wachsende Menge an Daten in der Datenverarbeitung ergeben sich zwangsläufig Datenqualitätsprobleme. Eines der sehr häufig anzutreffenden Probleme dieser Art sind Dubletten. Als Dubletten bezeichnet man verschiedene Datensätze, die dasselbe Realweltobjekt repräsentieren [vgl. Elma07, S.1]. In dieser Arbeit geht es um die Methoden der automatischen Erkennung von Dubletten und einen Vergleich dieser Methoden, sowohl untereinander als auch gegenüber einer manuellen Dublettenerkennung. 1.1 Motivation Das Entstehen von Dubletten kann unerwünscht sein, wenn es sich um mehrfach geführte Kunden in einem Kundenmanagementsystem, verschiedene Repräsentationen eines Produkts in einer Produktdatenbank oder doppelt gebuchte Bestellungen handelt. Die Ursachen, weshalb es zu unerwünschten Dubletten kommt, sind vielfältig und können sowohl auf maschinelle Vorgänge wie Datenintegration in einem Data Warehouse, als auch auf manuelle Erfassung von Daten, beispielsweise am Telefon, zurückgeführt werden. Die Folgen sind oft nicht unerhebliche wirtschaftliche Schäden. So kann es zum Beispiel zur doppelten Aussendung eines Kundenkatalogs an den gleichen Empfänger oder zur unnötigen Lagerhaltung identischer Ersatzteile kommen. Eine aufgrund schlechter Daten verfälschte Auswertung und die daraus folgenden falschen, strategischen Entscheidungen können sehr weitreichende Folgen haben. Aus diesen Gründen ist Dublettenerkennung eine wichtige Maßnahme bei der Sicherung der Datenqualität. Dublettenerkennung kann bei der Erfassung neuer Daten erfolgen, indem ein neu erfasster Datensatz online mit den existierenden Datensätzen abgeglichen wird. Als Folge wird dem Benutzer eine Liste möglicher Dubletten präsentiert. Dieser kann dann entscheiden, ob der neue Datensatz angelegt werden soll, oder dieser bereits existiert. In bereits existierenden Datenquellen erfolgt meistens ein Batchlauf, in dem Dubletten möglichst automatisch erkannt werden sollen. Das Ziel dabei ist es, die Eingriffe von Benutzern möglichst gering zu halten. Auch eine Suche nach Dubletten zwischen zwei verschiedenen Quellen kann sinnvoll sein, um eine Verknüpfung der Daten zu erreichen. Dadurch ergibt sich eine Datenanreicherung und somit einen Informationsgewinn. Ein Beispiel dafür könnte der Abgleich der Daten eigener Kunden mit den Daten einer Insolvenzdatenbank sein, um so zahlungsunfähige Kunden zu identifizieren und weitere Geschäfte mit diesen zu verhindern. Unter Dublettenerkennung versteht man prinzipiell einen paarweisen Vergleich von Datensätzen. Als Ergebnis des Vergleichs ergeben sich eine oder mehrere Maßzahlen für die Ähnlichkeit von Datensatzpaaren. Die Identität eines Datensatzpaares ist das trivialste Maß und allein für die Dublettenerkennung wenig geeignet [vgl. Naum10, S.1]. Vielmehr müssen Ähnlichkeiten zwischen eventuell leicht unterschiedlichen Attributwerten der Datensätze ermittelt werden. Sind diese Ähnlichkeiten ausreichend groß, so spricht man von einer Dublette. Um die Entscheidung zu treffen, ob die Ähnlichkeit ausreichend groß ist, bedient 1

7 man sich Entscheidungsverfahren aus dem Bereich der Wahrscheinlichkeitstheorie oder des maschinellen Lernens. Methoden der Dublettenerkennung sollen in erster Linie effektiv, also von hoher Qualität sein. Ziel ist es, möglichst viele der tatsächlich vorhandenen Dubletten zu finden. Gleichzeitig sollen möglichst wenige Datensätze als Dubletten erkannt werden, die keine Dubletten sind. Hier spielen das gewählte Ähnlichkeitsmaß und die Entscheidungsmethodik eine entscheidende Rolle. Die Messung der Effektivität einer Dublettenerkennungsmethode ist kein triviales Unterfangen. Um dies zu bewerkstelligen, muss man die Dublettenzuordnungen bereits kennen. Es gibt es kaum frei zugängliche Quellen, bei denen die Zuordnungen, auch golden standard genannt, bekannt sind. Es liegt zum einen daran, dass echte Daten, zum Beispiel in Form von großen Adressdatenbanken, oft dem Datenschutz beziehungsweise einem Betriebsgeheimnis unterliegen. Zum anderen ist die Bestimmung der Dublettenzuordnungen ein zumindest teilmanueller und deshalb aufwendiger Prozess. Diese Zuordnung für größere Datenbestände zu bestimmen, kann hunderte von Arbeitsstunden an Aufwand bedeuten [vgl. Naum10, S.65f]. 1.2 Zielsetzung Das Ziel dieser Arbeit ist ein Vergleich aktueller Methoden der Dublettenerkennung. Als Grundlage dazu dient ein großer Bestand deutscher Geschäftsadressen, die über Jahre manuell sorgfältig auf die Darstellung des gleichen Realweltobjekts, in dem Fall einer Firma, geprüft wurden. Mithilfe dieses Datenbestands ist es möglich zu prüfen, mit welchen automatisierten Methoden der Dublettenerkennung ein ähnlich gutes Ergebnis wie bei der manuellen Prüfung erzielt werden kann. Am Ende soll die Frage beantwortet werden, welche Methoden der Dublettenerkennung innerhalb der speziellen Domäne der Geschäftsadressen die höchste Effektivität besitzen, um diese Daten automatisch auf Dublettenzuordnungen zu prüfen. Auch die manuellen Dublettenzuordnungen sollen überprüft werden und die hier erzielten Fehlerquoten mit den Fehlerquoten der automatischen Methoden verglichen werden. Neben dieser zentralen Fragestellungen ergeben sich weitere Nebenfragen, wie zum Beispiel ob es wirklich signifikante Unterschiede zwischen den Methoden gibt. Des Weiteren soll geprüft werden, inwiefern sich der Prozess der Dublettenfindung automatisieren oder der in vielen Fällen hohe manuelle Aufwand zumindest deutlich reduzieren lässt, ohne Einbußen bei der Qualität. 1.3 Aufbau Im zweiten Kapitel dieser Arbeit werden die Bedeutung und Einordnung der Dublettenerkennung als eine Datenqualitätsmaßnahme beschrieben und der Fokus der Arbeit verdeutlicht. Im Kapitel drei werde ich die verschiedenen Methoden und Algorithmen für Ähnlichkeitsmaße zur Messung der Ähnlichkeit von Zeichenketten vorstellen, die für die Ähnlichkeitsbestimmung von Attributwerten eingesetzt werden. Das vierte Kapitel stellt Methoden der Dublettenbestimmung vor, das heißt die Methoden der Entscheidung, ob es 2

8 sich bei den gegebenen Datensätzen um eine Dublette handelt oder nicht. Hier liegt der Schwerpunkt auf den Methoden des maschinellen, überwachten Lernens. Auch die Methoden zur Messung des Erfolgs dieser Entscheidungen werden vorgestellt, da diese ein zentrales Instrument zum Vergleich der Methoden der Dublettenerkennung sind. Kapitel fünf beschreibt die Vorgehensweise bei der Evaluation und den verwendeten Versuchsaufbau. Es wird zuerst die Datenbasis für die Evaluation vorgestellt. Anschließend widme ich mich den Anforderungen an den Aufbau der Evaluation. Schließlich erläutere ich, wie diese Anforderungen umgesetzt wurden und beschreibe die dabei entstandenen Implementierungen. Im Kapitel sechs geht es um die Durchführung der Evaluation und die dabei entstandenen Ergebnisse. Bei der Beschreibung der Durchführung gehe ich insbesondere auf die verwendeten Methoden und deren Konfiguration. Danach erläutere ich die bei der Erfolgsmessung der Dublettenerkennung entstandenen Ergebnisse. Dabei liegt der Fokus auf dem Vergleich der manuellen und der automatisierten Dublettenerkennung. Anschließend stelle ich die entstandenen Fehlerbilder der automatisierten Dublettenerkennung vor und zeige mögliche Lösungen für die Fehler auf. Kapitel sieben fasst die gesamte Evaluation zusammen. Hier werde ich ein Fazit aus den ermittelten Ergebnissen ziehen und versuche einen Ausblick auf die mögliche Fortführung der Arbeit, basierend auf den erzielten Ergebnissen, zu geben. 3

9 2 Grundlagen der Dublettenerkennung Im folgenden Kapitel werde ich das Problem der Dublettenerkennung genau definieren. In Kapitel 2.1 beschreibe ich die Dublettenerkennung als eine Maßnahme zur Verbesserung der Daten- und Informationsqualität und verdeutliche die wirtschaftliche Relevanz des Themas mithilfe von Beispielen. In Kapitel 2.2 werden der Input und der Output einer Dublettenerkennung formal definiert. In Kapitel 2.3 wird die Vorgehensweise einer iterativen Dublettenerkennung vorgestellt. In Kapitel 2.4 schließlich schränke ich das Thema ein und gehe auf die in dieser Arbeit adressierte Problemstellung genauer ein. 2.1 Einordnung und Relevanz des Problems Bei der Dublettenerkennung geht es um die Identifizierung unterschiedlicher Datensätze, die dasselbe, eindeutige Realweltobjekt repräsentieren [vgl. Elma07, S.1]. ID Vorname Nachname Telefonnummer 1 Max Mustermann +49 (40) max@mustermann.de 2 Max Mustermann +49 (40) max@mustermann.de 3 Max Münstermann 040/ max@mustermann.de Tabelle 1 Ein Beispiel für Dubletten. Die Tabelle 1 zeigt ein Beispiel für Dublettendatensätze, kurz Dubletten genannt. Die Datensätze mit ID 1 und ID 2 sind exakte Dubletten. Sie sind über alle Attributwerte, außer dem Wert für Primärschlüssel ID, identisch. Der Datensatz mit ID 3 repräsentiert offensichtlich dasselbe Realweltobjekt wie die Datensätze 1 und 2, ist aber nicht mit diesen identisch. Es handelt sich um eine unscharfe Dublette. Das Erkennen von exakten Dubletten ist relativ trivial und lässt sich mithilfe einer einfachen Sortierung problemlos realisieren [vgl. Naum10, S.1]. Das Erkennen von unscharfen Dubletten ist hingegen ein komplexer Prozess, der den Schwerpunkt dieser Arbeit bildet. Dublettenerkennung ist kein neuer Forschungszweig. Einer der ersten Definitionen, hier unter dem Begriff automatic record linkage, wurde bereits im Jahr 1959 verfasst [vgl. Newc59]. Dublettenerkennung gehört zu dem Forschungsbereich Informations- und Datenqualität. Qualität wird von Juran als Gebrauchstüchtigkeit (fitness for use), bezeichnet [vgl. Jura91, S.14]. Diese Definition wird für den Bereich Datenqualität zum Beispiel von Wang [vgl. Wang96] angewendet. Desweitern werden in [Wang96] 15 Dimensionen der Informationsqualität definiert. Diese Definition der Dimensionen wurde 2007 von der DGIQ e.v. (Deutsche Gesellschaft für Informations- und Datenqualität e.v.) ins Deutsche übertragen [vgl. DGIQ07]. Diese Übertragung ist in Abbildung 1 dargestellt. 4

10 Abbildung 1 15 Dimensionen der Informationsqualität [DGIQ07]. Das Ziel der Dublettenerkennung ist die Erhöhung der Informationsqualität in den Dimensionen der Fehlerfreiheit und Vollständigkeit. Fehlerfreiheit wird definiert als die Übereinstimmung der Informationen mit der Realität. Dies wird durch die Dublettenerkennung verbessert, da hierdurch die redundanten Repräsentationen eines Realweltobjekts aufgedeckt werden. Vollständigkeit wird verbessert, da die gefundenen Dubletten oft unterschiedliche Informationen über ein Realweltobjekt enthalten, die zusammen eine vollständigere Abbildung des Objekts ergeben. Dass mangelnde Informationsqualität und insbesondere Dubletten wirtschaftlichen Schaden verursachen können, sollen folgende Beispiele verdeutlichen: Ein Versandhändler versendet regelmäßig Kataloge an Kunden. Durch Dubletten im Kundenstamm entstehen unnötige Kosten für Druck und Versand. Doppelt mit Katalogen belieferte Kunden zweifeln an dem Qualitätsmanagement des Unternehmens, was einen Imageschaden für das Unternehmen zu Folge hat. Ein Handelsunternehmen gewährt seinen Kunden einen Kreditrahmen. Dubletten in einer Kundendatenbank können dazu führen, dass ein Kunde den Kreditrahmen mehrfach ausschöpft. Im Falle einer Insolvenz des Kunden drohen hohe Forderungsausfälle. Ein zusätzlicher Abgleich der Kundendaten mit Daten der Insolvenzmeldungen kann verhindern, dass Geschäfte mit bereits insolventen Unternehmen getätigt werden. Ein Maschinenbauunternehmen bestellt ein wichtiges Ersatzteil für eine Maschine, da dieses offensichtlich nicht auf Lager ist. Durch eine Dublette im Materialstamm wurde leider übersehen, dass das benötigte Teil doch auf Lager ist, aber unter einer Bezeichnung, die einen Tippfehler enthält. Es kommt zu unnötigen Produktionsverzögerungen, zusätzlich zu unnötigen Lagerkosten und Kapitalbindung. 5

11 Die Liste lässt sich beliebig fortsetzen. Fazit ist, dass das Problem der Dubletten von hoher wirtschaftlicher Relevanz ist. 2.2 Formale Definition Um das Thema der Dublettenerkennung formal zu definieren, ist es nötig mit Grunddefinitionen des relationalen Modells anzufangen [vgl. Naum10, S.13f]. Als Grundlage für eine Dublettenerkennung dient eine Relation R. Die Relation R besitzt ein Schema S R, das aus einer Menge von Attributen besteht: { }. Jeder Datensatz d, der in einer Relation R gespeichert ist, ordnet jedem Attribut einen Wert w zu. Somit kann man einen Datensatz als eine Menge von Werten definieren: { } oder eine Menge von Attribut-Wert Paaren: {( ) ( ) ( )}. Ich nehme im Rahmen dieser Arbeit an, dass alle Datensätze, die für die Dublettenerkennung relevant sind, diesem Schema entsprechen. Aufgrund der Komplexität wird die schemaübergreifende Dublettenerkennung und Dublettenerkennung in komplexen Relationen, wie zum Beispiel 1:n verknüpfte Relationen, ausgeklammert. Ich nehme an, dass gegebenenfalls im Vorfeld eine Datenvorbereitung im Sinne von Parsen, Transformation und Standardisierung, bereits stattgefunden hat. Solche Datenaufbereitung bezeichnet man häufig mit dem Begriff ETL (Extaction, Transformation, Loading) [vgl. Elma07]. Aus der Menge der Datensätze wird eine Untermenge als Dublettenkandidaten bestimmt. Dies können alle Datensätze der Relation sein oder nur eine Teilmenge, zum Beispiel alle seit der letzten Dublettenerkennung veränderten Datensätze. So erhält man eine Menge von Kandidaten aus einer Relation R: { }. Nicht alle Attribute einer Relation sind für eine Dublettenerkennung relevant. Künstliche Primärschlüssel, wie zum Beispiel im Kapitel 2.1 in der Tabelle 1 das Attribut ID, sind für die Dublettenerkennung irrelevant. So werden für die Dublettenerkennung relevanten Attribute als Projektion der Menge S R bestimmt. Diese Beschreibung eines Kandidaten k definiere ich als ( ) {( ) ( ) ( )} beziehungsweise ( ) { }. Die Menge der entsprechend definierten Kandidaten wird als Input für den Dublettenerkennungsprozess verwendet. Das Ziel einer Dublettenerkennung ist eine Partitionierung der Kandidaten. Jede der Partitionen enthält demnach nur die Kandidaten, die dasselbe Realweltobjekt repräsentieren. Als Notation für die Partitionierung der Kandidaten verwende ich. Um die Notation zu veranschaulichen, wende ich diese Notation auf das Beispiel der Relation aus Kapitel 2.1, Tabelle 1 an. Diese hat das folgende Schema: { } Die Relation enthält drei Datensätze. Ich Definiere beispielhaft den ersten Datensatz: { } 6

12 Für den Abgleich werden alle Datensätze als Kandidaten verwendet: { } Da ich das Attribut ID für den Abgleich nicht verwende, ergibt sich folgende Beschreibung für den Kandidaten 1: ( ) { } Nach der Durchführung des Abgleichs ergibt sich folgende Partitionierung der Kandidaten: {( )} Es gibt also nur eine Partition, da alle Kandidaten das gleiche Realweltobjekt repräsentieren. 2.3 Ein iterativer Algorithmus zur Dublettenerkennung Im Kapitel 2.2 habe ich den Input und den Output einer Dublettenerkennung definiert. Um eine Partitionierung der Kandidaten zu erreichen, geht man üblicherweise nach dem Schema eines iterativen Dublettenerkennungsalgorithmus vor [vgl. Naum10, S.15]. Zuerst werden von einem Algorithmus Kandidatenpaare (k 1, k 2 ) bestimmt, für die im zweiten Schritt eine Ähnlichkeit sim(k 1, k 2 ) berechnet wird. Es ist eine Funktion, die zwei Kandidaten als Parameter nimmt und als Ergebnis eine Ähnlichkeit liefert, meistens eine Zahl zwischen 0 und 1. Bei mehreren Attributen ist es möglich, die Ähnlichkeiten pro Attribut zu bestimmen, was als Ergebnis mehrere Ähnlichkeiten in Form eines Vektors liefert. Je nach definiertem Schwellenwert θ für die Ähnlichkeit, kann die Entscheidung getroffen werden, ob zwei Kandidaten eine Dublette darstellen, das heißt, ob sie dasselbe Realweltobjekt repräsentieren. Formal würde man sagen, dass zwei Kandidaten (k 1, k 2 ) eine Dublette sind, wenn sim(k 1, k 2 ) > θ ist. Im Falle der Ähnlichkeitsmessung pro Attribut bei mehreren Attributen ist eine Dublettenentscheidung komplexer. Hier bedient man sich zum Beispiel der Methoden der Wahrscheinlichkeitsrechnung oder des maschinellen Lernens. In der Praxis ist es schwierig, eine solche Entscheidung automatisch zu treffen. Deswegen wird oft ein bestimmter Bereich bestimmt, in dem ein menschlicher Experte die endgültige Entscheidung treffen muss. Doch trotz dieser Maßnahme ist es in der Praxis sehr schwierig, ein perfektes Ergebnis zu erreichen, das auch als golden standard bezeichnet wird. Es kann dazu kommen, dass manche Dubletten nicht entdeckt werden, da diese eine zu geringe Ähnlichkeit zueinander aufweisen. Dieses Fehlerbild bezeichnet man als false negatives. Umgekehrt kann es dazu kommen, dass zwei Datensätze trotz hoher Ähnlichkeiten der Attributwerte keine Dubletten sind. Hier spricht man von false positives. Den letzten Schritt bildet die Bestimmung der Transitivität und Erzeugung der Partitionierung. Per Definition repräsentieren zwei Datensätze, die als Dubletten erkannt wurden, dasselbe Realweltobjekt. Wenn also A eine Dublette von B ist und B eine Dublette von C, dann ist auch A eine Dublette von C, da A, B und C dasselbe Realweltobjekt repräsentieren [vgl. Naum10, S.15]. Wenn man das Modell der Kandidaten und Dublettenpaare als einen Graphen betrachtet, mit Kandidaten als Knoten und den Kanten als Dublettenbeziehungen, 7

13 dann erhält man durch die Bestimmung der transitiven Hülle die gewünschte Partitionierung. Die nachfolgende Abbildung 2 zeigt schematisch den beschriebenen Ablauf. Relation R Algorithmus zur Auswahl von Kandidatenpaaren (k 1, k 2 ) Bestimmung der Ähnlichkeit der Attribute sim(k 1, k 2 ) Entscheidung, ob das Kandidatenpaar (k 1, k 2 ) eine Dublette ist. Bestimmung zusammenhängender Komponenten Partitionierung Abbildung 2 Ein prototypischer Ablauf einer Dublettenerkennung. 2.4 Fokus der Arbeit und Einschränkung des Problems Wie im Kapitel 1.2 beschrieben, ist das Ziel dieser Arbeit die Bestimmung der besten Dublettenerkennungsmethodik für die vorliegende Domäne der Daten, in diesem Fall der deutschen Geschäftsadressen. Aufgrund der Beschaffenheit der Daten und der Komplexität des gesamten Dublettenerkennungsalgorithmus, konzentriere ich mich in dieser Arbeit auf die zwei zentralen Schritte der Dublettenerkennung: die Bestimmung der Ähnlichkeit der Attributwerte und die Entscheidung, ob es sich bei den Kandidatenpaar um eine Dublette handelt oder nicht. Die für die Evaluation im Rahmen dieser Arbeit zur Verfügung stehenden Daten liegen als Datensatzpaare vor, zusammen mit einer Markierung, die beschreibt, ob es sich um ein Dublettenpaar handelt oder nicht. Somit ist die Auswahl der Kandidaten bereits getroffen. Des Weiteren stammen die Datenpaare nicht aus einer Quelle, womit die Bestimmung der Partitionen hier ebenfalls nicht möglich beziehungsweise sinnvoll ist. In den folgenden beiden Kapiteln stelle ich die Methoden der Ähnlichkeitsbestimmung für Attributwerte und der Dublettenbestimmung auf der Basis dieser Ähnlichkeiten vor. 8

14 3 Ähnlichkeitsbestimmung Wie in Kapitel 2.3 vorgestellt, wird vor der Klassifizierung zweier Kandidaten als Dublette oder nicht Dublette zuerst eine Ähnlichkeitsfunktion verwendet, um die Ähnlichkeit der einzelnen Attributwerte zu bestimmen. In den meisten Fällen sind die Attributwerte Zeichenketten oder werden als solche behandelt. Deswegen konzentriere ich mich in diesem Kapitel auf Ähnlichkeitsfunktionen für Zeichenketten. In diesem Kapitel werden die wichtigsten Ähnlichkeitsfunktionen für Zeichenketten vorgestellt. Diese Ähnlichkeitsfunktionen ermöglichen es, Zeichenketten auf Ihre Ähnlichkeit zu überprüfen, konkreter ausgedrückt, deren typographischen Abweichungen numerisch zu bewerten. Einige der hier beschriebenen Funktionen sind Distanzfunktionen, denn diese messen den Abstand zweier Zeichenketten. Bei einer Ähnlichkeitsfunktion sind zwei Zeichenketten umso ähnlicher, je höher deren berechnete Ähnlichkeit ist. Bei einer Distanzfunktion, im Gegensatz zur Ähnlichkeitsfunktion, sind zwei Zeichenketten umso ähnlicher, je geringer die Distanz ist. Eine Umrechnung der Distanz in eine Ähnlichkeit ist problemlos Möglich und wird in diesem Kapitel ebenfalls vorgestellt. Zur Vereinfachung verwende ich im Rahmen dieser Arbeit die einheitliche Bezeichnung Ähnlichkeitsfunktionen. Die Ähnlichkeitsfunktionen für Zeichenketten kann man nach ihrer grundlegenden Funktionsweise in drei Klassen aufteilen. Im Kapitel 3.1 stelle ich die Token-basierten Ähnlichkeitsfunktionen, die als Input eine Menge von Tokens entgegennehmen. Kapitel 3.2 beschreibt die Edit-basierten Ähnlichkeitsfunktionen, die direkt auf Zeichenketten arbeiten und die Kosten der Edit-Operationen berechnen. Die beiden Klassen lassen sich auch zu sogenannten hybriden Ähnlichkeitsfunktionen kombinieren, die in Kapitel 3.3 vorgestellt werden. Die Auswahl der konkreten Algorithmen, die in diesem Kapitel beschrieben werden, erfolgte auf Basis einer Literaturstudie, insbesondere [Elma07] und [Naum10]. Die dort vorgestellten Algorithmen kommen bei der im Rahmen dieser Arbeit durchgeführten Evaluation zum Einsatz. Abbildung 3 zeigt den Überblick über die angesprochenen Klassen der Ähnlichkeitsfunktionen und die entsprechende Zuordnung der in den folgenden Kapiteln beschriebenen Algorithmen. Die jeweils eng verwandten Algorithmen werden gemeinsam in einem Kapitel vorgestellt. 9

15 Ähnlichkeitsfunktionen Token-basierte Edit-basierte Hybride Jaccard Ähnlichkeit Levenshtein Distanz Needleman-Wunsch Distanz Erweiterte Jaccard Ähnlichkeit Cosinus-Ähnlichkeit mit tf/idf Gewichtung Affine Gapkosten Distanz Smith-Watermann Distanz Smith-Watermann-Gotoh Distanz Monge-Elkan Ähnlichkeit Jaro Distanz Jaro-Winkler Distanz Soft tf/idf Ähnlichkeit Abbildung 3 Die Hierarchie der Zeichenkettenähnlichkeitsfunktionen. 3.1 Token-basierte Ähnlichkeitsfunktionen Der erste Schritt eines Token-basierten Ähnlichkeitsalgorithmus ist es, eine Zeichenkette in eine Menge von Tokens, auch atomic strings genannt [vgl. Mong96], zu zerlegen. Für die Funktion, die eine Zeichenkette in eine Menge von Tokens überführt, verwende ich die Notation tokenize(.). Die einfachste Möglichkeit, eine Zeichenkette in Tokens zu zerlegen, ist die Verwendung von Satzzeichen, vor allem Leerzeichen [vgl. Mong96]. Nach diesem Prinzip wurde eine Zerlegung der Zeichenkette Angelina Jolie zur folgenden Menge an Tokens führen: {Angelina, Jolie}. Die Satzzeichen werden bei der Zerlegung weggelassen. Man kann innerhalb der tokenize(.) Funktion noch weitere Normierungen vornehmen, wie zum Beispiel die Überführung in Kleinbuchstaben. Weitere Maßnahmen wären die Entfernung bestimmter häufiger Wörter, der sogenannten stopwords, oder die Eliminierung von häufigen Abkürzungen. Diese Maßnahmen sind aber nur domainspezifisch möglich, da diese unter anderem von der verwendeten Sprache abhängen. 10

16 Eine spezielle Form der Zerlegung in Tokens ist die Bildung von q-grammen, in der Literatur auch häufig n-gramme genannt [vgl. Ullm77 und Ukko92]. Die so entstandenen Tokens haben eine konstante Länge q. Außerdem überlappen sich so erzeugte Tokens, im Gegensatz zu der Satzzeichen-Methode. Um eine Zeichenkette in q-gramme zu zerlegen, verschiebt man ein Fenster der Länge q über alle Zeichen der Zeichenkette jeweils um eins. Der Inhalt eines solchen Fensters ist jeweils ein Token. Damit jedes Zeichen einer Zeichenkette, auch das erste und das letzte, gleich häufig, in dem Fall q Mal, in der Menge der Tokens vorkommen, werden, vorne und hinten an der Zeichenkette q-1 spezielle, im verwendeten Alphabet sonst nicht vorkommende, Sonderzeichen angehängt [vgl. Grav01]. Als Beispiel zerlege ich die Zeichenkette Angelina Jolie in q-gramme mit der Länge q=3, auch Trigramme genannt. Als Sonderzeichen für den Anfang und das Ende der Zeichenkette verwende ich #. Zum verdeutlichen von Leerzeichen ersetze ich diese durch _. Somit ergibt sich folgende Menge an Trigrammen: {##A, #An, Ang, nge, gel, eli, lin, ina, na_, a_j, _Jo, Jol, oli, lie, ie#, e##}. In den folgenden Unterkapiteln werde ich Ähnlichkeitsfunktionen vorstellen, die ermöglichen, mithilfe von tokenize(.) Funktion erzeugten Tokens, die Ähnlichkeit zweier Zeichenketten zu ermitteln Jaccard-Ähnlichkeit Eine einfache und oft sehr effektive Token-basierte Metrik ist die Jaccard Ähnlichkeit [vgl. Bile03]. Generell vergleicht die Jaccard Ähnlichkeit zwei Mengen mithilfe folgender Formel: ( ) Mit der Jaccard Ähnlichkeit wird das Verhältnis der Schnittmenge der Mengen S und T zu allen Elementen der Vereinigungsmenge von S und T ausgedrückt. Im Kontext der Dublettenerkennung sind die Mengen S und T Mengen von Tokens zweier Zeichenketten. Bei gegebenen zwei Zeichenketten z 1 und z 2 und einer, wie in Kapitel 3.1 definierten Funktion tokenize(.), ergibt sich folgende Formel für die Jaccard Ähnlichkeit: ( ) ( ) ( ) ( ) ( ) Hier zwei Beispiele für die Berechnung der Jaccard Ähnlichkeit: Beispiel 1: Im ersten Beispiel verwende ich zwei Zeichenketten z 1 = Frau Angelina Jolie und z 2 = Herr Angelina Jolie. Zudem verwende ich eine tokenize(.) Funktion, die, wie in Kapitel 3.1 beschrieben, Tokens als Wert erzeugt. Somit ergeben sich folgende Tokenmengen: ( ) { } ( ) { } 11

17 Die Vereinigung beider Mengen ergibt eine Anzahl von vier disjunkten Elementen. Die Schnittmenge enthält zwei Elemente Angelina und Jolie. Somit ergibt sich folgende Jaccard Ähnlichkeit: ( ) In diesem Beispiel erkennt man, dass schon die Veränderung eines Wortes, in dem Fall die Anrede, die ermittelte Ähnlichkeit deutlich verringert. Dabei würde man intuitiv sagen, dass nur ein Unterschied in der Anrede keine so starke Abwertung rechtfertigt. Das ist einer der Nachteile der Jaccard Ähnlichkeit. Im nächsten Kapitel werde ich zeigen, wie man mithilfe der Cosinus-Ähnlichkeit diesen Nachteil ausgleichen und dabei erreichen kann, dass offensichtlich unwichtige Tokens geringer gewichtet werden. Ein Vorteil dieser Berechnung der Jaccard Ähnlichkeit ist, dass die Wortreihenfolge keinen Einfluss auf den Wert der berechneten Ähnlichkeit hat. Die kleinsten Unterschiede in der Schreibweise einzelner Wörter würden die Ähnlichkeit jedoch massiv verringern. Dieser Nachteil lässt sich mit einer modifizierten tokenize(.) Funktion ausgleichen, nämlich mit einer, die q-gramme erzeugt, wie in Kapitel 3.1 beschrieben. Beispiel 2: Ich verwende zwei Zeichenketten z 1 = Frau Angelina Jolie und z 2 = Herr Angelino Yolie. Bei dieser Zeichenkettenkombination würde sich mit der tokenize(.) Funktion aus Beispiel 1 eine Jaccard Ähnlichkeit von null ergeben. Ich verwende eine tokenize(.) Funktion, die q-gramme mit q=3 (Trigramme) als Wert erzeugt. Hier ergeben sich folgende Tokenmengen: ( ) { } ( ) { } Die Vereinigung beider Mengen enthält eine Anzahl von 32 disjunkten Elementen. Die Schnittmenge enthält zehn Elemente. Somit ergibt sich folgende Jaccard Ähnlichkeit: ( ) Die Jaccard Ähnlichkeit ist hier zwar noch geringer als im Beispiel 1, aber deutlich höher als null. Somit wird deutlich, dass durch die Verwendung von q-grammen eine Toleranz gegenüber typografischen Fehlern erreicht werden kann. Techniken, die speziell diese Form von Fehlern ansprechen, werde ich im Kapitel 3.2 vorstellen Cosinus-Ähnlichkeit mit tf/idf Gewichtung Die Cosinus-Ähnlichkeit ist ein Ähnlichkeitsmaß, das aus dem Bereich des information retrieval, zu Deutsch Informationsabruf, stammt. In [Cohe98] ist ein WHIRL genanntes Modell beschrieben, das die Cosinus-Ähnlichkeit mit dem sogenannten tf-idf Gewichtungsschema kombiniert, um die Ähnlichkeit zweier Zeichenketten zu berechnen. 12

18 Generell wird bei der Cosinus-Ähnlichkeit der Cosinus eines Winkels α zwischen zwei n- dimensionalen Vektoren V und W berechnet: ( ) ( ) V bezeichnet die Länge des Vektors V = [a,b,c, ], berechnet als. In der Dublettenerkennung repräsentieren die Vektoren V und W Gewichte der Tokens der jeweils zu vergleichenden Zeichenketten. Die Vektoren haben d Dimensionen, wobei d die disjunkte Anzahl aller Tokens in allen Zeichenketten einer endlichen Domäne D ist. Diese Tokens entstehen durch die Anwendung der tokenize(.) Funktion auf die Zeichenkette, die einen Wert w eines Attributs a in einer Relation R darstellt. Wie schon in Kapitel angedeutet, liegt die Besonderheit der hier beschriebenen Cosinus- Ähnlichkeit in der Gewichtung der Tokens. Dazu definiert man einen Termvektor T der Domäne D, der ebenfalls d Dimensionen besitzt. Dieser Vektor beinhaltet ein Gewicht für jeden der disjunkten Tokens aus D. Mit diesem Gewicht soll die Relevanz der einzelnen Tokens in Verhältnis zu allen anderen Tokens in D ausgedrückt werden. Dazu wird die Tokenhäufigkeitinverse Dokumentenhäufigkeit, kurz tf-idf, als Maß verwendet. Zuerst definiere ich für die einzelnen Komponenten Tokenhäufigkeit tf (term frequency) und inverse Dokumentenhäufigkeit idf (inverse document frequency) [vgl. Cohe98]. Die Tokenhäufigkeit drückt aus, wie oft ein Token in einer Zeichenkette vorkommt und beschreibt somit die Relevanz des Tokens innerhalb einer Zeichenkette. Innerhalb der Definition heißt es, ein Token t ist enthalten im Wert w einer Kandidatenbeschreibung des Kandidaten k, sodass (a,w) ϵ B(k), die Notation tf t,k besitzt. Inverse Dokumentenhäufigkeit bedeutet, dass jene Tokens eine höhere Gewichtung bekommen, die in der Gesamtmenge aller Kandidatenbeschreibungen weniger häufig vorkommen. Ziel dabei ist es, häufig vorkommende Tokens geringer zu gewichten, da diese für die Unterscheidung der Kandidaten weniger geeignet sind. Als Beispiel nehme ich eine fiktive Datenbank mit Namen von Steuerberatern. Fast in jedem Namensfeld kommt der Token Steuerberater vor. Für die Ermittlung der Gleichheit zweier solcher Namen ist dieser Token wenig relevant und erhält eine niedrige inverse Dokumentenhäufigkeit. Formal wird die inverse Dokumentenhäufigkeit folgendermaßen definiert, wobei n die Gesamtanzahl der Kandidaten bezeichnet: { ( ) ( )} ( ) In dem WHIRL Modell werden die Termhäufigkeit und die inverse Dokumentenhäufigkeit zur folgenden Tokengewichtung kombiniert. ( ) ( ) Diese Gewichtung wird für jeden Token t i ϵ D berechnet. Jetzt können die Vektoren V und W erstellt werden. Der Wert an der i-ten Stelle der Vektoren entspricht der tf-idf Gewichtung des jeweiligen Tokens, oder ist null, falls dieser Token in den zu vergleichenden 13

19 Kandidatenzeichenketten nicht vorkommt. Mithilfe dieser Gewichtung kann die Cosinusähnlichkeit berechnet werden. Beispiel 3: Die Beispielberechnung führe ich mit einem Auszug aus einer fiktiven Datenbank für Steuerberater. Dieser Auszug ist in der Tabelle 2 dargestellt. ID Name 1 Steuerberater Kreft 2 Steuerkanzlei Stapelmann 3 Steuerkanzlei Nack 4 Steuerberater Dipl-Betriebswirt Hans-Joachim Ziemer 5 Dr. Walter Burger & Partner Steuerberatungsgesellschaft 6 Dittmann & Kollegen Steuerberatungsgesellschaft mbh 7 Steuerberater Brandt 8 Steuerberater Foster 9 Steuerbüro Schneemann 10 Hosse-Weigl Steuerberatungsgesellschaft mbh Tabelle 2 Beispieltabelle mit Steuerberatern. Man sieht, dass in jeden Namen die Tokens jeweils nur einmal vorkommen, sodass die Termfrequenz tf immer 1 oder 0 ist. Wir wollen die Namen Steuerberater Kreft und Steuerberater Foster vergleichen. Die Terme Kreft und Foster kommen in dieser Domäne jeweils einmal vor, somit besitzen beide eine idf von kommt hingegen vier Mal vor und hat einen idf Wert von, also 10. Der Term Steuerberater. Somit ergeben sich folgende Vektoren mit tf-idf Werten (zur Vereinfachung lasse ich die Stellen, die bei beiden Vektoren 0 sind, weg), die in der Tabelle 3 dargestellt sind. Term V W Kreft 0,30 0 Foster 0 0,30 Steuerberater 0,12 0,12 Tabelle 3 Die Vektoren der zu vergleichenden Zeichenketten. Daraus ergibt sich folgende Cosinusähnlichkeit: ( ) Eine vergleichbare Jaccard Ähnlichkeit würde hier betragen und somit erheblich mehr als die hier berechnete Cosinusähnlichkeit. Die Übereinstimmung des Tokens Steuerberater wird hier deutlich geringer bewertet, da dieser Token öfter in der gegebenen Domäne vorkommt und somit die Übereinstimmung dieses Tokens weniger über die Ähnlichkeit der Namen aussagt. 14

20 Die Gewichtung der Terme soll die Wichtigkeit deren für die Ähnlichkeit wiederspiegeln. Dabei ist die Verwendung der tf-idf Gewichtung, wie im WHIRL Modell vorgeschlagen, nur eine der Möglichkeiten für die Cosinusähnlichkeit. Auch andere, zum Beispiel domänenspezifische Gewichtungen, sind möglich. 3.2 Edit-basierte Ähnlichkeitsfunktionen Im Unterschied zu den im Kapitel 3.1 beschriebenen Token-basierten Algorithmen, werden bei den Edit-basierten Ähnlichkeitsfunktionen die zu vergleichenden Zeichenketten nicht in Tokens zerlegt. Es werden vielmehr Operationen verwendet, wie Einfüge-, Lösch- oder Ersetzungs- Operationen, um eine Zeichenkette in eine andere umzuwandeln [vgl. Nava01] Levenshtein und Needleman-Wunsch Distanz Die Levenshtein Distanz ist eine Metrik zur Bestimmung von Distanz beziehungsweise Abstand zweier Zeichenketten. Die Distanz zwischen zwei Zeichenketten z 1 und z 2 wird hier errechnet als die minimalen Kosten, um z 1 in z 2 zu überführen. Diese Kosten werden als die Summe der Kosten der für die Überführung nötigen Operationen berechnet. Jeder Operation werden die entsprechenden Kosten zugeordnet. Die Levenshtein Distanz zwischen zwei Zeichenketten z 1 und z 2 LevDist(z 1, z 2 ) definiert die Kosten für Einfüge-, Lösch- und Ersetzungs- Operation als 1. Somit ist die LevDist(z 1, z 2 ) die minimale Anzahl dieser Operationen die nötig ist, um z 1 in z 2 zu überführen [vgl. Leve66]. Beispiel 4: Als Beispiel nehme ich zwei Zeichenketten z 1 = Hase und z 2 = Rasen. Die minimalen Kosten, um z 1 in z 2 zu überführen, betragen hier zwei. Es sind nämlich zwei Operationen nötig, eine Ersetzungsoperation des ersten Buchstabens H in R und eine Einfügeoperation am Ende, wo ein n eingefügt wird. Es gibt noch unzählige weitere Möglichkeiten der Überführung, wie zum Beispiel das Löschen aller Zeichen aus z 1 und das Einfügen aller Zeichen von z 2. Die Kosten betragen dann aber neun und sind nicht minimal. Ein populärer Algorithmus zur Berechnung der Levenshtein Distanz basiert auf der dynamischen Programmierung. Es initialisiert eine ( z 1 +1)x( z 2 +1) große Matrix M, wobei z die Länge der jeweiligen Zeichenketten ist. Wenn der Wert in der Spalte i und der Zeile j in der Matrix als M i,j definiert ist und die Position i in der Zeichenkette n als z n,i, so werden die Werte in der Matrix folgendermaßen berechnet: { ( ) 15

21 Die Berechnung beginnt an der Stelle M 0,0. Das Ergebnis, also die Levenshtein Distanz, kann nach der Berechnung an der Stelle M z1, z2 abgelesen werden. Für die Berechnung des Beispiels mit z 1 = Hase und z 2 = Rasen ergibt sich folgende, in der Tabelle 4 dargestellte Matrix. H A S E R A S E N Tabelle 4 Berechnung der Levenshtein Distanz. Eine Erweiterung der Levenshtein Distanz, die andere Kosten für Einfüge-, Lösch- und Ersetzungs- Operationen als 1 erlaubt, ist die Needleman-Wunsch Distanz, die ansonsten analog zu der Levensthtein Distanz definiert ist [vgl. Need70]. Darüber hinaus erlaubt die Needleman-Wunsch Distanz unterschiedliche Bewertung der verschiedenen Ersetzungsoperationen. Beispielsweise kann eine Ersetzung ähnlich klingender oder auf einer Tastatur nebeneinander liegender Zeichen mit geringeren Kosten bewertet werden als andere Ersetzungen. Das erlaubt eine domänenspezifische Optimierung der berechneten Distanz Affine Gapkosten, Smith-Waterman und Smith-Waterman-Gotoh Distanz Die Levenshtein Distanz ist wenig geeignet zum Vergleich von Zeichenketten, bei denen sich ganze Segmente unterscheiden, zum Beispiel wenn Abkürzungen verwendet werden ( Hans J Wurst und Hans Jürgen Wurst ) oder wenn einer der Zeichenketten einen Präfix besitzt ( Prof. Hans Wurst und Hans Wurst ). In diesem Kapitel werden kurz Algorithmen vorgestellt, die diese Schwächen der Levenshtein Distanz fokussieren, ansonsten in Ihrer Grundfunktionalität der Levenshtein Distanz entsprechen. Im Folgenden gehe ich deswegen nur auf die Unterscheide zu der Levenshtein Distanz ein. Das Problem der Abkürzungen wird von der affinen Gapkosten Distanz angesprochen. Diese erweitert die Operationen der Levenshtein Distanz um neue Operationen, die das Einfügen oder Löschen von kompletten Zeichenblöcken und nicht nur einzelner Zeichen erlauben. Die Kosten dieser Operationen sind niedriger als das Einfügen beziehungsweise Löschen aller Zeichen innerhalb dieser Blöcke [vgl. Wate76]. So zum Beispiel bei Zeichenketten z 1 = Hans J Wurst und z 2 = Hans Jürgen Wurst. Man erkennt zwei übereinstimmende Blöcke Hans J und Wurst und einen Block, der eingefügt werden muss, um z 1 in z 2 zu überführen, nämlich 16

22 ürgen. Die Kosten für das Einfügen eines solchen Blocks können als die Summe aus den Kosten für das Öffnen des Blocks o und die Erweiterung des Blocks um ein Zeichen e berechnet werden. Wenn man die Kosten als o = 1 und e = 0,1 definiert, ergeben sich die Gesamtkosten für das Einfügen des gesamten Beispielblocks ürgen als o + 4e = x 0,1 = 1,4. Die Kosten für das Öffnen des Blocks beinhalten bereits die Kosten für das Einfügen des ersten Zeichens. Diese Gesamtkosten sind erheblich niedriger als bei der Levenshtein Distanz, die dort 5 betragen würden. Deswegen eignet sich die Methode besonders gut für Zeichenketten mit Abkürzungen oder fehlenden Fragmenten. Die Problematik der unterschiedlichen Bewertung von Präfix beziehungsweise Suffix einer Zeichenkette wird von der Smith-Waterman Distanz behandelt [vgl. Smit81]. Zuerst wird die längste gemeinsame Subsequenz zwischen zwei Zeichenketten bestimmt. Bei dem Beispiel z 1 = Prof. Hans Wurst und z 2 = Hans Wurst wäre das Hans Wurst. Da diese Subsequenz der gesamten Zeichenkette z 2 entspricht, stellt man fest, dass der Unterschied zwischen z 1 und z 2 in einem Präfix Prof. besteht. Grundsätzlich werden bei der Smith-Watertman Distanz die Zeichenketten in Präfix, gemeinsame Subsequenz und Suffix zerlegt. Das Einfügen beziehungsweise Löschen von Präfix oder Suffix der Länge l kann, ähnlich der affinen Gapkosten Distanz, mit niedrigeren Kosten versehen werden als das Ersetzen oder Löschen von l Zeichen. Somit führen die Unterschiede in Präfix oder Suffix zu geringeren Distanz, als es bei der Levenshtein Distanz der Fall wäre. Eine Kombination beider Techniken, die sowohl Präfix und Suffix als auch affine Gaps berücksichtigt, wird als Smith-Waterman-Gotoh Distanz bezeichnet [vgl. Goto82]. Des Weiteren bedient sich dieser Ähnlichkeitsfunktion als Grundlage der Needleman-Wunsch Distanz. Somit können auch die Edit-Operationen mit unterschiedlichen Kosten versehen werden, wie in Kapitel beschrieben Jaro und Jaro-Winkler Distanz Die Jaro und Jaro-Winkler Distanz unterscheiden sich von den bis jetzt von mir vorgestellten, Edit-basierten Algorithmen vor allem durch die Berücksichtigung einer neuen Operation. Diese erlaubt eine Zeichenvertauschung. Des Weiteren werden die Algorithmen nicht mittels dynamischer Programmierung implementiert. Die Jaro Distanz vergleicht zwei Zeichenketten z 1 und z 2, indem zuerst die gemeinsamen Zeichen der beiden Zeichenketten identifiziert werden. Als gemeinsam werden Zeichen bezeichnet, die gleich sind und deren Position innerhalb der Zeichenketten, hier als i und j bezeichnet, nicht mehr als die Hälfte der Länge der kürzeren Zeichenkette abweicht. Formal ausgedrückt: ( ) Nachdem die gemeinsamen Zeichen identifiziert sind, werden alle Zeichen der Zeichenketten nacheinander durchlaufen, um die Anzahl der Zeichenvertauschungen t der gemeinsamen Zeichen zu identifizieren. Zeichenvertauschung bedeutet, dass das gemeinsame Zeichen aus z 1 17

23 an der Position i nicht gleich ist mit dem gemeinsamen Zeichen an der Position i aus z 2. Wenn σ die Menge der gemeinsamen Zeichen ist, ergibt sich folgende Formel für die Jaro Ähnlichkeit: ( ) ( ) [vgl. Jaro89]. Beispiel 5: Als Beispiel für die Berechnung nehme ich z 1 = Prof. Hans Wurst und z 2 = Dr. Hasn Wurst. Es ergeben sich die Längen z 1 = 16 und z 2 = 14. Der maximale Abstand zwischen zwei gemeinsamen Zeichen ist 0,5 x min(16, 14) = 7. Die Menge der gemeinsamen Zeichen ist σ = {r,., _, H, a, n, s, _, W, u, r, s, t}, wobei _ für das Leerzeichen steht. Streng genommen handelt es sich um eine Multimenge, da gleiche Elemente mehrfach vorkommen können. Da die Zeichen n und s bei Hans in den Zeichenketten jeweils vertauscht sind, ergibt sich t = 2, da es zwei Zeichen gibt, die sich nicht an der gleichen Position in den beiden Zeichenketten befinden. Es ergibt sich folgende Jaro Ähnlichkeit: ( ) ( ) Die Jaro Ähnlichkeit funktioniert sehr gut bei Zeichenketten mit geringen Abweichungen. Durch die gegebene Definition der gemeinsamen Zeichen ergeben sich aber Probleme mit Zeichenketten, die einen längeren Zeichenblock als Präfix beinhalten. Ein einfaches Beispiel wäre z 1 = Professor Hans Wurst und z 2 = Hans Wurst. Es lassen sich lediglich vier gemeinsame Zeichen identifizieren. σ = {s, s, r, _} und ein t = 2. Das ergibt lediglich eine Jaro Ähnlichkeit von circa 0,45. Und das, obwohl der Unterschied nur in einem recht langen Präfix besteht. Ein ähnliches Verhalten lässt sich mit einem Suffix beobachten. Um die Jaro Ähnlichkeit vor allem in Hinsicht auf den Vergleich der Namensfelder zu verbessern, wurde die Jaro-Winkler Ähnlichkeit entwickelt. Die Jaro-Winkler Ähnlichkeit geht davon aus, dass ein Präfix in den Namensfeldern wichtig ist und die Übereinstimmung einer Aufwertung bedarf. Bei zwei gegebenen Zeichenketten z 1 und z 2 mit einem gemeinsamen Präfix ρ und einem Korrekturfaktor f, der die Korrektur der Ähnlichkeit nach oben in Abhängigkeit von dem gemeinsamen Präfix darstellt, ergibt sich folgende Formel: [vgl. Wink91]. ( ) ( ) ( ( )) Beispiel 6: Als Beispiel nehme ich die Zeichenketten z 1 = Hans und z 2 = Hans Peter. Diese Besitzen vier gemeinsame Zeichen und ein gemeinsames Präfix ρ = Hans. Es gibt keine Zeichenvertauschungen in σ, somit ist t = 0. Daraus ergibt sich JaroSim(z 1, z 2 ) = 0,8. Mit einem Aufwertungsfaktor f = 0,1 ergibt sich folgende Jaro-Winkler Ähnlichkeit: ( ) ( ) 18

24 3.3 Hybride Ähnlichkeitsfunktionen In diesem Kapitel geht es um Ähnlichkeitsfunktionen, die bei der Ähnlichkeitsberechnung die Funktionsweise der in Kapitel 3.1 beschriebenen Token-basierten Ähnlichkeitsfunktionen mit der aus dem Kapitel 3.2 bekannten Edit-basierten Ähnlichkeitsfunktionen kombinieren. Deswegen die Bezeichnung hybride Ähnlichkeitsfunktionen. Alle diese Ähnlichkeitsfunktionen besitzen die Gemeinsamkeit, dass sie eine sekundäre Ähnlichkeitsfunktion verwenden. In folgendem stelle ich drei Beispiele der hybriden Ähnlichkeitsfunktionen vor Erweiterte Jaccard Ähnlichkeit Die Jaccard Ähnlichkeit wurde bereits im Kapitel als eine Token-basierte Ähnlichkeit beschrieben. Jetzt geht es um zwei mögliche Erweiterungen dieser Funktion mit Elementen der Edit-basierten Ähnlichkeitsfunktionen. In der ursprünglichen Definition der Jaccard Ähnlichkeit werden zwei Zeichenketten z 1 und z 2 zuerst mittels einer tokenize(.) Funktion in zwei Mengen von Tokens zerlegt. Als Elemente der Schnittmenge der beiden Tokenmengen werden die gleichen Tokens definiert. In der ersten Erweiterung der Jaccard Ähnlichkeit geht es darum, auch ähnliche Tokens für die Schnittmenge zuzulassen, um so geringe Schreibfehler innerhalb der Tokens auszugleichen [vgl. Anan02]. Dazu kann eine beliebige Ähnlichkeitsfunktion, bevorzugt eine Edit-basierte, verwendet werden. Wenn diese sekundäre Ähnlichkeitsfunktion als TokenSim(t 1, t 2 ) definiert ist für Tokens t 1 ϵ tokenize(z 1 ) und t 2 ϵ tokenize(z 2 ) und θ ein Ähnlichkeitsschellenwert für diese Funktion darstellt, dann kann man die Schnittmenge der Tokens zwischen z 1 und z 2 wie folgt definieren: ( ) {( ) ( ) ( ) ( ) } Es stellt kein Problem dar, statt der sekundären Ähnlichkeitsfunktion eine Distanzfunktion zu verwenden. Dazu muss lediglich ( ) durch ( ) ersetzt werden. Ausgehend von dieser Definition können wir auch die Tokens, die nur in z 1 vorkommen, definieren als: Und die Tokens, die nur in z 2 vorkommen als: ( ) { ( ) ( ) ( )} ( ) { ( ) ( ) ( )} Eine weitere Erweiterung der Jaccard Ähnlichkeit baut auf der ersten auf und erweitert diese um eine Gewichtung g für die Tokens [vgl. Weis05]. So können zum Beispiel die Tokens der Schnittmenge mit deren Ähnlichkeit gewichtet werden. Die Aggregationsfunktion, die die individuellen Gewichtungen aggregiert, wird als A bezeichnet. Mithilfe der beiden eben beschriebenen Erweiterungen ergibt sich folgende Formel: 19

25 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Die Gewichtung der Tokens aus Shared(z 1, z 2 ), Unique(z 1 ) und Unique(z 2 ) kann auch unterschiedlich sein. Das kann nötig sein, wenn zum Beispiel für Shared(z 1, z 2 ) die Ähnlichkeit als Gewichtung fungiert, denn diese liegt für die Tokens aus den Unique Mengen einfach nicht vor. Beispiel 7: Für das Beispiel nehme ich zwei Zeichenketten z 1 = Frau Angelina Jolie und z 2 = Herr Angelino Yolie. Bei der Anwendung der in Kapitel beschriebenen Jaccard Ähnlichkeit ergeben sich, je nach der verwendeten tokenize(.) Funktion, Ähnlichkeiten von 0 bei der Trennung nach Satzzeichen, wie in Beispiel 1, oder 0,3125 bei der Verwendung von Trigrammen, wie in Beispiel 2. Ich verwende die Levenshtein Distanz als sekundäre Ähnlichkeitsfunktion für die Bestimmung der Schnittmenge der Tokens mit dem Schwellenwert θ = Für die Anwendung der hybriden Jaccard Ähnlichkeit erhalten wir folgende Mengen: ( ) {( ) ( )} ( ) { } ( ) { } Für die Unique Tokens verwenden wir die Gewichtung von 1. Für die Shared Tokens nehme ich eine Levenstein Ähnlichkeit. Diese kann, ausgehend von der Levenstein Distanz, wie folgt berechnet werden: ( ) ( ) ( ) Eine solche Berechnung ist möglich, da die maximale Levenstein Distanz nicht größer sein kann als die Länge der längeren Zeichenkette. Die Aggregationsfunktion A soll die Gewichte aufsummieren. Es ergibt sich folgende hybride Jaccard Ähnlichkeit: ( ) Monge-Elkan Ähnlichkeit In Folgendem beschreibe ich eine weitere hybride Ähnlichkeitsfunktion, die als Monge-Elkan Ähnlichkeit bekannt ist [vgl. Mong96]. Nach der Anwendung der tokenize(.) Funktion auf zwei Zeichenketten z 1 und z 2 wird zu jedem Token t i aus z 1 ein Token t j aus z 2 gesucht, der die höchste Ähnlichkeit hat, das heißt bei dem TokenSim(t i, t j ) maximal ist. Diese maximalen 20

26 Ähnlichkeiten für jeden Token aus z 1 werden aufsummiert, und die Summe wird mit der Anzahl der Tokens in z 1 normalisiert. Formal ausgedrückt: ( ) ( ) ( ) ( ) ( ) Beispiel 8: Als Beispiel nehme ich wieder die Zeichenketten z 1 = Frau Angelina Jolie und z 2 = Herr Angelino Yolie. Als TokenSim Funktion verwende ich erneut, analog zum Beispiel 7 für die erweiterte Jaccard Ähnlichkeit, eine Levenstein Ähnlichkeit: ( ) ( ) ( ) Die maximale Ähnlichkeit zu dem Token Frau hat Herr mit der Ähnlichkeit 0, für Angelina ist es Angelino mit der Ähnlichkeit 0,875 und für Jolie ist es Yolie mit 0,8. Es ergibt sich folgende Monge-Elkan Ähnlichkeit: ( ) Soft tf/idf Ähnlichkeit Die soft tf/idf Ähnlichkeit erweitert prinzipiell auf die gleiche Art und Weise die Cosinus tf/idf Ähnlichkeit, wie die erweiterte Jaccard Ähnlichkeit die Jaccard Ähnlichkeit erweitert [vgl. Naum10, S.36f]. Auch hier wird eine sekundäre Ähnlichkeitsfunktion TokenSim(t 1, t 2 ) definiert, um die Tokens zu vergleichen. Des Weiteren wird eine Menge Close(θ, z 1, z 2 ) der Tokens t i tokenize(z 1 ) definiert, zu denen ein Token t j tokenize(z 2 ) existiert, sodass TokenSim(t 1, t 2 ) > θ. Dabei ist θ wieder ein Schwellenwert für die sekundäre Ähnlichkeitsfunktion. Formal ausgedrückt: ( ) { ( ) ( ) ( ) } Der Unterschied zu der Shared(z 1, z 2 ) Menge aus der Definition der erweiterten Jaccard Ähnlichkeit ist, dass Close(θ, z 1, z 2 ) nur Tokens aus der Zeichenkette z 1 enthält. Tokens aus der Zeichenkette z 2, die ähnlich zu Tokens aus z 1 und in Close(θ, z 1, z 2 ) enthalten sind, werden mithilfe folgender Gleichung berücksichtigt, die den ähnlichsten Token t j tokenize(z 2 ) zu jedem t i Close(θ, z 1, z 2 ) bestimmt: ( ) ( ) ( ) Die soft tf/idf Ähnlichkeit ist dann wie folgt definiert: ( ) ( ( ) ( )) 21

27 V und W sind Vektoren, die jeweils die tf-idf Gewichtung für Terme aus z 1 und z 2 enthalten, analog zur Definition für die Cosinus Ähnlichkeit im Kapitel Beispiel 9: Ich bediene mich des gleichen Beispiels wie bei der Monge-Elkan Ähnlichkeit und vergleiche Zeichenketten z 1 = Frau Angelina Jolie und z 2 = Herr Angelino Yolie. Zudem verwende ich die gleiche sekundäre Ähnlichkeitsfunktion TokenSim: ( ) ( ) ( ) Ich nehme an, dass sich in der gesamten Domäne zehn Dokumente befinden. Jeweils fünf enthalten den Token Herr und fünf den Token Frau. Die restlichen Tokens kommen jeweils nur einmal vor. Es ergeben sich folgende Vektoren V und W: { } { } Bei einem Schwellenwert für die sekundäre Ähnlichkeitsfunktion θ = 0,75 erhält man folgende Menge Close(θ, z 1, z 2 ) = {Angelina, Jolie}. Daraus ergibt sich folgende Ähnlichkeit: ( ) Der Unterschied zu der im vorherigen Kapitel besprochenen Monge-Elkan Ähnlichkeit besteht darin, dass bei Monge-Elkan die Terme gleiche Gewichtung besitzen, wohingegen bei soft tf/idf Ähnlichkeit die tf/idf Gewichtung verwendet wird. Des Weiteren verwendet soft tf/idf Ähnlichkeit nur sekundäre Ähnlichkeiten über einem bestimmten Schwellenwert θ. Bei der Monge-Elkan Ähnlichkeit finden alle sekundären Ähnlichkeiten der Tokens aus z 1 zu Tokens aus z 2 Verwendung. 22

28 4 Dublettenbestimmung Die im Kapitel 3 vorgestellten Ähnlichkeitsfunktionen eignen sich alle zum Vergleich einzelner Attributwerte der Dublettenkandidaten. Meistens aber haben die Kandidaten mehrere Attribute, so wie zum Beispiel bei einer üblichen deutschen Geschäftsadresse, die die Attribute {Name, Straße, Postleitzahl, Ort} enthält. Wie bereits in Kapitel 2.2 definiert, wird für die Kandidaten eine Projektion der Attribute definiert, auf dieser ein Dublettenvergleich stattfindet: ( ) { } und ( ) { }. Beim Vergleich der Ähnlichkeit pro Attribut erhält man einen Vektor mit Ähnlichkeiten: ( ) { ( ) ( ) ( )} Ich verwende an dieser Stelle eine etwas andere Notation, die bereits 1969 von Fellegi und Sunter eingeführt wurde und in Zusammenhang mit Dublettenbestimmung seitdem sehr häufig verwendet wird [vgl. Fell69]. Seien A und B zwei Tabellen, die verglichen werden sollen und n gleiche Attribute enthalten. Die Kandidatenpaare werden hier mit (α, β) bezeichnet, wobei α aus der Tabelle A stammt und β aus der Tabelle B (α A, β B). Jedes Kandidatenpaar ist entweder der Klasse M oder U zugewiesen. M enthält die Kandidatenpaare, die dasselbe Realweltobjekt repräsentieren, U diejenigen, die unterschiedliche Realweltobjekte repräsentieren. Jedes dieser Kandidatenpaare wird von einem Vektor, in Folgendem auch Entscheidungsvektor genannt, der folgenden Form repräsentiert: Die n Komponenten des Vektors korrespondieren mit den n Attributen der Kandidaten und beschreiben die Übereinstimmung des i-ten Attributes der Kandidaten α und β. Das können Ähnlichkeiten sein, die mit Methoden aus Kapitel 3 bestimmt wurden oder binäre Werte mit x i = 1 bei einer Übereinstimmung oder x i = 0 bei keiner Übereinstimmung. Diese Übereinstimmung kann ebenfalls mithilfe von Methoden aus Kapitel 3 bestimmt werden. Dies geschieht mithilfe eines Schwellenwertes, wie in der Einführung in Kapitel 3 beschrieben. In diesem Kapitel werden Methoden beschrieben, die auf der Basis eines solchen Vektors eine Entscheidung ermöglichen, ob es sich bei einem Kandidatenpaar um Dubletten handelt. Den Schwerpunkt lege ich besonders auf die Methoden, die sich gut für die Datenbasis eignen, die für den Vergleich der Methoden im Rahmen dieser Arbeit zur Verfügung steht. Zuerst beschreibe ich einfache Methoden der Entscheidung, die direkt auf den berechneten Ähnlichkeiten basieren. Besonders interessant für die vorliegenden Daten sind Methoden, die eine Trainingsmenge verwenden können beziehungsweise müssen und darauf basierend ein Entscheidungsmodel erstellen, weil die zur Verfügung stehenden Datenpaare bereits als Dublette beziehungsweise keine Dublette gekennzeichnet sind. Dies sind vor allem Verfahren aus dem Bereich des maschinellen Lernens. Vor allem diese Verfahren werden im Rahmen der Evaluation zum Einsatz kommen. Die konkrete Auswahl der hier beschriebenen Methoden basiert auf [Elma07, S.6f], im Bereich des maschinellen Lernens ergänzt um die künstlichen neuronalen Netze. Abbildung 4 zeigt 23

29 schematisch die Methoden, die bei der Evaluation zum Einsatz kommen und verdeutlicht den Schwerpunkt der Methoden des maschinellen Lernens. Die Beschreibung der probabilistischen Entscheidungsverfahren ist in dem Zusammenhang trotzdem wichtig, da es zum einen hilft, die Grundlagen der Dublettenbestimmung zu verstehen. Zum anderen stellten diese Verfahren über mehrere Jahrzehnte in der Fachliteratur die dominierenden Methoden für die Dublettenbestimmung dar. Dublettenbestimmung Ähnlichkeitsbasierte Verfahren Probabilistische Verfahren Maschinelles Lernen Ein Attribut Naive Bayes Entscheidungsbäume Durchschnitt Support Vector Machine Nächster-Nachbar- Klassifikation Künstliche neuronale Netze Abbildung 4 Die Methoden der Dublettenbestimmung. 4.1 Ähnlichkeitsbasierte Entscheidungsverfahren Als erstes werde ich Entscheidungsverfahren vorstellen, die direkt auf den berechneten Ähnlichkeiten zwischen den Zeichenketten basieren. Die Methoden der Ähnlichkeitsberechnung wurden bereits im Kapitel 3 vorgestellt. Die ähnlichkeitsbasierten Entscheidungsverfahren gehen davon aus, dass es nur eine Ähnlichkeit pro 24

30 Dublettenkandidatenpaar gibt, was damit vergleichbar ist, dass der Entscheidungsvektor x nur eine Dimension besitzt. Das Entscheidungsproblem für kann dann auf folgendes Vorgehen reduziert werden: ( ) { ( ) ( ) Das ist möglich, falls zum Beispiel die Kandidaten α und β nur ein Attribut besitzen. Der optimale Schwellenwert lässt sich durch die Optimierung der Parameter precision und recall bestimmen, die in Kapitel 4.4 vorgestellt werden. Die hier vorgestellten Methoden basieren auf der Evaluation, die in [Bile03] beschrieben wurde Ein Attribut Verfahren Bei dem ein Attribut Verfahren geht es darum, dass man die Entscheidung, ob α und β Dubletten sind, auf Basis der Ähnlichkeitsberechnung eines Attributwerts fällt. Existieren in α und β mehrere Attribute, so erzeugt man ein neues, künstliches Attribut, das alle Werte der anderen Attribute hintereinander geschrieben und getrennt durch einen Trenner, wie zum Beispiel ein Leerzeichen, beinhaltet. Auf diesem Attribut lässt sich die Ähnlichkeit berechnen, in dem man die Inhalte des Attributs, die Zeichenketten z 1 und z 2, mithilfe einer Ähnlichkeitsfunktion vergleicht. Mithilfe dieser Ähnlichkeit und eines Schwellwertes lässt sich entscheiden, ob es sich bei α und β um eine Dublette handelt: ( ) { ( ) ( ) Dieses Verfahren wurde zum Beispiel in [Mong96] vorgeschlagen. Aus dieser Basis wurde auch die Monge-Elkan Ähnlichkeit entwickelt, die in Kapitel vorgestellt wurde Durchschnittverfahren Eine weitere Möglichkeit, die Entscheidung auf der Basis einer Maßzahl zu treffen, ist den Durchschnitt der Ähnlichkeiten einzelner Attributwerte zu bilden. Auf der so erzeugten Zahl kann man ebenfalls einen Schwellenwert anwenden [vgl. Bile03]. Einer Weiterentwicklung dieser Methode könnte sein, die Ähnlichkeit der einzelnen Attribute bei der Durchschnittsberechnung unterschiedlich zu gewichten. Die Suche nach der geeigneten Gewichtung wird so sehr komplex und ähnelt den probabilistischen Entscheidungsproblem, das ich in Kapitel 4.2 vorstelle [vgl. Elma07, S.9]. Deswegen wird in der Evaluation in Rahmen dieser Arbeit nur der einfache Durchschnitt verwendet, ähnlich wie in der Evaluation aus [Bile03]. 25

31 4.2 Probabilistische Entscheidungsverfahren Bereits 1959 beschreibt Newcombe die Dublettenerkennung als eine Aufgabe der Diskriminanzanalyse [vgl. Newc59]. Zehn Jahre später wurde dieser Gedanke formalisiert und beherrschte seitdem die Fachliteratur zum Thema Entscheidungsverfahren bei der Dublettenerkennung [vgl. Fell69]. Der Merkmalsvektor x dient als Input für eine Entscheidungsregel, die x der Klasse M beziehungsweise U zuordnet. Die Hauptannahme dabei ist, dass die Dichtefunktionen des Merkmalsvektors x für M und U unterschiedlich sind. Wenn diese Dichtefunktionen bekannt sind, kann dieses Entscheidungsverfahren als eine Aufgabe für eine Bayes-Entscheidungsregel angesehen werden. In Folgenden stelle ich Entscheidungsverfahren vor, die auf dieser Idee basieren Bayes-Entscheidungsregel der kleinsten Fehlerrate Sei x ein Vergleichsvektor der Kandidaten (α, β). Eine Entscheidung nach einer Bayes- Entscheidungsregel wie folgt definiert [Fahr98, S.360]: Eine Zuordnung erfolgt nach der Bayes-Entscheidungsregel, wenn ein Objekt mit dem beobachteten Merkmalsvektor x derjenigen Klasse ( ) zugeordnet wird, die die größte a posteriori-wahrscheinlichkeit besitzt. Ob (α, β) M oder (α, β) U lässt sich also wie folgt auf Basis einer Bayes- Entscheidungsregel entscheiden: ( ) { ( ) ( ) Das bedeutet, falls die Wahrscheinlichkeit, dass der Vektor x zu M gehört, größer ist als die Wahrscheinlichkeit, dass x zu U gehört, dann wird x als zu M angehörig qualifiziert und umgekehrt. Unter Verwendung des Bayestheorems kann diese Regel wie folgt ausgedrückt werden: ( ) { ( ) ( ) ( ) ( ) ( ) In dem Fall ist ( ) ( ) ( ) ein sogenanntes Likehood und ( ) ( ) 26

32 ein Schwellenwert für Likehood bei dieser Entscheidung. In [Fahr98, S.361] findet man einen Beweis für den folgenden Satz: Unter allen Entscheidungsregeln besitzt die Bayes-Entscheidungsregel für alle x die kleinste bedingte Fehlerrate, wenn x beobachtet wird, und damit auch die kleineste Gesamtfehlerrate. Somit kann diese Entscheidungsregel als optimal im Sinne der kleinsten Fehlerrate bezeichnet werden. Voraussetzung dafür ist natürlich, dass die Verteilung von p(x M) und p(x U) und auch p(m) und p(u) bekannt sind. Diese können mithilfe einer sogenannten Lernstichprobe geschätzt werden. Ein möglicher Ansatz, um die Verteilungen p(x M) und p(x U) zu berechnen, ist die sogenannte naive Bayes Methode. Dazu wird angenommen, dass die Elemente des Entscheidungsvektors unabhängige Beobachtungen darstellen und damit die Wahrscheinlichkeiten p(x i M) und p(x j M) bei i j unabhängig sind. Diese Entscheidungsmethode liefert auch gute Ergebnisse, wenn die Wahrscheinlichkeiten nicht vollkommen unabhängig sind [vgl. Samm11, S.713], was in der Praxis der Dublettenbestimmung meistens der Fall ist. Genau das Gleiche gilt für die Wahrscheinlichkeiten p(x i U) und p(x j U) bei i j. In diesem Fall werden die Wahrscheinlichkeiten wie folgt berechnet: ( ) ( ) ( ) ( ) Die Werte für p(x i M) und p(x i U) können mithilfe einer sogenannten Lernstichprobe aus vorqualifizierten Kandidatenpaaren ermittelt werden. Als vorqualifizierte Datenpaare bezeichnet man die Kandidatenpaare, bei denen die Zugehörigkeit zu Klasse M beziehungsweise U a priori bekannt ist Die kostenoptimale Bayes-Entscheidungsregel Die Minimierung der Fehlklassifikationswahrscheinlichkeit ist nicht immer das beste Kriterium für eine Entscheidungsregel. Die falsche Zuordnung zu Klasse M oder U kann unterschiedliche Konsequenzen haben. Die unterschiedliche Bewertung einer Fehlqualifikation kann durch Berücksichtigung von Kosten c ij ausgedrückt werden. Dies sind Kosten für eine Zuordnung des Vektors x zu Klasse i, wenn dieser Vektor tatsächlich zu Klasse j gehört. Die Kostenfunktionen können wie folgt ausgedrückt werden: ( ) ( ) ( ) ( ) ( ) ( ) 27

33 Somit ergibt sich folgende Entscheidungsregel: ( ) { ( ) ( ) Unter Anwendung des Bayestheorems ergibt sich folgende Entscheidungsregel: ( ) { ( ) ( ) ( ) ( ) ( ) Im Falle der symmetrischen Kosten, das heißt c UM c MM = c MU - c UU, ist die kostenoptimale Entscheidungsregel identisch mit der Regel der kleinsten Fehlerrate [vgl. Very03]. Die Festlegung der Kosten ist schwierig und in der Literatur oft kritisch beurteilt [Fahr98, S.363]: Die Festlegung allgemeiner Kostenfunktionen ist allerdings meist schwierig und ( ) von einem hohen Maß an Willkür geprägt Die Klasse der möglichen Dubletten Erwähnenswert in Zusammenhang mit den probabilistischen Entscheidungsverfahren ist noch die Klasse der möglichen Dubletten. Dabei wird vorgeschlagen, eine dritte Klasse für die Entscheidungsregel einzuführen, nämlich die der möglichen Dubletten, in [Fell69] possible link genannt. Dieser Klasse sollen Kandidatenpaare zugeordnet werden, bei denen der Likehood l(x) im Rahmen einer festgelegten Fehlerquote nah am Schwellenwert liegt. Die Kandidatenpaare, die der Klasse der möglichen Dubletten zugeordnet wurden, sollen manuell von einem Experten auf die Zugehörigkeit zu den Klassen M und U überprüft werden [vgl. Fell69]. 4.3 Maschinelles Lernen Die probabilistischen Entscheidungsverfahren, basierend auf Bayes-Entscheidungsregeln und üblicherweise aufbauend auf den Ideen aus [Fell69], beherrschten über 20 Jahre lang den Bereich der Dublettenbestimmung. Die Entwicklung neuer Verfahren im Bereich des maschinellen Lernens führte dazu, dass diese neuen Methoden seit Anfang des 21. Jahrhunderts den Eingang in die Dublettenbestimmung gefunden haben. Das maschinelle Lernen setzt die Existenz von Lernstichproben voraus, die aus vorqualifizierten Kandidatenpaaren bestehen. Bei diesen Kandidatenpaarten ist die Zugehörigkeit zu der Klasse M oder U bekannt. Dies kann mithilfe einer manuellen Vorqualifizierung durch einen Experten erfolgen. Da im Kontext dieser Arbeit eine große Menge solcher vorqualifizierten Daten zur Verfügung steht, sind die Techniken des maschinellen Lernens eine sehr interessante Dublettenbestimmungsmethode. In diesem Kapitel stelle ich die Methoden des maschinellen 28

34 Lernens vor, die in dem Kontext der Dublettenbestimmung interessant sind beziehungsweise bereits in dem Zusammenhang mit Dublettenbestimmung untersucht wurden. Im Bereich des maschinellen Lernens wird auch die Methode des naive Bayes eingesetzt, die bereits im Kapitel vorgestellt wurde und in diesem Kapitel nicht erneut explizit vorgestellt wird Entscheidungsbäume Als Entscheidungsbäume bezeichnet man gerichtete Bäume, die mehrstufige Entscheidungsregeln darstellen [vgl. Borg98]. Mithilfe dieser Bäume ist es möglich, automatisierte Klassifizierungen durchzuführen, in diesem konkreten Fall die Dublettenbestimmung. Um eine Klassifizierung eines Kandidatenpaares (α, β) durchzuführen, geht man vom Wurzelknoten entlang des Baumes. Bei jedem Knoten wird mithilfe eines Attributwerts des Merkmalvektors x die Entscheidung getroffen, welcher Knoten für die nächste Entscheidung verwendet wird. Dies geschieht so lange, bis man ein Blatt erreicht hat. Die Blätter eines Entscheidungsbaums entsprechen den Klassifikationsklassen, in diesem Fall M für Dublette und U für keine Dublette. In Abbildung 5 ist ein möglicher Baum für Dublettenbestimmung dargestellt. Die Knoten tragen die Bezeichnung des Attributs, dessen Ähnlichkeit ausgewertet wird. Die Ähnlichkeiten können zum Beispiel mithilfe der Methoden aus Kapitel 3 bestimmt werden und die Attribute des Entscheidungsvektors x darstellen. Die Kanten sind jeweils mit den Ähnlichkeiten beschriftet, die zu dem jeweils nächsten Knoten führen. Die Blätter sind dann die entsprechenden Klassen M und U. name > 0,5 0,5 plz U > 0,5 0,5 M U Abbildung 5 Ein möglicher Entscheidungsbaum für Dublettenerkennung. Entscheidungsbäume sind für Menschen sehr gut lesbar und können ebenso manuell erstellt werden. Im Kontext dieser Arbeit stehen die Methoden des maschinellen Lernens, um 29

35 Entscheidungsbäume zu induzieren, im Fokus. Die Induktion erfolgt üblicherweise rekursiv und benötigt vorqualifizierte Lernstichproben. In jedem Induktionsschritt wird ein Attribut des Entscheidungsvektors x gesucht, mit dem die Qualifizierung zu der bereits bekannten Klasse sich am besten durchführen lässt. Wie diese Auswahl erfolgt und wie gegebenen falls die Schwellenwerte für die Kanten berechnet werden, ist abhängig von dem jeweiligen Algorithmus. Dies wird rekursiv auf den entstandenen Teilmengen so lange wiederholt, bis in jeder Teilmenge möglichst nur noch Objekte einer Qualifikation vorhanden sind. Der wohl erste bekannte Algorithmus zur Induktion der Entscheidungsbäumen ist der CHAID (Chi-square Automatic Interaction Detectors) Algorithmus. Dieser verwendet für die Wahl der Attribute einen Chi-Quadrat-Unabhängigkeitstest. Dieser Test berechnet die Abhängigkeit zweier Variablen und drückt diese als Chi-Quadrat-Abstand aus. Je größer dieser Abstand, desto größer die Abhängigkeit zweier Variablen. Das Attribut mit dem größten Abstand, somit auch der größten Abhängigkeit zur Zielgröße, wird in der jeweiligen Rekursion als Entscheidungsattribut für einen Knoten des Baums gewählt [vgl. Sonq64]. Der CHAID Algorithmus erlaubt beliebig viele Verzweigungen pro Knoten. Dieser Algorithmus eignet sich nur für diskrete Attributwerte und ist somit für die Entscheidungsvektoren mit reellwertigen Attributwerten, wie es bei Ähnlichkeitswerten der Fall ist, nicht geeignet. Der CARD (Classification And Regression Trees) Algorithmus ist für reellwertige Attribute geeignet. Bei der Anwendung des CARD Algorithmus werden, im Gegensatz zu CHAID, Binärbäume erzeugt. Die Auswahl der Attribute erfolgt durch die Minimierung der Entropie (Maximierung des Informationsgehalts) in Bezug auf die Zielklassen. Des Weiteren wird ein Schwellenwert gesucht, der auf Basis des jeweiligen Attributs die beste Trennung bezüglich der Zielklassen erlaubt. Die Attribute und die dazugehörigen Schwellenwerte, die die höchste Trefferquote bezüglich der Zielklasse besitzen und somit die niedrigste Entropie aufweisen, finden sich weiter oben in dem Entscheidungsbaum [vgl. Brei84]. In [Coch01] findet sich ein Vergleich verschiedener Methoden des maschinellen Lernens im Kontext der Dublettenentscheidung. Hier erreicht der CARD Algorithmus im Vergleich zur linearen Diskriminanzanalyse und einer Variante der Nächste-Nachbarn-Klassifikation die niedrigste Fehlerquote. Es existieren zahlreiche Weiterentwicklungen des CARD Algorithmus, wie der ID3-, C4.5- oder C.5.0- Algorithmus, die aber alle die Grundidee der Minimierung der Entropie verfolgen Support Vector Machine Die Idee einer SVM (Support Vector Machine), zu Deutsch Stützvektormaschine, basiert auf Arbeiten vom Wladimir Wapnik [vgl. Wapn95]. Die Grundidee dieses Klassifikators ist, die Entscheidungsvektoren einer Lernstichprobe mit vorqualifizierten Trainingsobjekten durch eine Hyperebene gemäß deren Klassenzugehörigkeit möglichst gut zu trennen. Dabei soll der Abstand der Hyperebene zu den Vektoren, die ihr am nächsten liegen, maximiert werden. Diese Maximierung soll helfen, Entscheidungsvektoren unbekannter Klassen möglichst gut automatisch zu klassifizieren. Abbildung 6 zeigt ein einfaches Beispiel einer solchen 30

36 Hyperebene in einem zweidimensionalen Raum. Die als Punkte eingezeichneten Entscheidungsvektoren gehören jeweils einer roten und einer blauen Klasse. Hyperebene Abbildung 6 Ein Beispiel einer vom SVM erzeugten Hyperebene. Die Lage der Hyperebene ist nur von den Vektoren abhängig, die der Ebene am nächsten liegen. Mithilfe dieser Stützvektoren wird die Hyperebene exakt mathematisch beschrieben. Eine Trennung mithilfe einer Hyperebene ist im Normalfall nur möglich, wenn die Vektoren auch linear trennbar sind. Dies ist in der Praxis aber oft nicht der Fall. Hier bedient man sich eines Kernels. Die Aufgabe eines Kernels ist es, den Vektorraum mit den dazugehörigen Entscheidungsvektoren in einen höherdimensionalen Raum zu überführen. In diesem Raum wird dann die Hyperebene berechnet. Anschließend wird eine Rücktransformation in den ursprünglichen, niedrigerdimensionalen Raum durchgeführt. Dadurch kann die Hyperebene zu einer nichtlinearen Hyperfläche werden, die auch nicht zwingend zusammenhängend sein muss, um die Entscheidungsvektoren korrekt zu trennen. Eine weitere Möglichkeit, SVMs flexibler zu gestalten, ist die Einführung von Schlupfvariablen. Diese sollen die Kosten einer Fehlklassifikation bestimmen und somit steuern, inwiefern Fehlklassifikationen bei der Berechnung der Hyperebene erlaubt sind. Eine SVM berechnet bei der Klassifizierung für jeden Vektor den Abstand zur Hyperebene. Dieser Abstand kann dazu genutzt werden, bestimmte Entscheidungsvektoren mit sehr niedrigem Abstand zur Hyperebene einer dritten Klasse möglicher Dubletten zuzuordnen, wie es für die Bayes-Entscheidungsregeln im Kapitel vorgeschlagen wurde. Die Dublettenentscheidungen mithilfe einer SVM wurden bereits untersucht. Es wurde gezeigt, dass eine SVM in den meisten Fällen einfacheren, auf Ähnlichkeiten basierenden 31

37 Entscheidungsmethoden überlegen ist [vgl. Bile03]. Es wurde gleichzeitig betont, dass die optimale Entscheidungsmethode für Dubletten domänenabhängig ist. Somit können für verschiedenartige Daten unterschiedliche Methoden zum Erfolg führen Nächste-Nachbarn-Klassifikation Die Nächste-Nachbarn-Klassifikation wird mithilfe eines k-nearest-neighbor-algorithmus, kurz k-nn, implementiert. Es ist ein relativ einfaches und intuitives Verfahren, bei dem die Trainingsdaten nur gespeichert werden, was als lazy learning bezeichnet wird. Die Entscheidung über die Klassenzugehörigkeit eines neuen Entscheidungsvektors wird mithilfe seiner k nächsten Nachbarn getroffen. Um die Abstände zwischen den Vektoren zu berechnen, kann man sich eines beliebigen Abstandsmaßes bedienen, zum Beispiel des euklidischen Abstands. Die Entscheidung über die Klassenzuordnung ist dann eine Mehrheitsentscheidung. Je nachdem, zu welcher Klasse die meisten k nächsten Nachbarn des Entscheidungsvektors gehören, wird auch der neue Entscheidungsvektor zugeordnet [vgl. Fix51]. Abbildung 7 zeigt eine beispielhafte Klassifikation eines neuen Vektors in einem zweidimensionalen Raum mit unterschiedlichen Werten für k. k = 1 k = 7 Abbildung 7 Beispiel einer k-nn Klassifikation in einem zweidimensionalen Raum. An diesem Beispiel wird deutlich, dass die Auswahl der Größe von k entscheidend für die Qualität der Klassifikation ist. Ein kleines k oder gar ein k = 1 kann schnell zu einer falschen Zuordnung führen. Ein großes k kann Vektoren in die Entscheidung einbeziehen, die sehr weit entfernt liegen. Dem kann man zum Beispiel mit einer gewichteten Abstandsmetrik begegnen, die näher liegende Vektoren höher gewichtet [vgl. Hall08]. 32

38 Im Kontext der Dublettenbestimmung wurde die Nächste-Nachbarn-Klassifikation bereits untersucht. Obwohl diese nicht am besten abgeschnitten hat, ist die Nächste-Nachbarn- Klassifikation wegen ihrer Einfachheit und Schnelligkeit durchaus interessant [vgl. Coch01]. Es gibt auch Ansätze, die die Nächste-Nachbarn-Klassifikation mit einer SVM kombinieren und dadurch eine sehr gute Klassifikation erreichen können [vgl. Chri08] Künstliche neuronale Netze Eine weitere bekannte Technik aus dem Bereich des maschinellen Lernens sind die künstlichen neuronalen Netze. Es sind Netze aus künstlichen Neuronen, die sich am Vorbild der biologischen neuronalen Netze orientieren. Ein künstliches neuronales Netz kann wie folgt definiert werden [Krie07, S.36]: Ein Neuronales Netz ist ein sortiertes Tripel (N, V, w) mit zwei Mengen N, V sowie einer Funktion w, wobei N die Menge der Neurone bezeichnet und V eine sortierte Menge {( ) } ist, deren Elemente Verbindungen von Neuron i zu Neuron j heißen. Die Funktion definiert die Gewichte, wobei w((i, j)), das Gewicht der Verbindung von Neuron i zu Neuron j, kurz mit w i,j bezeichnet wird. Sie ist je nach Auffassung entweder undefiniert oder 0 für Verbindungen, welche in dem Netz nicht existieren. Das zentrale Bestandteil der künstlichen neuronalen Netze sind künstliche Neuronen. Diese nehmen eine oder mehrere Eingaben x entgegen, die mithilfe der Gewichte w gewichtet werden. Die Eingaben können die Ausgaben anderer Neuronen oder externe Eingaben sein. Die Propagierungsfunktion erzeugt aus den Eingaben und den Gewichtungen eine Netzeingabe. Die Propagierungsfunktion bildet oft einfach die Summe der gewichteten Eingaben [vgl. Brau95]. Ein künstliches Neuron wird aktiviert, wenn die Netzeingabe einen Schwellenwert überschreitet. Der Aktivierungszustand, also auch die Ausgabe eines künstlichen Neurons, wird von einer Aktivierungsfunktion berechnet, die die Netzeingabe, den alten Aktivierungszustand und den Schwellenwert als Eingaben verwendet. ( ) t wird dabei als Zeitschritt bezeichnet. Die eben beschriebene Form eines künstlichen Neurons zeigt die Abbildung 8. 33

39 x 1,j w 1,j Aktivierungsfunktion x 2,j... w 2,j Netzeingabe net j f act o j Aktivierung x n,j w n,j Eingaben Gewichtungen Propagierungsfunktion Θ j Schwellenwert Abbildung 8 Ein künstliches Neuron. Manchmal wird auch eine Ausgabefunktion verwendet. Diese berechnet aus der Aktivierung a j die Ausgabe eines künstlichen Neurons o j [vgl. Grau92]. In der von mit verwendeter Darstellung ist die Aktivierung gleichzeitig die Ausgabe des Neurons. Künstliche neuronale Netze können verschiedene Topologien besitzen. In Rahmen dieser Arbeit werde ich mich auf die FeedForward-Netze beschränken. Die FeedForward-Netze werden wie folgt definiert [Krie07, S.41]: Ein FeedForward-Netz besitzt klar abgetrennte Schichten von Neuronen: Eine Eingabeschicht, eine Ausgabeschicht und beliebig viele innere, von außen nicht sichtbare Verarbeitungsschichten (auch versteckte Schichten bzw. hidden layer genannt). Verbindungen sind nur zu Neuronen der jeweils nächsten Schicht erlaubt. Im Kontext der Dublettenbestimmung kann die Eingabeschicht aus den Attributen des Entscheidungsvektors bestehen und die Ausgabeschicht die jeweilige Klassen M und U repräsentieren. Ein Beispiel eines solchen Netzes zeigt Abbildung 9. 34

40 Name Gewichtsschicht Gewichtsschicht Strasse M PLZ Ort N Eingabeschicht Verarbeitungsschicht Ausgabeschicht Abbildung 9 Ein Beispiel eines FeedForward-Netzes für eine Dublettenentscheidung. Das in Abbildung 9 dargestellte Netz ist ein sogenanntes Perceptron. Es besitzt eine feste Eingabeschicht, dann eine oder mehrere trainierbare Gewichtsschichten (in Abbildung 9 sind es zwei) und eine feste Ausgabeschicht. Die Schichten sind jeweils vollverknüpft. Als Propagierungsfunktion wird die als Beispiel angesprochene gewichtete Summe verwendet [vgl. Rose58]. Die einfachste Form eines Perceptrons ist ein Singlelayerperceptron, abgekürzt SLP. Ein SLP besitzt lediglich Eingabe- und Ausgabeneutronen, die mit einer variablen Gewichtsschicht verbunden sind und somit keine Verarbeitungsschicht. Als Lernalgorithmus für SLPs wird meistens die sogenannte Delta-Regel verwendet [vgl. Krie07, S.75f]. Im Prinzip geht es bei der Delta-Regel darum, dass der Output des SLP, für gegebene Entscheidungsvektoren als Input, möglichst immer der bekannten Klassenzuordnung der Lernstichprobe entspricht. Der Gesamtfehler, also die Summe der Fehlzuordnungen, wird durch eine Fehlerfunktion ausgedrückt. Eine Fehlerfunktion ist eine Funktion der Gewichte der Propagierungsfunktion, die den quadratischen Abstand zwischen der Ausgabe und der gewünschten Klassifizierung optimiert. Die Funktion wird auf alle Gewichte, die als Vektor betrachtet werden, angewendet. Der Lernprozess verändert die Gewichte und sucht nach dem Minimum der Fehlerfunktion. Dazu wird diese Funktion abgeleitet, um das Gesamtminimum zu finden. Die Ableitung geschieht mithilfe der Gradienten, die eine Verallgemeinerung der Ableitung für mehrdimensionale Funktionen sind. Die Suche nach dem Minimum wird mithilfe des Gradientenabstieges durchgeführt. Dies ist eine Methode, um vom beliebigen Startpunkt der Funktion entgegen den Gradienten schrittweise in Richtung kleinerer Werte zu gehen. Es sei erwähnt, dass diese Methode nicht immer das globale Minimum findet. Da die Delta-Regel sich nur auf lineare Aktivierungsfunktionen beschränkt, wird die Aktivierungsfunktion ebenfalls in die Ableitung aufgenommen. Da sowohl die Propagierungsfunktion als auch die Aktivierungsfunktion linear sind, geschieht es durch Verschachtelung der Funktionen und Anwendung der Kettenregel. Wichtig ist, dass ein SLP nur linear separierbare Daten qualifizieren kann. 35

41 Das Beispielnetz aus Abbildung 9 ist ein Multilayerperceptron, kurz MLP. Ein MLP besitzt, im Gegensatz zu SLP, zwei oder mehrere trainierbare Gewichtsschichten, die durch eine Verwendung von hidden Layers hinzugefügt werden. Dies sind Schichten von künstlichen Neuronen, die zwischen die Eingabe- und die Ausgabeschicht platziert werden, um mehrere Gewichtsschichten zu ermöglichen. Als Lernalgorithmus wird hier oft der Backpropagation of Error Algorithmus verwendet. Dieser verallgemeinert die Delta-Regel auf MLPs, indem die Fehlerfunktion auf mehrere Gewichtsschichten erweitert wird. Dieser Algorithmus wurde von Paul Werbos entwickelt [vgl. Werb74]. Durch die Einführung mehrerer Schichten ist es möglich auch nicht linear separierbare Daten zu klassifizieren. 4.4 Erfolgsmessung der Dublettenerkennung Da es in dieser Arbeit um einen Vergleich der Methoden der Dublettenerkennung geht, spielt die Erfolgsmessung eine zentrale Rolle. Die Erfolgsmessung einer Entscheidungsregel ist insofern schwierig, da sie voraussetzt, dass die Zugehörigkeit der Kandidatenpaare zu den Entscheidungsklassen M (Dublette) und U (keine Dublette) bekannt sein muss. Dies erfordert einen hohen manuellen Aufwand, um die Kandidatenpaare zu klassifizieren. Allgemein werden Klassifizierungsfehler erst einmal als spezifische Fehler gemessen. Ein spezifischer Fehler ist der Fehler einer Klassifizierung, ausgedrückt durch den Abstand der erwarteten und der vorgenommenen Klassifizierung. Wenn man das Ergebnis einer Klassifizierung als Vektor betrachtet, kann der spezifische Fehler als euklidischer Abstand oder Root-Mean-Square ausgedrückt werden [vgl. Krie07, S.58]. Der Gesamtfehler ist dann die Summe der spezifischen Fehler aller vorgenommenen Qualifizierungen. Diese Berechnungen lassen sich im Kontext der Dublettenerkennung vereinfachen, da es hier nur zwei mögliche Klassifizierungen gibt. Bei zwei Entscheidungsklassen, wie es bei der Dublettenerkennung der Fall ist, ergeben sich zwei Typen von Fehlern. Ein Kandidatenpaar, das keine Dublette darstellt, kann als Dublette qualifiziert werden. In dem Fall spricht man von false positive. Umgekehrt kann eine Dublette als keine Dublette qualifiziert werden. Dann spricht man von false negative. Bei Kandidatenpaaren, die korrekt als Dublette beziehungsweise keine Dublette qualifiziert werden, spricht man dementsprechend von true positive oder true negative [vgl. Naum10, S.61f]. Abbildung 10 zeigt anschaulich diese vier Fehlergruppen. 36

42 Daten Gefunden gefundene Dubletten false positives true positives tatsächliche Dubletten Tatsächlic false negatives true negatives Abbildung 10 Fehlergruppen bei der Dublettenerkennung [Naum10, S.62]. Basierend auf diesen Fehlergruppen werden zwei Metriken definiert, die im Bereich der Dublettenerkennung populär sind, nämlich precision und recall [vgl. Naum10, S.61f]. Precision misst das Verhältnis der korrekt identifizierten Dubletten zu allen gefundenen Dubletten. Recall ist das Verhältnis der korrekt identifizierten Dubletten zu den tatsächlichen Dubletten. Beide Metriken sind wie folgt definiert [Naum10, S.61]: Um eine hohe precision zu erhalten, ist es am besten, möglichst wenige Kandidatenpaare der Klasse der Dubletten zuzuordnen. Das führt aber zu schlechtem recall, denn hier führt das Zuordnen aller Kandidatenpaare zur Klasse der Dubletten zum besten Ergebnis, was sich wiederum in einer schlechten precision niederschlägt. Um einen Kompromiss zwischen den zwei Metriken zu finden, wird das F-Measure verwendet. Es ist ein harmonisches Mittel von precision und recall, der wie folgt definiert ist [Naum10, S.62]: Um ein gutes F-Measure zu erreichen, müssen also precision und recall möglichst hoch sein. Je nach der Datendomäne beziehungsweise dem späteren Einsatz der Daten kann es erforderlich sein, eine hohe precision oder ein hohes recall zu erreichen. Beispielsweise für eine Beurteilung der Kreditwürdigkeit einer Person ist die Zusammenführung zweier Datensätze, die nicht dieselbe Person (dasselbe Realweltobjekt) darstellen, ein viel gravierenderer Fehler 37

43 als das Nichtentdecken einer Dublette. Somit ist in solchen Fällen eine hohe precision erforderlich, auch auf Kosten eines niedrigeren recall [vgl. Weis08]. Dies kann durch ein gewichtetes F-Measure erreicht werden, das wie folgt definiert ist [Mann08, S.156]: ( ) Mit β=1 ergibt sich das F-Measure als harmonisches Mittel, wie oben beschrieben. Deswegen spricht man dabei oft von dem F1-Measure. 38

44 5 Anforderungen, Vorgehensweise und Versuchsaufbau In diesem Kapitel werde ich die Vorgehensweise bei der Evaluation beschreiben. Zuerst werde ich die vorliegende Datenbasis vorstellen. Danach beschreibe ich, welche Anforderungen an die einzelnen Schritte der Implementierung der Evaluation von mir gestellt wurden. Anschließend widme ich mich der Implementierung des Versuchsaufbaus und den dabei verwendeten Technologien und Softwaretechniken. Im Wesentlichen ist der Versuchsaufbau in drei Teile unterteilt. Der erste Teil dient der Bestimmung der Ähnlichkeiten der vorliegenden Dublettenkandidatenpaare. Im zweiten Teil geht es darum, auf der Basis dieser Ähnlichkeitswerte automatisiert zu bestimmen, ob es sich bei den Kandidatenpaaren um Dubletten handelt oder nicht. Der dritte Teil ist die Erfolgsmessung der Dublettenbestimmung, die mithilfe der zu den Dublettenkandidaten zugehörigen, manuell erstellten Dublettenmarkierung, durchgeführt wird. Diese manuelle Entscheidung wird der automatischen gegenüber gestellt. Dabei werden die Abweichungen gemessen und bewertet. 5.1 Die Datenbasis Um die Güte der automatischen Dublettenentscheidungen zu verifizieren, benötigt man Dublettenkandidatenpaare, bei denen bereits bekannt ist, ob es sich um eine Dublette handelt oder nicht. Um diese manuell zu erstellen, ist ein hoher Aufwand nötig. Offen zugängliche Quellen mit Daten, bei denen die Dublettenzuordnungen bereits bekannt sind, die in der Literatur auch golden standard genannt werden, sind äußerst rar. Daten dagegen, die im Rahmen von Geschäftsprozessen verwendet werden und dabei auf Dubletten geprüft wurden, sind oft aufgrund von Datenschutzbestimmungen oder Betriebsgeheimnissen nicht offen zugänglich. Künstlich hergestellte Dublettenkandidaten spiegeln hingegen häufig nicht die Probleme und Abweichungen wieder, die in der Praxis bei Dubletten vorkommen [vgl. Naum10, S. 65f]. Bei den Daten, die für diese Evaluation zur Verfügung stehen, handelt es sich um deutsche Firmenadressen. Die Dublettenkandidatenpaare entstanden im Rahmen eines Geschäftsprozesses, bei dem zwei Datenbanken A und B, die Firmenadressen enthalten, gegeneinander abgeglichen wurden. Täglich wurden die Neuzugänge und Änderungen aus der Datenbank A gegen den kompletten Datenbestand der Datenbank B abgeglichen. Der Abgleich bestand aus einer simplen Vergleichslogik. Verglichen wurden die Attributwerte der Attribute Name, Straße, Postleitzahl und Ort der Adressen. Die in der Datenquelle verwendeten Namen für die Attribute sind name, strasse, plz und ort. Die Werte der Attribute wurden vor dem Abgleich in Kleinschreibung überführt. Bei einer Identität der Attribute wurde die Dublettenentscheidung automatisch getroffen. Falls nur Teile der Attributwerte übereingestimmt haben, wie zum Beispiel die Postleitzahl und die ersten fünf Buchstaben des Namens, wurden die Datensätze zur manuellen Qualifizierung ausgesteuert. Falls keine Übereinstimmung von Teilen der Attributwerte festgestellt wurde, wurden die Kandidaten automatisch als keine Dubletten gekennzeichnet. Aus Gründen des Betriebsgeheimnisses 39

45 muss hier leider auf eine detaillierte Beschreibung der Vergleichslogik verzichtet werden. Abbildung 11 stellt schematisch den angesprochenen Prozess dar. Dublettenkandidatenpaar Automatische Qualifizierung Manuelle Qualifizierung Dublette Keine Dublette Abbildung 11 Die Qualifizierung von Dublettenkandidatenpaaren. Bei der manuellen Dublettenklassifizierung hat ein Experte die Entscheidung getroffen, ob es sich bei dem Kandidatenpaar um eine Dublette handelt oder nicht. Da es ein geschäftskritischer Prozess ist, wurde dabei sehr sorgfältig gearbeitet. Somit kann man von einer sehr geringen Quote an Falschzuordnungen ausgehen, wobei, wie bei jedem manuellen Vorgang, Fehler nicht ausgeschlossen werden können. In diesem Prozess wurden circa 88 Kandidatenpaare pro Tag manuell qualifiziert. Die Daten für die Evaluation stammen direkt aus dem System, in dem die manuelle Qualifizierung stattgefunden hat, und liegen in mehreren Tabellen einer relationalen Datenbank vor. Für die spätere Auswertung der Ergebnisse ist es wichtig zu wissen, dass bei der Entscheidung, ob ein Dublettenkandidatenpaar eine Dublette darstellt oder nicht, prozessbedingt sehr auf die rechtliche Eigenständigkeit der verglichenen Firmen geachtet wurde. Dazu ein Beispiel eines Dublettenkandidatenpaars in Tabelle 5, das bei der manuellen Bearbeitung als keine Dublette markiert wäre. Der Grund ist die unterschiedliche Rechtsform, einmal GmbH und einmal OHG. Selbst wenn sich bei der GmbH um eine Nachfolgefirma der OHG handelt, so stellen die beiden Datensätze, rechtlich gesehen, Adressen von zwei unterschiedlichen Firmen dar [vgl. Schi02, S.36f]. 40

46 Name Strasse PLZ Ort Muster GmbH Musterstr Musterstadt Muster OHG Musterstr Musterstadt Tabelle 5 Ein Bespiel eines Dublettenkandidatenpaares, dass als keine Dublette markiert wäre. Für die Evaluation habe ich Kandidatenpaare ausgewählt, die im Zeitraum von circa drei Jahren manuell qualifiziert wurden. Die Menge enthält Kandidatenpaare, die als Dublette qualifiziert wurden, und Kandidatenpaare, die als keine Dublette qualifiziert wurden. Für die Evaluation kann also eine große Menge manuell qualifizierter Dublettenkandidatenpaare, die aus einem echten Geschäftsprozess stammen, verwendet werden. Somit ist zu erwarten, dass die Evaluation durchaus praxisrelevante Ergebnisse für die Güte einer automatisierten Dublettenerkennung in der Domäne der deutschen Geschäftsadressen liefert. 5.2 Anforderungen an die Umsetzung der Evaluation Die Evaluation soll in drei Schritten erfolgen. Im ersten Schritt wird für alle Dublettenkandidatenpaare die Ähnlichkeit der Attribute bestimmt. Für die Berechnung der Ähnlichkeit kommen die Ähnlichkeitsbestimmungsmethoden zum Einsatz, die in Kapitel 3 beschrieben wurden. Somit entsteht pro Kandidatenpaar und Ähnlichkeitsbestimmungsmethode ein Vektor, der die Ähnlichkeiten der Attributwerte enthält. Dieser Vektor soll dazu dienen, mithilfe der Dublettenbestimmungsmethoden aus Kapitel 4 zu bestimmen, ob es sich bei den Dublettenkandidatenpaaren um Dubletten handelt oder nicht. Im letzten Schritt wird diese Entscheidung mit der bereits manuell getroffen Entscheidung für das jeweilige Kandidatenpaar verglichen. Dies ermöglicht Erfolgsauswertungen mithilfe der Methoden aus dem Kapitel 4.4. Abbildung 12 stellt diesen Prozess schematisch dar. Im Folgenden widme ich mich den Anforderungen, anhand dessen diese Schritte realisiert werden sollen. Dieser Beschreibung soll als Grundlage für die Umsetzung dienen. Ähnlichkeitsbestimmung Dublettenbestimmung Erfolgsmessung Abbildung 12 Grundlegender Versuchsaufbau. 41

47 5.2.1 Ähnlichkeitsbestimmung Die Ähnlichkeitsbestimmung soll für alle Dublettenkandidatenpaare die Ähnlichkeit der Attribute name, strasse, plz und ort bestimmen. Zusätzlich soll die Ähnlichkeit eines künstlich erzeugten Attributes all berechnet werden. Dieses Attribut soll den Inhalt der anderen Attribute enthalten, die hintereinander geschrieben und mit Leerzeichen getrennt sind. Für die Berechnung sollen alle in Kapitel 3 beschriebenen Ähnlichkeitsfunktionen angewendet werden. Für die Funktionen, die Konfigurationsparameter enthalten beziehungsweise, wie die hybriden Ähnlichkeitsfunktionen aus Kapitel 3.3, eine sekundäre Ähnlichkeitsfunktion verwenden, soll es eine einfache und flexible Konfigurationsmöglichkeit geben. Die Ergebnisse der Ähnlichkeitsbestimmung sollen in einer Datenbank persistiert werden. Da die Ähnlichkeitsbestimmung ein komplexer Prozess ist, ist zu erwarten, dass für die komplette Durchführung der Berechnung mithilfe aller Methoden eine Berechnungsdauer von mehreren Stunden erforderlich sein wird. Deswegen soll es nach einer Konfiguration möglich sein, die Ähnlichkeitsbestimmung für alle Kandidatenpaare und alle Konfigurationen der Ähnlichkeitsfunktionen in einem manuell angestoßenen Schritt durchzuführen. Für die Durchführung beziehungsweise die Implementierung der Ähnlichkeitsbestimmung soll möglichst auf bereits vorhandene Implementierungen und Frameworks zurückgegriffen werden. Diese sollen unter einer open source Lizenz stehen, die eine lizenzkostenfreie Verwendung im Rahmen einer wissenschaftlichen Arbeit erlaubt Dublettenbestimmung Die Ergebnisse der Ähnlichkeitsbestimmung bilden die Basis für die Dublettenbestimmung. Die Dublettenbestimmung soll mit den Methoden aus Kapitel 4 durchgeführt werden, wobei vorrangig die Methoden des maschinellen Lernens zu Einsatz kommen sollen. Zum Vergleich sollen ähnlichkeitsbasierte Methoden aus Kapitel 4.1 verwendet werden. Bei den Methoden des maschinellen Lernens sollen die Modelle, die in der Trainingsphase entstehen, ersichtlich und auswertbar sein. Idealerweise sollten diese, wenn möglich, auch graphisch darstellbar sein. Dies wäre zum Beispiel bei den Wahrscheinlichkeitsverteilungen der naive Bayes Methode oder den induzierten Entscheidungsbäumen möglich. Aufgrund der algorithmischen Komplexität der Verfahren des maschinellen Lernens soll eine eigene Implementierung möglichst vermieden werden. Hier wäre eine geeignete Anwendung beziehungsweise ein geeignetes Framework die bessere Wahl. Diese sollen die beschriebenen Methoden implementieren, eine möglichst unkomplizierte Konfiguration bieten sowie die Schritte des Lernens und der Evaluation beherrschen. Des Weiteren sollte die Anwendung beziehungsweise die verwendeten Frameworks unter einer open source Lizenz stehen, die eine lizenzkostenfreie Verwendung im Rahmen einer wissenschaftlichen Arbeit erlaubt. 42

48 5.2.3 Erfolgsmessung Die Erfolgsmessung soll nach den Vorgaben aus dem Kapitel 4.4 erfolgen, also im Wesentlichen precision, recall und F-Measure Messung vornehmen, und somit die Abweichung des Ergebnisses der automatischen Methoden von der manuellen Dublettenbestimmung ausdrücken. Da bei den gegebenen Daten sowohl eine hohe precision als auch ein hohes recall gefragt ist, soll die ungewichtete Variante des F-Measures zum Einsatz kommen, auch F1- Measure genannt. Das Zustandekommen der Metriken sollte transparent und nachvollziehbar sein. Auch der Vergleich der automatischen Entscheidung mit der manuellen Markierung auf der Ebene der einzelnen Dublettenkandidatenpaare soll möglich sein. Eine graphische Auswertung der Metriken wäre ebenfalls wünschenswert. 5.3 Evaluationsimplementierung In diesem Kapitel beschreibe ich, wie und mithilfe welcher Frameworks und Anwendungen, die in Kapitel 5 beschrieben Anforderungen an die Evaluationsschritte von mir umgesetzt wurden Ähnlichkeitsbestimmung Um die Anforderungen an die Ähnlichkeitsbestimmung zu realisieren, habe ich mich entschlossen, eine eigene Implementierung zu erstellen. Es existieren einige wenige Frameworks, die die Aufgabe haben, einen Vergleich verschiedener Methoden der Ähnlichkeitsbestimmung zu ermöglichen. Eines davon ist DuDe: The Duplicate Detection toolkit. Dieser wird in [Drai10] beschrieben und dort auch mit anderen, ähnlichen Frameworks verglichen. DuDe entspricht weitgehend den Anforderungen, müsste allerdings erweitert werden, da dieser nicht alle in Kapitel 3 beschriebenen Methoden der Ähnlichkeitsbestimmung abdeckt. Außerdem ist DuDe darauf ausgerichtet, Dublettengruppen in größeren Datenmengen zu suchen. Die Daten für die Evaluation liegen aber bereits als Dublettenkandidatenpaare vor, sodass hier eine Anpassung des Frameworks nötig wäre. Des Weiteren ist DuDe sehr generisch angelegt und bietet somit einiges an Funktionalität, die für die Evaluation nicht benötigt wird. Diese generische Ausrichtung, wie zum Beispiel die interne Darstellung der Daten in der JSON (JavaScript Object Notation, siehe dazu auch ist in Bezug auf die Laufzeit kontraproduktiv. Aufgrund dieser Punkte habe ich eine Entscheidung für eine eigene Implementierung getroffen, die gezielt und in möglichst schlanker Form die Anforderung erfüllen soll. Gemäß dem Werkzeug, Automat, Material-Ansatz (WAM-Ansatz) [vgl. Züll04], geht es bei der Ähnlichkeitsbestimmung um die Implementierung eines Automaten. Diese Entwurfsmetapher deckt sich mit dem in Anforderungen beschriebenen Szenario. Gemäß der Definition [Züll04, S.70], ist ein Automat ein Gerät zum Behandeln von Material. Er soll Routinearbeiten erledigen, die aus einer definierten Reihenfolge von Arbeitsschritten bestehen und zu einem definierten Ergebnis führen, ohne eine menschliche Intervention. Normalerweise werden 43

49 Automaten im Hintergrund ausgeführt und einmal vor dem Start konfiguriert. Die Rolle des Materials wird von den Dublettenkandidatenpaaren erfüllt. Ein Material ist laut Definition [Züll04, S.68] ein Objekt, das mithilfe von Werkzeugen beziehungsweise Automaten bearbeitet wird und auch ein Teil des Ergebnisses werden kann. Die Dublettenkandidatenpaare sollen von dem Automaten bearbeitet werden, sodass als Ergebnis ein Ähnlichkeitsvektor entsteht, der die Ähnlichkeiten der Attributwerte der Kandidatenpaare enthält. Die Architektur der Implementierung soll sich an der 3-Schichten Architektur orientieren [vgl. Züll04, S.297f]. Da keine Interaktion mit dem Benutzer geplant ist, entfällt die Präsentationsschicht. Im Folgenden gehe ich auf die konkrete Implementierung der Daten- und der Funktionsschicht ein. Die Datenschicht enthält die Datenobjekte und kümmert sich um das Persistieren der Datenobjekte in einer Datenbank. Die wesentlichen Datenobjekte sind hier DupeData, das die Dublettenkandidatenpaare repräsentiert und SimResult, das die Ergebnisse der Ähnlichkeitsbestimmung kapselt. Ein DupeData Objekt besteht im Wesentlichen aus Address Objekten, die die Geschäftsadressen repräsentieren. SimResult enthält wiederrum SimScore Objekte und entsprechende Referenz auf ein DupeData Objekt. Die Persistenz der Datenobjekte wird mithilfe des DAO (Data Access Objects) Entwurfsmusters realisiert. DAOs sind Objekte, die sich um das Persistieren und das Materialisieren von Datenobjekten kümmern [vgl. Sun01]. Die Funktionsschicht greift auf die Datenschicht nur über die Schnittstellen der DAOs. Die konkrete Implementierung der Persistenz ist für die Funktionsschicht transparent. Die Funktionsschicht implementiert die Logik des Abgleichautomaten. Ein wesentlicher Teil dieser Logik sind die Implementierungen der Ähnlichkeitsfunktionen. All diese Implementierungen besitzen eine gemeinsame, einheitliche Schnittstelle, die StringComparatorService genannt wird. Diese erlaubt eine einfache Iteration über verschiedene Implementierungen und ermöglicht eine unkomplizierte Erweiterung des Automaten um weitere Ähnlichkeitsfunktionen. In dieser Schicht findet die Berechnung der Ähnlichkeiten der Dublettenkandidatenpaare statt. Um die Durchführung der Ähnlichkeitsberechnung kümmert sich die Implementierung der Schnittstelle ComparisonService. Diese enthält nur eine Methode mit den Namen makecomparison. Die in dieser Methode implementierte Logik iteriert über alle Dublettenkandidatenpaare. Zuerst werden, falls nötig, Statistiken über alle Dublettenkandidatenpaare erstellt, die zum Beispiel für die Berechnung der idf (inverse document frequency) notwendig sind. Für jedes Kandidatenpaar werden dann alle vorkonfigurierten Ähnlichkeitsfunktionen auf den Werten der Attribute name, strasse, plz, ort und all ausgeführt. Das Attribut all ist ein künstliches Attribut, das als Wert die Werte aller anderen Attribute, hintereinander geschrieben und mit Leerzeichen getrennt, enthält. Die entsprechenden Attributwerte werden vorher mit einer Implementierung des PreparateComparsionService aufbereitet. Diese führt in der Grundimplementierung die Umwandlung der Zeichenketten in Kleinbuchstaben durch. Die Ergebnisse der Anwendung der Ähnlichkeitsfunktionen werden anschließend persistiert. Abbildung 13 stellt den Prozess grafisch dar. Die blauen Pfeile symbolisieren die Iteration über die Dublettenkandidaten. Die roten Pfeile stellen die verschachtelte Iteration über die Dublettenkandidatenpaare und die verschiedenen Konfigurationen der Ähnlichkeitsfunktionen dar. 44

50 Aufbereiten der Attributwerte Vorberechnen der idf Statistiken Berechnen der Ähnlichekiten der Attributwerte Persistieren der Ähnlichkeitswerte Abbildung 13 Ablauf der Ähnlichkeitsbestimmung. Die konkrete Implementierung des Automaten für die Ähnlichkeitsbestimmung erfolgte in der Programmiersprache Java, Version 6. Diese wurde aufgrund der großen Anzahl frei erhältlicher Entwicklungsumgebungen und Frameworks ausgewählt, die die Umsetzung erleichterten. Für die Implementierung der meisten Ähnlichkeitsfunktionen habe ich die Bibliothek Simmetrics verwendet. Diese Softwarebibliothek ist in Java implementiert und stellt im Wesentlichen eine Sammlung von Implementierungen verschiedener Ähnlichkeits- und Tokenfunktionen dar [vgl. Sour11]. Sie zeichnet sich gegenüber anderen Bibliotheken dieser Art, wie zum Beispiel Second String [vgl. Cohe03], durch eine saubere Schnittstellendefinition und einheitliche Rückgabewerte der Ähnlichkeitsfunktionen aus. Die in dieser Bibliothek nicht vorhandenen Implementierungen von Ähnlichkeitsfunktionen habe ich mit eigenen Implementierungen ergänzt. Abbildung 14 stellt die Struktur der Implementierung der Ähnlichkeitsfunktionen dar. 45

51 <<interface>> StringComparatorService AbstractStringComparatorService ExtendedJaccardStringComparatorService AbstractStatisticalStringComparatorService SimmetricsStringComparatorService TfIdfStringComparatorService SoftTfIdfStringComparatorService Abbildung 14 Struktur der Implementierung der Ähnlichkeitsfunktionen. Die Klasse SimmetricsStringComparatorService kapselt die Implementierungen der Ähnlichkeitsfunktionen aus der Simmetrics Bibliothek. Die Abhängigkeit zu der konkreten Implementierung wird anhand des Entwurfsmusters Dependency Injection hergestellt [vgl. Fowl04]. Als Inversion of Control Container [vgl. Fowl04] dient dabei das Spring Framework. Wie aus der Abbildung 14 ersichtlich, wurden die Ähnlichkeitsfunktionen für die Cosinus- Ähnlichkeit mit tf/idf Gewichtung, Soft tf/idf Ähnlichkeit sowie Erweiterte Jaccard Ähnlichkeit, selbst implementiert. Die gesamte Implementierung baut auf dem Spring Framework auf. Neben der Funktion als Inversion of Control Container bietet das Spring Framework eine einfache und flexible Konfigurierbarkeit mittels einer XML Datei. Dies hilft bei der komplexen Konfiguration des gesamten Automaten zur Ähnlichkeitsbestimmung. Alle Ähnlichkeitsfunktionen und weitere für den Ablauf nötigen Parameter werden mithilfe dieser XML Datei konfiguriert. Für weitere Informationen zum Spring Framework siehe [Wolf10]. Für die Kommunikation mit der Datenbank und die Realisierung der Persistenz wird JDBC (Java DataBase Connectivity [vgl. Orac11]) eingesetzt. Wegen der teilweise komplexen SQL Anfragen und der geringen Anzahl der unterschiedlichen, zu persistierenden Objekte, wurde auf einen Einsatz eines ORM (Object-Relational Mapping [vgl. Ambl10]) Frameworks zur Abbildung der Java-Objekte in einer relationalen Datenbank verzichtet. Um die Handhabung der Ressourcen beim Einsatz von JDBC zu erleichtern, kommen die JDBC Helferklassen des Spring Frameworks zum Einsatz [vgl. Wolf10, S.167f]. 46

52 Da die der Evaluation zu Grunde liegenden Daten in Form von Relationen einer MySQL Datenbank vorliegen, wurde für die gesamte Persistenz der Implementierung eine MySQL Datenbank eingesetzt. Für weitere Informationen zur der MySQL Datenbank, siehe [Orac10]. Für das Logging in der Implementierung wird das Framework Logback eingesetzt. Es bietet gegenüber anderen Open Source Loggingframeworks den entscheidenden Vorteil, dass die Dokumentation von Logback frei verfügbar ist [vgl. Gülc11]. Für Tests der Implementierung, vor allem der Ähnlichkeitsfunktionen, wurden Testklassen mithilfe des Frameworks JUnit implementiert [vgl. Pras09]. Als Build-Management-Tool kam Maven zum Einsatz. Dieses erlaubt ein standardisiertes Erstellen und Verwalten von Java Applikationen [vgl. Obri11]. Insbesondere die komfortable Verwaltung von Abhängigkeiten zu den anderen Softwareprojekten gab den Ausschlag für die Verwendung von Maven. Die gesamte Implementierung und Dokumentation in Form von JavaDoc ist auf einer CD im Anhang C beigelegt Dublettenbestimmung und Erfolgsmessung Die Implementierung der Dublettenbestimmung und Erfolgsmessung mithilfe von ähnlichkeitsbasierten Entscheidungsverfahren, die im Kapitel 4.1 beschrieben wurden, erfolgte als eine Eigenimplementierung. Zu diesem Zweck wurde ein Automat implementiert, der ausgehend von den Ergebnissen der Ähnlichkeitsbestimmung, die Kennzahlen precision, recall und F-Measure berechnet. Zuerst wird für jedes Kandidatenpaar eine Ähnlichkeitszahl bestimmt. Bei dem ein Attribut Verfahren ist es die Ähnlichkeit des künstlich erzeugten Attributes all, bei dem Durchschnittsverfahren wird der ungewichtete Durchschnitt der Ähnlichkeiten der Werte der Attribute name, strasse, plz und ort berechnet. Anschließend wird für alle Schwellenwerte dieser Ähnlichkeit zwischen 0 und 1 in 0,01 Schritten die jeweilige Anzahl von true positives, true negatives, false positives und false negatives berechnet und persistiert. Im zweiten Schritt erfolgt auf dieser Basis die Berechnung von precision, recall und F-Measure für alle Schwellenwerte. Die Ergebnisse der Berechnungen werden graphisch beziehungsweise tabellarisch aufbereitet. Die graphische Aufbereitung erfolgt als HTML Dokumente zur Anzeige im Browser, die tabellarische Aufbereitung in Form von Excel- Tabellen. Die Implementierung erfolgte, analog zur Ähnlichkeitsbestimmung, mithilfe der Programmiersprache Java und den bereits dort verwendeten Frameworks. Zusätzlich kamen für die graphische Aufbereitung in HTML Dokumenten die Google Chart Tools zum Einsatz [vgl. Goog11]. Die Erzeugung von Excel-Tabellen wurde mit dem Apache POI Framework realisiert [vgl. Apac11]. Die Implementierung der Schritte der Dublettenbestimmung und Erfolgsmessung für die Methoden des maschinellen Lernens, die im Kapitel 4.3 beschrieben wurden, erfolgte mithilfe der Anwendung RapidMiner. 47

53 RapidMiner ist eine Anwendung, die eine Umgebung für maschinelles Lernen und Data Mining zur Verfügung stellt. Innerhalb dieser Umgebung können Abläufe mithilfe von über 500 Operatoren erstellt werden. Die Operatoren decken unter anderem die Aufgaben der Ein- und Ausgabe, Datenvorverarbeitung, maschinellen Lernens und Data Mining. Die definierten Abläufe werden als XML Dateien gespeichert und können mittels einer graphischen Benutzeroberfläche entwickelt werden. RapidMiner wurde 2001 unter den Namen YALE vom Lehrstuhl für künstliche Intelligenz der Technischen Universität Dortmund entwickelt. Seit 2007 wird RapidMiner von der Firma rapid-i unter eine Open Source Lizenz weiterentwickelt. RapidMiner ist in der Programmiersprache Java implementiert [vgl. Mier09]. RapidMiner wurde in erster Linie für die Evaluation ausgewählt, weil diese Anwendung alle Algorithmen des maschinellen Lernens implementiert, die in Kapitel 4.3 vorgestellt wurden. Des Weiteren ermöglicht diese Software eine einfache, graphische Modellierung sowohl der Prozesse für die Trainingsphase der Algorithmen, als auch der Evaluation der Ergebnisse. Die Modelle und auch die Ergebnisse der Evaluation können graphisch und sehr detailliert dargestellt werden. Somit ist RapidMiner sowohl für die Dublettenbestimmung als auch für die Erfolgsmessung geeignet. Es liegt unter Open Source Lizenz vor. Gemäß einer unabhängigen Vergleichsstudie der TU Chemnitz, die beim internationalen Data Mining Cup 2007 (DMC-2007) vorgestellt wurde, schneidet RapidMiner unter den wichtigsten Open Source Data Mining Tools sowohl hinsichtlich der Technologie als auch der Anwendbarkeit am besten ab [Mier09]. Um eine Durchführung der Dublettenbestimmung zu ermöglichen, war es zunächst nötig, die Ergebnisse der Ähnlichkeitsbestimmung aus der für die Persistenz verwendeten MySQL Datenbank in die interne Repository von RapidMiner zu überführen. Die Repository dient bei RapidMiner als Ablage für Daten, Prozesse, Modelle und Ergebnisse der Evaluationen. Der Prozess des Ladens der Daten stellt Abbildung 15 dar. Abbildung 15 Prozess des Ladens der Daten in die RapidMiner Repository. Zunächst werden im Schritt Read Database die Daten mittels einer SQL Anweisung aus der Datenbank gelesen. Im Schritt Nominal to Binomial wird das Attribut flag, das die Markierung, ob es sich um eine Dublette handelt oder nicht, enthält, als Binomialattribut markiert. Im weiteren Schritt Set Role wird das Attribut flag als sogenanntes label Attribut markiert. Dies sind notwendige Schritte, um eine problemlose Datenverarbeitung im Rahmen des Trainings 48

54 der Dublettenbestimmungsmethoden zu gewährleisten. Anschließend werden die Daten im Schritt Store inklusive der vorgenommenen Markierungen in der Repository von RapidMiner gespeichert. Um die Konfiguration der Dublettenbestimmungsprozesse zu erleichtern, bediente ich mich einer Erweiterung für RapidMiner, die von dem Deutschen Forschungszentrum für Künstliche Intelligenz GmbH entwickelt wurde. Die PaREn (Pattern Recognition Engineering) genannte Erweiterung hilft beim Aufbau der Prozesse des maschinellen Lernens und beim Finden der optimalen Konfigurationen für die einzelnen Verfahren, basierend auf der zur Verfügung stehenden Lernmenge an Daten [vgl. Shaf10]. Für die weitere Optimierung der Parameter wurde der Operator Optimize Parameters (Grid) verwendet. Dieser erlaubt das Optimieren der Parameter nach der Grid-Search Methode. Der Operator iteriert durch die verschiedenen Kombinationen der vorher definierten Parameter und führt für jede Kombination dieser Parameter den Schritt des Trainierens für den gegebenen Algorithmus durch. Anschließend wird das trainierte Modell entsprechend auf eine Teststichprobe angewendet. Als Ergebnis wird die Kombination von Parametern zurückgegeben, die bezüglich einer definierten Zielgröße, in dem hier gegebenen Fall das F1- Measure, die besten Ergebnisse liefert. Für die eigentliche Evaluation wird ein Prozess mithilfe des Parallel:X-Validation Operators aufgebaut. Dieser Operator führt eine Validierung eines gegebenen Operators für das maschinelle Lernen durch. Dazu wird die Beispielmenge S, in diesem Fall die Dublettenkandidatenpaare mit einer Dublettenmarkierung, in n Untermengen S i geteilt. Im Schritt Training wird zuerst der Operator für das maschinelle Lernen mit der Menge von S / S i Daten trainiert. Das so trainierte Model wird dann mithilfe der Datenmenge S i in Schritt Testing erprobt. Dazu wird mithilfe des Operators Apply Model zuerst das im Schritt Training erzeugte Modell auf die Datentestmenge angewendet. Anschließend werden im Schritt Performance die vorher definierten Metriken für die Güte der Anwendung des Models errechnet. Im Falle dieser Evaluation sind es precision, recall und F1-Measure. Diese Art von Validierung wird Kreuzvalidierung genannt. Des Weiteren kann der Operator Parallel:X- Validation die Schritte Training und Testing voneinander unabhängig und parallel ausführen. Abbildung 16 zeigt den Aufbau der Kreuzvalidierung am Beispiel des Lernoperators für die Lernmethode naive Bayes. Abbildung 16 Kreuzvalidierung eines Operators am Beispiel von Naive Bayes. 49

55 6 Durchführung und Ergebnisse der Evaluation In Kapitel 5 habe ich die Datenbasis für die Evaluation vorgestellt und Konzeption sowie Implementierung der Evaluationsschritte Ähnlichkeitsbestimmung, Dublettenbestimmung und Erfolgsmessung beschrieben. In diesem Kapitel wird die Durchführung der Evaluation beschrieben. Es beinhaltet insbesondere die Beschreibung der verwendeten Konfigurationen der Implementierungen sowie die Ergebnisse der Erfolgsmessung. Anschließend diskutiere ich mögliche Verbesserungen der Verfahren zur automatisierten Dublettenerkennung. Ich werde sowohl auf die von mir vorgenommenen Verbesserungen eingehen, als auch Ideen für weitere Verbesserungen aufzeigen. 6.1 Ähnlichkeitsbestimmung Die Ähnlichkeitsbestimmung wurde mithilfe der Ähnlichkeitsfunktionen, die in Kapitel 3 beschrieben wurden, in 15 verschiedenen Konfigurationen durchgeführt. Die unterschiedlichen Konfigurationen können der Tabelle 6 entnommen werden. Zusätzlich sollte erwähnt werden, dass bei den sekundären Ähnlichkeiten, insofern diese gebraucht wurden, ein Schwellenwert von 0,8 verwendet wurde. Für jede Konfiguration aus Tabelle 6 wurden zwei Vergleiche durchgeführt. Einmal wurden die Attributwerte nur insofern Aufbereitet, dass diese in Kleinschreibung umgewandelt wurden, um die Ähnlichkeit unabhängig von der Groß-/Kleinschreibung zu berechnen. Das zweite Mal wurde die Aufbereitung um die Vereinheitlichung von Abkürzungen erweitert. Zu diesem Zweck wurden bei bestimmten Attributwerten folgende Ersetzungen vorgenommen: gesellschaft wurde bei Attribut name in g umgewandelt und bei dem Attribut strasse wurde strasse beziehungsweise straße durch str. ersetzt. Diese Art der Aufbereitung, auch als Normierung bezeichnet, verlangt ein domänenspezifisches Wissen. Der Inhalt der zu vergleichenden Attribute muss dem Ersteller dieser Normierungsregeln bekannt sein. Deswegen werde ich im Folgenden von einer domänenspezifischen Aufbereitung der Attributwerte sprechen. Mit dieser Aufbereitung sollte untersucht werden, inwiefern sich solche Normierungen signifikant auf das Ergebnis der Erfolgsmessung auswirken. Somit wurden für jedes Dublettenkandidatenpaar 30 Entscheidungsvektoren erstellt, die jeweils fünf Dimensionen besitzen. Die Dimensionen entsprechen den verglichenen Werten der Attribute name, strasse, plz, ort und all. Auf die entsprechenden Konfigurationen werde ich im Folgenden mithilfe des Identifikators ID verweisen. Dabei besitzen die Konfigurationen mit der einfachen Aufbereitung der Attributwerte die ID entsprechend der Tabelle 6. Die Konfigurationen mit der domänenspezifischen Aufbereitung der Attributwerte besitzen die ID aus der Spalte ID 2. So besitzt beispielsweise die Konfiguration mit der Ähnlichkeitsfunktion Levenshtein und der einfachen Aufbereitung der Attributwerte gemäß der Tabelle 6 die ID 7. Die Konfiguration mit der Ähnlichkeitsfunktion Levenshtein und der domänenspezifischen Aufbereitung der Attributwerte entspricht demnach der ID

56 ID ID 2 Ähnlichkeit Tokenizer Sekundäre Ähnlichkeit 1 16 Jaccard Leer- und Satzzeichen 2 17 Jaccard q-gram q= Jaccard q-gram q= Cosinus TF/IDF Leer- und Satzzeichen 5 20 Cosinus TF/IDF q-gram q= Cosinus TF/IDF q-gram q= Levenshtein 8 23 Needleman-Wunsch 9 24 Smith-Waterman-Gotoh Jaro Jaro-Winkler Erweiterte Jaccard Leer- und Satzzeichen Levenshtein Monge-Elkan Levenshtein Soft TF/IDF Leer- und Satzzeichen Levenshtein Monge-Elkan Smith-Waterman-Gotoh Tabelle 6 Die verwendeten Konfigurationen der Ähnlichkeitsfunktionen. 6.2 Dublettenbestimmung Die Dublettenbestimmung mittels der ähnlichkeitsbasierten Methoden wurde mithilfe einer eigenen Implementierung durchgeführt. Aufgrund der Einfachheit des Aufbaus wurde dieser gemeinsam mit der Beschreibung der Implementierung im Kapitel beschrieben. Die Dublettenbestimmung mit den Methoden des maschinellen Lernens wurde mithilfe der Anwendung RapidMiner durchgeführt. Zum Einsatz kamen fünf Verfahren aus dem Bereich des maschinellen Lernens, die in Kapiteln 4.2 und vor allem 4.3 beschrieben wurden. Als Datengrundlage kamen die bei der Ähnlichkeitsbestimmung erstellten Entscheidungsvektoren, und zwar mit den Ähnlichkeitswerten für die Attributwerte der Attribute name, strasse, plz und ort, zum Einsatz. Jeder Entscheidungsvektor wurde entsprechend mit der Markierung der manuellen Entscheidung versehen, ob es sich bei dem Dublettenkandidatenpaar, zu dem dieser Entscheidungsvektor gehört, um eine Dublette handelt oder nicht. Diese Markierung wird bei RapidMiner als label bezeichnet. Für jede der 30 Konfigurationen der Ähnlichkeitsfunktionen (15 mit jeweils zwei unterschiedlichen Aufbereitungsarten der Attributwerte) wurde die Dublettenbestimmung mit den Methoden naive Bayes, Entscheidungsbäume, Support Vectore Machine, Nächster-Nachbar-Qualifikation sowie künstliche neuronale Netze durchgeführt. Dabei wurden im Vorfeld diejenigen Entscheidungsvektoren rausgefiltert, die Fehlwerte enthielten, da die meisten hier implementierten Verfahren mit solchen Werten nicht umgehen können. Fehlwerte entstanden bei der Ähnlichkeitsbestimmung, wenn bei mindestens einem der beiden Dublettenkandidaten bei einem der Attribute die Werte fehlten und infolge dessen keine Ähnlichkeit der Attributwerte bestimmt werden konnte. In folgenden Kapiteln gehe ich genauer auf die Konfigurationen der einzelnen Verfahren des maschinellen Lernens und auf die bei der 51

57 Trainingsphase entstandenen Entscheidungsmodelle ein. Die Ergebnisse, die durch die Anwendung der jeweiligen Modelle auf die Evaluationsdaten entstanden sind, werden in Kapitel 6.3 beschrieben Naive Bayes Bei dem naive Bayes Verfahren werden für das Entscheidungsmodell die Dichtefunktionen für die einzelnen Komponenten der Entscheidungsvektoren approximiert, da hier eine Unabhängigkeit der einzelnen Komponenten angenommen wird. Für die Erstellung der Dichtefunktionen wird eine Normalverteilung angenommen. Für weitere Details siehe Kapitel Die Konfiguration des Operators für naive Bayes hat lediglich einen Parameter. Dieser erlaubt das Einschalten der Verwendung einer Laplace-Korrektur. Diese soll, laut der RapidMiner Dokumentation, den starken Einfluss der Wahrscheinlichkeit 0 auf die berechnete Gesamtwahrscheinlichkeit mindern. Diese Korrektur wurde verwendet. Bei allen 30 Konfigurationen sehen die zu den trainierten Modellen zugehörigen Dichtefunktionen ähnlich aus. Auffällig dabei ist, dass die Dichtefunktion für das Attribut name, je nach dem jeweiligen label des Entscheidungsvektors, deutlich unterschiedlich ist. In Abbildung 17 sieht man beispielhaft die beiden Dichtefunktionen. Die jeweiligen label der Dublettenkandidatenpaare sind h für Dublette und nh für keine Dublette. Diese Bezeichnung der labels stammt aus den Originaldaten. Das Maximum der Dichtefunktionen für keine Dublette ist bei einer Ähnlichkeit von circa 0,3. Das Maximum der Dichtefunktionen für eine Dublette dagegen bei einer Ähnlichkeit von circa 0,9. Abbildung 17 Dichtefunktion der Komponente des Entscheidungsvektors für das Attribut name. 52

58 Die Dichtefunktionen für Dublette und keine Dublette der anderen Attribute sehen dagegen ähnlich der in Abbildung 18 dargestellten Funktionen für das Attribut ort aus. Hier liegt bei beiden Funktionen das Maximum bei einer Ähnlichkeit von circa 1,0. Lediglich die Dichtefunktion für keine Dublette fällt etwas flacher aus, was ein Hinweis für eine etwas breitere Verteilung ist. Daraus kann man schließen, dass bei den zur Verfügung stehenden Dublettenkandidatenpaaren vor allem die Ähnlichkeit des Attributwertes name dafür ausschlaggebend ist, ob es sich um eine Dublette handelt oder nicht. Abbildung 18 Dichtefunktion der Komponente des Entscheidungsvektors für das Attribut ort. Die hier dargestellten Dichtefunktionen gehören zu den Entscheidungsvektoren der Konfiguration der Ähnlichkeitsfunktion mit der ID 24, also Ähnlichkeitsfunktion Smith- Waterman-Gotoh mit domänenspezifischer Aufbereitung der Attributwerte Entscheidungsbäume Der RapidMiner Operator für die Erstellung von Entscheidungsbäumen verwendet einen Algorithmus, der dem CART Algorithmus sehr ähnelt. Die verwendete Konfiguration der Parameter für das Trainieren des Entscheidungsbaums und die Beschreibung der Parameter gemäß der Dokumentation von RapidMiner kann Tabelle 7 entnommen werden. 53

59 Parameter Wert Beschreibung criterion gain_ratio Das Kriterium für die Auswahl der Attribute und der numerischen Spaltung. Weitere mögliche Ausprägungen: gain_ratio, information_gain, gini_index, accuracy. minimal size of split 4 Die minimale Größe eines Knotens, um eine Spaltung zu ermöglichen. minimal leaf size 2 Die minimale Größe aller Blätter. minimal gain 0,1 Der minimale Gewinn, der erreicht werden muss, um eine Spaltung zu erzeugen. maximal depth 20 Die maximale Tiefe des Baumes. confidence 0,25 Das Konfidenzniveau, das für die pessimistische Fehlerberechnung der Vereinfachung (Pruning) verwendet wird. Tabelle 7 Die Konfiguration des Operators für Entscheidungsbäume. Die im vorherigen Kapitel geäußerte Vermutung, dass die Dublettenentscheidung primär von der Ähnlichkeit des Attributes name abhängt, bestätigt sich bei der Betrachtung des ebenfalls für die Ähnlichkeitsfunktion mit der ID 24 induzierten Entscheidungsbaumes, dargestellt in Abbildung 19. Auch hier stehen die jeweiligen label h für Dublette und nh für keine Dublette. name > 0,867 0,867 ort nh > 0,613 0,613 h nh Abbildung 19 Entscheidungsbaum für die Konfiguration der Ähnlichkeitsfunktion mit der ID Support Vector Machine 54

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Behandelte Fragestellungen Was besagt eine Fehlerquote? Welche Bezugsgröße ist geeignet? Welche Fehlerquote ist gerade noch zulässig? Wie stellt

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Alignment-Verfahren zum Vergleich biologischer Sequenzen zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Schulungsunterlagen zur Version 3.3

Schulungsunterlagen zur Version 3.3 Schulungsunterlagen zur Version 3.3 Versenden und Empfangen von Veranstaltungen im CMS-System Jürgen Eckert Domplatz 3 96049 Bamberg Tel (09 51) 5 02 2 75 Fax (09 51) 5 02 2 71 Mobil (01 79) 3 22 09 33

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002) 6. Bayes-Klassifikation (Schukat-Talamazzini 2002) (Böhm 2003) (Klawonn 2004) Der Satz von Bayes: Beweis: Klassifikation mittels des Satzes von Bayes (Klawonn 2004) Allgemeine Definition: Davon zu unterscheiden

Mehr

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

Hilfe zur Urlaubsplanung und Zeiterfassung

Hilfe zur Urlaubsplanung und Zeiterfassung Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

Einfache kryptographische Verfahren

Einfache kryptographische Verfahren Einfache kryptographische Verfahren Prof. Dr. Hagen Knaf Studiengang Angewandte Mathematik 26. April 2015 c = a b + a b + + a b 1 11 1 12 2 1n c = a b + a b + + a b 2 21 1 22 2 2n c = a b + a b + + a b

Mehr

Personalisierte Email

Personalisierte Email Personalisierte Email Personalisierte Emails ermöglichen die Empfänger persönlich automatisch mit Ihrem Namen und der passenden Anrede anzusprechen. Um personalisierte Emails zu versenden benötigen Sie:

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte

Mehr

Handbuch. Adressen und Adressenpflege

Handbuch. Adressen und Adressenpflege Handbuch Adressen und Adressenpflege GateCom Informationstechnologie GmbH Am Glocketurm 6 26203 Wardenburg Tel. 04407 / 3141430 Fax: 04407 / 3141439 E-Mail: info@gatecom.de Support: www.gatecom.de/wiki

Mehr

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09.

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09. Abstract zum Thema Handelssysteme Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09.01 Einleitung: Handelssysteme

Mehr

E-Mail-Versand an Galileo Kundenstamm. Galileo / Outlook

E-Mail-Versand an Galileo Kundenstamm. Galileo / Outlook E-Mail-Versand an Galileo Kundenstamm Galileo / Outlook 1 Grundsätzliches...1 2 Voraussetzung...1 3 Vorbereitung...2 3.1 E-Mail-Adressen exportieren 2 3.1.1 Ohne Filter 2 3.1.2 Mit Filter 2 4 Mail-Versand

Mehr

EINFACHES HAUSHALT- KASSABUCH

EINFACHES HAUSHALT- KASSABUCH EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Serienbrief erstellen

Serienbrief erstellen Serienbrief erstellen Mit einem perfekt vorbereiteten Serienbrief können Sie viel Zeit sparen. In unserem Beispiel lesen wir die Daten für unseren Serienbrief aus einer Excel Tabelle aus. Die Tabelle hat

Mehr

Schritt 1 - Registrierung und Anmeldung

Schritt 1 - Registrierung und Anmeldung Schritt 1 - Registrierung und Anmeldung Anmeldung: Ihre Zugangsdaten haben Sie per EMail erhalten, bitte melden Sie sich mit diesen auf www.inthega-datenbank.de an. Bitte merken Sie sich die Zugangsdaten

Mehr

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard 1 von 6 102013 18:09 SharePoint 2013 Veröffentlicht: 16.07.2012 Zusammenfassung: Hier erfahren Sie, wie Sie einen KPI (Key Performance Indicator) mithilfe des PerformancePoint Dashboard Designer in SharePoint

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

GOLDESEL-Schulung Referat 05 Finanzcontrolling

GOLDESEL-Schulung Referat 05 Finanzcontrolling GOLDESEL-Schulung Referat 05 Finanzcontrolling www.finanzcontrolling.uni-bremen.de Axel Hauschild / Petra Schröder 218-60202 goldesel@uni-bremen.de umbuchen@uni-bremen.de GOLDESEL - Excel Schulung 1 Evtl.

Mehr

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

Die integrierte Zeiterfassung. Das innovative Softwarekonzept Die integrierte Zeiterfassung Das innovative Softwarekonzept projekt - ein komplexes Programm mit Zusatzmodulen, die einzeln oder in ihrer individuellen Zusammenstellung, die gesamte Abwicklung in Ihrem

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

AUF LETZTER SEITE DIESER ANLEITUNG!!!

AUF LETZTER SEITE DIESER ANLEITUNG!!! BELEG DATENABGLEICH: Der Beleg-Datenabgleich wird innerhalb des geöffneten Steuerfalls über ELSTER-Belegdaten abgleichen gestartet. Es werden Ihnen alle verfügbaren Belege zum Steuerfall im ersten Bildschirm

Mehr

Ihr Weg in die Suchmaschinen

Ihr Weg in die Suchmaschinen Ihr Weg in die Suchmaschinen Suchmaschinenoptimierung Durch Suchmaschinenoptimierung kann man eine höhere Platzierung von Homepages in den Ergebnislisten von Suchmaschinen erreichen und somit mehr Besucher

Mehr

E-Mail-Inhalte an cobra übergeben

E-Mail-Inhalte an cobra übergeben E-Mail-Inhalte an cobra übergeben Sie bieten ihren potentiellen oder schon bestehenden Kunden über ihre Website die Möglichkeit, per Bestellformular verschiedene Infomaterialien in Papierform abzurufen?

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

Plotten von Linien ( nach Jack Bresenham, 1962 )

Plotten von Linien ( nach Jack Bresenham, 1962 ) Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels

Mehr

Durchführung der Datenübernahme nach Reisekosten 2011

Durchführung der Datenübernahme nach Reisekosten 2011 Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,

Mehr

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel Sehr vielen Mitarbeitern fällt es schwer, Serienbriefe an Kunden zu verschicken, wenn sie die Serienbrieffunktion von Word nicht beherrschen. Wenn die Kunden mit Excel verwaltet werden, genügen nur ein

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Erklärung zum Internet-Bestellschein

Erklärung zum Internet-Bestellschein Erklärung zum Internet-Bestellschein Herzlich Willkommen bei Modellbahnbau Reinhardt. Auf den nächsten Seiten wird Ihnen mit hilfreichen Bildern erklärt, wie Sie den Internet-Bestellschein ausfüllen und

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV MICROSOFT DYNAMICS NAV Inhaltsverzeichnis TECHNISCHE INFORMATION: Einleitung... 3 LESSOR LOHN/GEHALT Beschreibung... 3 Prüfung der Ausgleichszeilen... 9 Zurücksetzen der Ausgleichsroutine... 12 Vorgehensweise

Mehr

A1.7: Entropie natürlicher Texte

A1.7: Entropie natürlicher Texte A1.7: Entropie natürlicher Texte Anfang der 1950er Jahre hat Claude E. Shannon die Entropie H der englischen Sprache mit einem bit pro Zeichen abgeschätzt. Kurz darauf kam Karl Küpfmüller bei einer empirischen

Mehr

Persönliches Adressbuch

Persönliches Adressbuch Persönliches Adressbuch Persönliches Adressbuch Seite 1 Persönliches Adressbuch Seite 2 Inhaltsverzeichnis 1. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 2. ALLGEMEINE INFORMATIONEN ZUM PERSÖNLICHEN

Mehr

Schulberichtssystem. Inhaltsverzeichnis

Schulberichtssystem. Inhaltsverzeichnis Schulberichtssystem Inhaltsverzeichnis 1. Erfassen der Schüler im SBS...2 2. Erzeugen der Export-Datei im SBS...3 3. Die SBS-Datei ins FuxMedia-Programm einlesen...4 4. Daten von FuxMedia ins SBS übertragen...6

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Hinweise zum Ausfüllen der Zeiterfassung

Hinweise zum Ausfüllen der Zeiterfassung Hinweise zum Ausfüllen der Zeiterfassung Generelle Hinweise zu Excel Ab Version VSA 4.50 wird die dezimale Schreibweise für Zeiteingaben verwendet. Die Zeiterfassung, die Sie erhalten haben wurde für Excel

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen können zwei Ebenen (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Wie heiÿt

Mehr

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192. Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,

Mehr

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen. Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Mehr

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto Bevor Sie Ihre Datei nach Quicken 2010, bzw. 2011 konvertieren, können Sie in Ihrer jetzt benutzten Version

Mehr