Adressdaten Analyse

Ich trage hier mal einen Beitrag aus meinem alten Blog ein  um einen zentralen Blog zu führen.

Adressdaten Service ist eine detaillierte Darstellung von Adressdaten Validierung,  Adressdaten Analyse und Adressdaten Anreicherung.  Ausführlich werden Algorithmen zur Prüfung von Adressdatenbestandsteilen beschrieben in welcher Form Adressdaten geprüft werden können und anhand welcher Merkmale der Datenbestand validiert, analysiert oder angereichert werden kann. Hierzu wird ein Adressdatensatz in seine Einzelteile zerlegt und anhand von Algorithmen validiert und analysiert.

Beginnen wir mit dem Aufbau eines Adressdatensatz. Dieser besteht aus unterschiedlichen

Bestandsteilen.

Diese wären:

Vorname, Nachname, Geburtsdatum,  Geschlecht, Anrede, Straße, Hausnummer, Postleitzahl, Ort, Vorwahl Festnetztelefon, Rufnummer Festnetztelefon, Vorwahl Mobiltelefon, Rufnummer Mobiltelefon

Hinzu kommen Erhebungsmerkmale:

Teilnahmedatum, Bestätigungsdatum des Werbeeinverständnisses. Quelle des Adressdatensatz, IP Adresse bei Onlineanmeldungen, HOST bei Onlineanmeldungen,  IP Adresse bei Onlinebestätigungen des Werbeeinverständnisses, HOST bei Onlinebestätigungen des Werbeeinverständnisses, Anbieter für den das Werbeeinverständniss gilt.

Nachfolgend werden alle Bestandsteile des Adressdatensatz einzeln betrachtet analysiert und validiert.

Der Aufbau des Vornamens

Ein Vorname besteht grundsätzlich aus Zeichen von a-Z und kann zusätzlich aus bestimmte Sonderzeichen – und einem Leerzeichen bestehen. Hinzu kommen noch die üblichen länderspezifischen Sonderzeichen. (ä, ö, ü, è etc.)

Kombinationen die aus Zahlen bestehen können daher kein valider Vorname sein. Ebenso ist es unwahrscheinlich, dass ein Vorname aus mehr als 4 Sonderzeichen besteht. Genauso wenig ist es wahrscheinlich, dass ein Vorname weniger als drei Zeichen hat.

Um Sonderzeichen vereinfacht zu filtern ist es möglich in Webbasierter Software alle Sonderzeichen durch URL –encoding Zeichen zu ersetzten so kann man gezielter entsprechende Sonderzeichen filtern und ausschließen.

Eine andere Möglichkeit ist die Zerlegung des kompletten Strings und anschließend jedes Zeichen einzeln zu prüfen. Diese Methode hat den Vorteil, dass es möglich ist die Anzahl der vorkommenden Zeichen zu zählen.  Hierdurch ist es möglich häufige Zeichenwiederholungen zu korrigieren. Zudem ist es unwahrscheinlich, dass ein Vorname aus 66 Prozent aus demselben Zeichen besteht.

Weiter können wir festlegen, dass Vorname in der Regel aus nicht mehr als 20 Zeichen bestehen. Weiter können bestimmte Zeichenkombinationen ausgeschlossen werden und gewisse Klangfolgen können ebenfalls ausgeschlossen werden. Zudem ist es unwahrscheinlich, dass ein Zeichen mehr als zweimal in Folge auftritt.

Vornamensregeln

Daher können folgende Regeln festgesetzt werden.

Anzahl gleicher Zeichen < 66%
Anzahl gleicher Zeichen in Folge < 3
Anzahl der Zeichen < 21
Anzahl der Buchstaben > 2
Anzahl der Sonderzeichen < 5
Anzahl der Zahlen = 0
Anzahl der Leerzeichen = 1
Anzahl nicht zugelassener Sonderzeichen = 0

PHP SOUNDEX mysql php

Ich habe mich heute mal mit der Funktion SOUNDEX auseinander gesetzt.

Sehr interessant wenn man Schreibfehlern emtgegen wirken möchte da diese Funktion prüft ob zwei Werte ähnlich sind.
So habe ich dann einen Test gemacht und musste feststellen das diese Funktionen in MySQL und PHP unterschiedlich arbeiten.Auszug MySQL:

SOUNDEX(str)Gibt einen Soundex-String aus str zurück. Zwei Strings, die fast identisch klingen, sollten identische Soundex-Strings haben. Ein Soundex-String ist standardmäßig vier Zeichen lang, die Funktion SOUNDEX() gibt aber einen beliebig langen String zurück. Sie können SUBSTRING() für das Ergebnis verwenden, um einen Standard-Soundex-String zu erhalten. Alle nicht alphabetischen Zeichen in str werden ignoriert. Alle internationalen alphabetischen Zeichen außerhalb des Bereichs A bis Z werden als Vokale behandelt.
mysql> SELECT SOUNDEX('Hello'); -> ‚H400‘
mysql> SELECT SOUNDEX('Quadratically'); -> ‚Q36324‘
Hinweis: Diese Funktion implementiert den Soundex-Originalalgorithmus und nicht die gängigere erweiterte Version, wie sie auch von D. Knuth beschrieben wird. Der Unterschied besteht darin, dass die Originalversion zuerst Vokale und dann Duplikate verwirft, während die erweiterte Version umgekehrt vorgeht.

Auszug PHP :

 Beschreibung
string soundex ( string $str )
Errechnet den Wert der Laut-Ähnlichkeit von str.
Soundex-Werte haben die Eigenschaft, dass ähnlich ausgesprochene Wörter den gleichen Soundex-Wert erzeugen. Dies kann zur Suche in Datenbanken verwendet werden, wenn Sie zwar die Aussprache aber nicht die genaue Schreibweise kennen. Die Funktion soundex gibt einen String aus 4 Zeichen, beginnend mit einem Buchstaben, zurück.
Diese besondere soundex-Funktion ist u.a. von Donald Knuth in „The Art Of Computer Programming, vol. 3: Sorting And Searching“, Addison-Wesley-Verlag (1973), Seiten 391 bis 392 beschrieben.

Legen wir zum Beispiel eine Tabelle mit Vornamen an und tragen dort

Manuel

Manuela
Michael
Mathias
Peter
Petra
Paul
ein dann bekommen wir von MySQL alle Vornamen mit M zurück, PHP makiert jedoch nur Manuel und Manuela.
mysql_connect(‚localhost‘, ‚root‘, “);
mysql_select_db(‚adressdb‘);
$res = mysql_query(‚SELECT * FROM firstname WHERE SOUNDEX(firstnameData) SOUNDS LIKE SOUNDEX(„manole“);‘);
while ($result = mysql_fetch_assoc($res)) {
var_dump($result);
if (soundex($result[‚firstnameData‘]) == soundex(‚manole‘))
echo „gefunden.“;
}