Ähnliche Zeichenketten vergleichen

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13488
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Ähnliche Zeichenketten vergleichen

Beitrag von Jan » Fr, 12. Okt 2018 9:48

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2432
Registriert: Fr, 08. Feb 2008 21:29

Re: Ähnliche Zeichenketten vergleichen

Beitrag von georg » Fr, 12. Okt 2018 9:51

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.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7698
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Tom » Fr, 12. Okt 2018 10:00

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.
Herzlich,
Tom

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13488
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Jan » Fr, 12. Okt 2018 10:27

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14829
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von brandelh » Fr, 12. Okt 2018 10:35

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
Gruß
Hubert

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1446
Registriert: Mi, 28. Jul 2010 17:16

Re: Ähnliche Zeichenketten vergleichen

Beitrag von ramses » Fr, 12. Okt 2018 11:06

Wenn du es mit Firmenadressen zu tun hast hilft aich eine automatische Abfrage im Firmenregister und On-Line Telefonbuch ...

Gruss Carlo
Valar Morghulis

Gruss Carlo

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13488
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Jan » Fr, 12. Okt 2018 11:07

Carlo,

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

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1446
Registriert: Mi, 28. Jul 2010 17:16

Re: Ähnliche Zeichenketten vergleichen

Beitrag von ramses » Fr, 12. Okt 2018 12:31

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
Valar Morghulis

Gruss Carlo

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2432
Registriert: Fr, 08. Feb 2008 21:29

Re: Ähnliche Zeichenketten vergleichen

Beitrag von georg » Fr, 12. Okt 2018 18:23

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.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12040
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Ähnliche Zeichenketten vergleichen

Beitrag von AUGE_OHR » Fr, 12. Okt 2018 23:07

hi,
Jan hat geschrieben:
Fr, 12. Okt 2018 11:07
99 % 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.
gruss by OHR
Jimmy

Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Rudolf » Sa, 13. Okt 2018 8:27

Hallo,
ich hätte noch pubic domain Code von Andy Leighton für die Levenshtein Näherung falls jemand benötigt.
Grüße
Rudolf

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7698
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Tom » Sa, 13. Okt 2018 11:51

Daran wäre ich auch interessiert, Rudolf. Vielleicht können wir das hier gemeinsam optimieren oder so.
Herzlich,
Tom

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13488
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Jan » Sa, 13. Okt 2018 11:54

Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von Rudolf » Sa, 13. Okt 2018 16:15

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12040
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Ähnliche Zeichenketten vergleichen

Beitrag von AUGE_OHR » Sa, 13. Okt 2018 22:38

hi,

reden wir von der Verifizierung bei der Eingabe oder vom "unscharfen" suchen :?:
gruss by OHR
Jimmy

Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 324
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Kontaktdaten:

Re: Ähnliche Zeichenketten vergleichen

Beitrag von nightcrawler » Mo, 15. Okt 2018 13:41

statt SOUNDEX (für englisch optimiert) lieber die Kölner Phonetik: https://www.jd-engineering.de/german-so ... mentation/
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de

Antworten