Seite 1 von 1

Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 9:48
von Jan
Moin,

wie geht Ihr da ran? Es geht um eine Adressprüfung. Da gibt es leider von Kundenseite immer wieder Tippfehler. Buchstabendreher. Buchstabendopplungen. Doppelte Buchstaben nur einfach. Usw.

Also: "Matthias Meyer" ist nur eine Fehlschreibung von "Mathias Meyer". "Hambug" ist Fehlschreibung von "Hamburg". "Bambreg" ist Fehlschreibung von "Bamberg".

Gibt es irgend eine Möglichkeit zu sagen, das die so ähnlich sind das die Wahrscheinlichkeit einer Übereinstimmung im relevanten Bereich liegt? Ich könnte natürlich aufaddieren, welcher Buchstabe wie oft vorkommt. Damit würde ich aber nur Dreher erkennen. Zu viele oder doppelte Buchstaben eher nicht. Könnte man natürlich erweitern, wie oft die Treffer je Buchstaben übereinstimmen, und dann eine Grenze setzen. Was man aber wieder aushebeln könnte wenn man sich auf der Tastatur nur verrutscht hat, also versehentlich die Nachbartaste erwischt hat.

Es geht mir nicht darum, ob der Kunde Straße, Strasse, oder Str. schreibt. Auch Umlaute oder ß/ss sind irrelevant. Ebenfalls ob Bestandteile mit Bindenstrich oder Leerzeichen oder gar nicht getrennt sind. Sowas schon erkenne ich alles schon.

Jan

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 9:51
von georg
Hallo, Jan -


dafür gibt es die Funktion SoundEx(). Mehr Infos dazu: https://de.wikipedia.org/wiki/Soundex

War früher mal Bestandteil von Clipper, Alaska liefert mit der 2.0 allerdings nur ein Beispiel einer C-API mit. Aber das sollte sich nach reinem Xbase++ portieren lassen.

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 10:00
von Tom
Das nennt man "unscharfe Suche", Jan:

https://de.wikipedia.org/wiki/Unscharfe_Suche

Bestes und bekanntestes Beispiel ist der Soundex-Algorithmus: https://de.wikipedia.org/wiki/Soundex - den gab's auch mal in/für Clipper.

Es gibt diverse Herangehensweisen. Man kann Datenbanken aufbauen oder verwenden, die übliche Falschschreibungen enthalten und dazulernen (Hamburg -> Hambrug). Man kann Die Buchstaben zählen, nur Konsonanten vergleichen, Bewertungen ansetzen. In allen Varianten wird man aber nicht immer alles finden - oder eben auch vieles, das nicht zutrifft. Es kommt darauf an, was man erreichen will. Eine Suchmaschine muss anders vorgehen als eine Adresssuche - und um die scheint es Dir zu gehen. Wir haben in diesem Bereich befriedigende Ergebnisse dadurch erzielt, dass wir nur Konsonanten suchen, wofür dann gesonderte Felder nötig waren.

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 10:27
von Jan
Hallo Tom,

"unscharfe Suche" ist gut. Ich hatte u. a. Levenshtein gefunden und ähnliches, das schien mir aber irgendwie nicht ganz das zu sein, was ich wollte (wobei die gehobene Mathe nie wirklich meine Stärke im Studium war :-( )

Ja, an Soundex kann ich mich auch noch gut erinnern. War nicht wirklich zu gebrauchen, weil das auf englische Phonetik gemünzt war, was bei deutschen Begriffen oft ungeahnte Ergebnisse gebracht hatte.

Eine extra Datenbank wäre hier vermutlich sinnlos, weil die gleichen Fehler eher seltener vorkommen.

Jan

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 10:35
von brandelh
Das ist ja ein Hammer von Alaska ... eine in Clipper (Tools) vorhandene Funktion als C-Code mitzuliefern, damit man das C-API einbinden lernen kann :roll:

Und wie aktuell der Code ist ... :D

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 11:06
von ramses
Wenn du es mit Firmenadressen zu tun hast hilft aich eine automatische Abfrage im Firmenregister und On-Line Telefonbuch ...

Gruss Carlo

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 11:07
von Jan
Carlo,

leider nein. 99 % Privatadressen. Und auch nicht alles Deutschland.

Jan

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 12:31
von ramses
Hallo Jan

meine bevorzugte Lösung für dieses Problem ist dass der Mensch vor dem Bildschirm die Verantwortung dafür übernehmen soll.
Für etwas ist er schliesslich ja da. ....
Ein mir bekannter Weg den viele anwenden ist neu erfasste Adressen in eine "Kontrollliste" zu setzten die noch jemand kontrolliert und freigibt. ....
Die Post kann auch mit vielen Schreibfehlern umgehen, wenigstens unsere.
Neuere Statistiken besagen dass 37% unserer Bevölkerung Migrationshintergrund haben. Entsprechend viele Varianten der Namen gibt es.
Soundex und Co. haben hier keine Chance.

Gruss Carlo

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 18:23
von georg
Hallo, Jan -


man kann m.E. den SoundEx-Algorithmus ja anpassen - da Alaska ihn nicht mehr als Funktion implementiert hat, steht es Dir ja frei, ihn an die deutsche Phonetik anzupassen.

Ich habe mich lange nicht mehr mit der Adressthematik beschäftigt, aber früher gab es Textdateien seitens der Deutschen Bundespost, über die man für eine Strasse und einen Ort die Postleitzahl ermitteln konnte. Das wäre für mich - hätte ich aktuell dieses Problem vor der Brust - ein erster Schritt, die Anschrift korrekt zu bekommen (gilt natürlich nur, wenn wir von deutschen Anschriften reden). Was die Namen angeht, würde ich SoundEx() neu implementieren. Damit kannst Du die Unebenheiten der von Alaska bereitgestellten Version glätten und anpassen.

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Fr, 12. Okt 2018 23:07
von AUGE_OHR
hi,
Jan hat geschrieben: Fr, 12. Okt 2018 11:0799 % Privatadressen. Und auch nicht alles Deutschland.
beim Namen kann man nichts machen ... wer weiss ob er wirklich Meeeiier heisst ?

bei der Adresse mache ich einen Abgleich über Mappoint EU.
Auch wenn die Version älter ist macht es zu 99% keine Probleme ... sonst eben Google View.

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Sa, 13. Okt 2018 8:27
von Rudolf
Hallo,
ich hätte noch pubic domain Code von Andy Leighton für die Levenshtein Näherung falls jemand benötigt.
Grüße
Rudolf

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Sa, 13. Okt 2018 11:51
von Tom
Daran wäre ich auch interessiert, Rudolf. Vielleicht können wir das hier gemeinsam optimieren oder so.

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Sa, 13. Okt 2018 11:54
von Jan

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Sa, 13. Okt 2018 16:15
von Rudolf
Hallo Tom,
hätte ich gerne getan, aber wie immer die Unsicherheit was rechtlich erlaubt ist. Ich bin da nicht sicher ob Public Domain erlaubt dass ich den Code verteile. Villeicht war ich voreilig bei dem Angebot. Nachdem wir in Österreich schon alle Türschilder mit Namen gegen Nummern austauschen müssen wegen dem DSVGI, genügt eine kleine Unachtsamkeit um "kriminell" zu werden ;-) Wenn jemand hier der Meinung ist dass es unbedenklich ist, dann gerne.
Grüße
Rudolf

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Sa, 13. Okt 2018 22:38
von AUGE_OHR
hi,

reden wir von der Verifizierung bei der Eingabe oder vom "unscharfen" suchen :?:

Re: Ähnliche Zeichenketten vergleichen

Verfasst: Mo, 15. Okt 2018 13:41
von nightcrawler
statt SOUNDEX (für englisch optimiert) lieber die Kölner Phonetik: https://www.jd-engineering.de/german-so ... mentation/