x

Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city


  1. Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 23.01.2013 22:55 · [flux]

    Auf die Gefahr hin, daß manch einem die Flut solcher Threads mittlerweile zu den Ohren herauskommt: Mein nächstes Vorhaben zur automatisierten Adresskorrektur (nur in Deutschland, Aufnahme in das bestehende Programm, das derzeit unter genauer Überwachung im Probebetrieb läuft, Details siehe (1) Strasse, Str. & Co) lautet: Postleitzahl und Ort auseinanderklamüsern, wenn sie gemeinsam in addr:postcode oder addr:city geschrieben oder vertauscht wurden. Beide Fehler treten regelmäßig auf, werden aber in der Regel zügig (manuell) behoben.

    Beispiele: http://www.openstreetmap.org/browse/nod … 60/history (kombiniert), http://www.openstreetmap.org/browse/way … 61/history (vertauscht)

    Bei diesen Tags können nicht wie bei den anderen Korrekturen einfach bestimmte Ersetzungen versucht werden, bis eine gelingt, sondern die beiden Tags müssen gemeinsam analysiert und ggf. geändert werden. Je nach vorliegenden Bedingungen (ein Tag vorhanden, beide Tags vorhanden) können unterschiedliche Fehler vorliegen.

    Die Analyse unterscheidet folgende Fälle:

    • Keines von beiden Tags vorhanden: nichts zu tun.
    • Nur addr:postcode vorhanden: Prüfen, ob der Wert eine gültige PLZ ist; wenn nicht, Korrektur versuchen (also "PLZ Ort" aufteilen).
    • Nur addr:city vorhanden: Prüfen, ob eine PLZ mit enthalten sein könnte: in diesem Fall Korrektur versuchen ("PLZ Ort" aufteilen).
    • Beide Tags vorhanden: Prüfen, ob addr:postcode eine gültige PLZ und addr:city einen plausiblen Ortsnamen enthält; falls nicht, Korrektur versuchen: Wenn addr:city nach PLZ und addr:postcode nach Ort aussieht, beide tauschen; wenn einer die Form "PLZ Ort" hat, prüfen, ob dieser konsistent mit dem Wert des anderen Tags ist - in diesem Fall den überfüllten Wert reduzieren.

    Zunächst einmal: Was ist eine gültige PLZ und was ist ein gültiger bzw. plausibler Ortsname?
    Eine PLZ ist eindeutig zu definieren als eine Folge aus genau fünf Ziffern: /^[[:digit:]]{5}$/; ein Ortsname ist für meine Zwecke eine Folge von Nicht-Ziffern: /^[^[:digit:]]+$/. Letzteren würde man zunächst enger definieren wollen: als eine Folge von Buchstaben. Dann gibt es aber noch Ortsnamen, die aus mehreren Wörtern bestehen, mit Leerzeichen und Bindestrichen oder mit Abkürzungen (Frankfurt a. M., Einen a. d. Waffel), und ehe man sich versieht, ist man praktisch bei "alles außer Zahlen". Dieser Regex ist natürlich äußerst unspezifisch; daher baue ich eine zusätzliche Sicherung ein, dazu später.

    Zu den Korrekturversuchen im einzelnen: Ist nur eines der Tags vorhanden und sieht nicht vernünftig aus (d.h. addr:postcode anders als /^[[:digit:]]{5}$/ bzw. addr:city anders als /^[^[:digit:]]+$/), wird zunächst sämtlicher Leerraum am Anfang und Ende entfernt. Anschließend wird geprüft, ob "PLZ Ort" (Leerzeichen, Tab etc. optional) vorliegen könnte, also /^[0-9]{5}[[:blank:]]*[^[:digit:]]+$/.Wenn dies der Fall ist und das zusätzliche Kriterium (siehe unten) erfüllt ist, wird der Inhalt des Tags auf addr:postcode und addr:city aufgeteilt; d.h. das vorhandene Tag wird verkürzt und das fehlende hinzugefügt.

    Sind beide Tags vorhanden, aber mindestens eines von beiden sieht fragwürdig aus, wird wieder zunächst sämtlicher überschüssige Leerraum entfernt. Dann wird geprüft, ob eine Vertauschung vorliegen könnte: hat addr:city die Form einer Postleitzahl und addr:postcode die eines Ortsnamens, und ist ferner das zusätzliche Kriterium gegeben, werden beide getauscht.
    Handelt es sich nicht um eine Vertauschung, gibt es noch folgende zwei korrigierbare Fehler: addr:city enthält den Ortsnamen, addr:postcode "PLZ Ort"; oder addr:postcode enthält die PLZ und addr:city "PLZ Ort". Falls beide Orte bzw. beide PLZ übereinstimmen, wird das gedoppelte Tag reduziert. In diesem Fall wird das zusätzliche Kriterium nicht überprüft.

    Das zusätzliche Kriterium ist folgendes: die mutmaßliche Kombination von PLZ und Ort muß in einer aus dem OSM-Datenbestand erstellten PLZ-Liste enthalten sein. Ich habe alle Relationen mit postal_code=* aus germany.osm analysiert und soweit möglich die zugeordneten Namen herausgelesen. Dies sind zum einen admin-Grenzrelationen, wo name=* den Ortsnamen enthält, zum anderen PLZ-Relationen, wo der name meist in note="PLZ Ort" steckt. Herausgekommen ist eine Liste, die zu jeder eingetragenen PLZ die damit assoziierten Ortsnamen aufführt, etwa: (49448 "Stemshorn" "Quernheim" "Marl" "Hüde" "Brockum" "Lemförde"). Bei diesem Beispiel würde bei Vorliegen von addr:postcode=Marl, addr:city=49448 die Vertauschung der Tags durchgeführt; im Falle von addr:postcode=Pusemuckel nicht. Analog würde "49448 Hüde" zerlegt; "49448 Kleinkleckersdorf" nicht.

    Das Verfahren hat ein paar Macken: Bei manchen Relationen liefert das Analyseverfahren dank eigenwilligem Tagging Ortsnamen wie "post_code", die entsprechenden PLZ werden also von Korrekturen ausgenommen. Auch wenn am untersuchten Objekt ein Ortsteil mit angegeben ist, in der Liste aber nur der Hauptort steht - oder umgekehrt, findet keine Korrektur statt. In der Liste steht z.B. (14050 "Berlin Westend"). Pech, wenn am Objekt eben nur "Berlin" steht. Die Liste muß also wohl noch nachbearbeitet werden. In der Regel führen diese Defekte aber nur dazu, daß sinnvolle Korrekturen unterbleiben - nicht dazu, daß falsche Korrekturen durchgeführt werden.

    Ich vermute, daß bisher bei manuellen Korrekturen in den wenigsten Fällen auf ähnliche Weise geprüft wird, ob PLZ und Ort passen; aber ich möchte zumindest vermeiden, daß mein Bot auf "12345 keine Ahnung" oder "11880 ich merke mir diese blöde Telefonnummer nicht, sondern speichere sie in OSM" hereinfällt.


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Basstoelpel (Gast) · 24.01.2013 09:53 · [flux]

      Es gibt einige wenige Orte mit einer Zahl im Namen, z.B. Altenhagen I, Stadt Springe oder Altenhagen II, Gemeinde Messenkamp, Kreis Schaumburg. Im Kreis Schaumburg gibt es insgesamt drei Altenhagen, die anderen aber ohne Nummer. Solange die offizielle Schreibweise Römische Nummern verwendet, fällt das bei Deiner Auswertung natürlich unter den Tisch. Du solltest aber mal schauen, ob Orte mit ein bis zweistelligen Zahlen auftreten.

      Baßtölpel


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 24.01.2013 10:09 · [flux]

      Basstoelpel wrote:

      Du solltest aber mal schauen, ob Orte mit ein bis zweistelligen Zahlen auftreten.

      Soeben getan: keine gefunden. (Sie werden auch nicht versehentlich vorher aussortiert.)


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 24.01.2013 16:50 · [flux]

      Oli-Wan wrote:

      Auch wenn am untersuchten Objekt ein Ortsteil mit angegeben ist, in der Liste aber nur der Hauptort steht - oder umgekehrt, findet keine Korrektur statt. In der Liste steht z.B. (14050 "Berlin Westend"). Pech, wenn am Objekt eben nur "Berlin" steht. Die Liste muß also wohl noch nachbearbeitet werden.

      Speziell für Berlin ist dieses Thema erledigt; möglicherweise sind aber analog auch noch andere größere Städte betroffen. Ein weiteres Problem stellen aber fehlende PLZ-Relationen dar und solche ohne jeden Hinweis auf den Ortsnamen, wie diese: http://www.openstreetmap.org/browse/relation/1244366


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 28.01.2013 22:16 · [flux]

      Oli-Wan wrote:

      Das zusätzliche Kriterium ist folgendes: die mutmaßliche Kombination von PLZ und Ort muß in einer aus dem OSM-Datenbestand erstellten PLZ-Liste enthalten sein. ...

      Das Verfahren hat ein paar Macken: ... Auch wenn am untersuchten Objekt ein Ortsteil mit angegeben ist, in der Liste aber nur der Hauptort steht - oder umgekehrt, findet keine Korrektur statt. In der Liste steht z.B. (14050 "Berlin Westend"). Pech, wenn am Objekt eben nur "Berlin" steht.

      Ich habe das Zusatzkriterium nun dahingehend überarbeitet, daß auch in solchen Fällen eine Korrektur stattfinden kann. Beim Abgleich des vermeintlichen Ortsnamens am Objekt mit dem aus der PLZ-Liste wird nicht unbedingt völlige Übereinstimmung verlangt. Alternativ genügt es, wenn der eine Name mit dem ersten Wort des anderen übereinstimmt. Als Wort zählt in diesem Zusammenhang eine Folge von mindestens drei Buchstaben, der ein Leerzeichen oder Bindestrich folgt. (Änderungen dieser Arbeitsdefinition behalte ich mir vor.)

      Beispiele:

      • Die PLZ-Liste enthält (21244 "Buchholz in der Nordheide"). "21244 Buchholz in der Nordheide" konnte bereits bisher in seine Bestandteile zerlegt werden; "21244 Buchholz" erst jetzt mit der Änderung des Kriteriums.
      • Die PLZ-Liste enthält (55411 "Bingen am Rhein"). "55411 Bingen am Rhein" kann nun auch "55411 Bingen" zerlegt werden.
      • Die PLZ-Liste enthält (60438 "Frankfurt am Main"). Neben "60438 Frankfurt am Main" kann nun auch "60438 Frankfurt" bearbeitet werden; "60348 Frankfurt a.M." immer noch nicht. Dazu müßte sich entweder das Kriterium mit der Übereinstimmung der jeweils ersten Wörter zufrieden geben; oder ich müßte eine Erkennung von Abkürzungen einbauen. Alternativ könnte ich auch einfach die PLZ-Liste auch manuell um abgekürzte Varianten größerer Städte anreichern. Ansonsten bleibt eben für die Korrekteure aus Fleisch und Blut auch noch ein bißchen was übrig.

      Mich würden einmal eure Meinungen zu dem Vorhaben interessieren. Vielleicht habe ich noch was wichtiges übersehen?


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · EvanE (Gast) · 29.01.2013 00:55 · [flux]

      Oli-Wan wrote:

      Oli-Wan wrote:

      Das zusätzliche Kriterium ist folgendes: die mutmaßliche Kombination von PLZ und Ort muß in einer aus dem OSM-Datenbestand erstellten PLZ-Liste enthalten sein. ...

      Das Verfahren hat ein paar Macken: ...

      Ich habe das Zusatzkriterium nun dahingehend überarbeitet, daß auch in solchen Fällen eine Korrektur stattfinden kann. Beim Abgleich des vermeintlichen Ortsnamens am Objekt mit dem aus der PLZ-Liste wird nicht unbedingt völlige Übereinstimmung verlangt. Alternativ genügt es, wenn der eine Name mit dem ersten Wort des anderen übereinstimmt. Als Wort zählt in diesem Zusammenhang eine Folge von mindestens drei Buchstaben, der ein Leerzeichen oder Bindestrich folgt. (Änderungen dieser Arbeitsdefinition behalte ich mir vor.)

      Beispiele: ...

      Mich würden einmal eure Meinungen zu dem Vorhaben interessieren. Vielleicht habe ich noch was wichtiges übersehen?

      Ich finde das sinnvoll.
      Deswegen habe ich mit dem Overpass-Turbo eine kleine Overpass-Abfrage entwickelt, die alle Städte (Knoten mit place=city/town) in Deutschland (is_in enthält Deutschland) mit Leerzeichen oder Bindestrich im Namen auflistet (445 Treffer). Daraus habe ich noch die 116 Sädte die mit "Bad " beginnen entfernt.

      Wendlingen␣am␣Neckar
      Esslingen␣am␣Neckar
      Ostseebad␣Rerik
      Markt␣Schwaben
      Königs␣Wusterhausen
      Furth␣im␣Wald
      Herzebrock-Clarholz
      Ramstein-Miesenbach
      Neuburg␣an␣der␣Donau
      Steinau␣an␣der␣Straße
      Höchstadt␣an␣der␣Aisch
      Neunkirchen␣am␣Brand
      Gemünden␣am␣Main
      Königslutter␣am␣Elm
      Bergen␣auf␣Rügen
      Clausthal-Zellerfeld
      Garmisch-Partenkirchen
      Weil␣am␣Rhein
      Efringen-Kirchen
      Frankfurt␣am␣Main
      Höchst␣im␣Odenwald
      Sankt␣Blasien
      Annaberg-Buchholz
      Zell␣im␣Wiesental
      Winsen␣(Aller)
      Ottendorf-Okrilla
      Monheim␣am␣Rhein
      Bergisch␣Gladbach
      Osterode␣am␣Harz
      Herzberg␣am␣Harz
      Hann.␣Münden
      Neustadt␣in␣Holstein
      Weimar␣(Lahn)
      Neustadt-Glewe
      Oer-Erkenschwick
      Osterholz-Scharmbeck
      Wennigsen␣(Deister)
      Neustadt␣am␣Rübenberge
      Wasserburg␣am␣Inn
      Waren␣(Müritz)
      Biberach␣an␣der␣Riß
      Ribnitz-Damgarten
      Friedberg␣(Hessen)
      Plau␣am␣See
      Königsbach-Stein
      Zella-Mehlis
      Neustadt␣an␣der␣Aisch
      Naumburg␣(Saale)
      Freyburg␣(Unstrut)
      Kronberg␣im␣Taunus
      Dillingen␣an␣der␣Donau
      Hohenstein-Ernstthal
      Neu-Isenburg
      Geislingen␣an␣der␣Steige
      Mühlheim␣am␣Main
      Porta␣Westfalica
      Sankt␣Augustin
      Emmerich␣am␣Rhein
      Limbach-Oberfrohna
      Hessisch␣Oldendorf
      Königstein␣im␣Taunus
      Wangen␣im␣Allgäu
      Gau-Algesheim
      Maxhütte-Haidhof
      Ebersbach␣an␣der␣Fils
      Schwalbach␣am␣Taunus
      Oldenburg␣in␣Holstein
      Ober-Ramstadt
      Dießen␣am␣Ammersee
      Rheda-Wiedenbrück
      Lindenberg␣im␣Allgäu
      Kalbe␣(Milde)
      Burgkirchen␣an␣der␣Alz
      Garching␣an␣der␣Alz
      Landau␣an␣der␣Isar
      Stetten␣am␣kalten␣Markt
      Bruchhausen-Vilsen
      Neu-Ulm
      Schwäbisch␣Gmünd
      Kirchheim␣unter␣Teck
      Doberlug-Kirchhain
      Oberndorf␣am␣Neckar
      Giengen␣an␣der␣Brenz
      Lohne␣(Oldenburg)
      Neukirchen-Vluyn
      Kamp-Lintfort
      Bruck␣in␣der␣Oberpfalz
      Groß-Zimmern
      Nieder-Olm
      Preußisch␣Oldendorf
      Bietigheim-Bissingen
      Schwarzenbach␣an␣der␣Saale
      Sandau␣(Elbe)
      Bernkastel-Kues
      Markt␣Indersdorf
      Übach-Palenberg
      Neumagen-Dhron
      Traben-Trarbach
      Burg␣Stargard
      Herrsching␣am␣Ammersee
      Kernen␣im␣Remstal
      Brake␣(Unterweser)
      Obernburg␣am␣Main
      Wörth␣am␣Main
      Heilbad␣Heiligenstadt
      Sankt␣Andreasberg
      Neuhaus␣am␣Rennweg
      Korntal-Münchingen
      Neustadt␣bei␣Coburg
      Haren␣(Ems)
      Postbauer-Heng
      Lindow␣(Mark)
      Castrop-Rauxel
      Lingen␣(Ems)
      Neustadt␣(Dosse)
      Rotenburg␣an␣der␣Fulda
      Rüdesheim␣am␣Rhein
      Steinbach-Hallenberg
      Dietfurt␣an␣der␣Altmühl
      Zell␣am␣Harmersbach
      Isny␣im␣Allgäu
      Biebesheim␣am␣Rhein
      Lindau␣(Bodensee)
      Staufen␣im␣Breisgau
      Linz␣am␣Rhein
      Ilsenburg␣(Harz)
      Grafing␣bei␣München
      Werder␣(Havel)
      Neukirchen␣(Knüll)
      Oberursel␣(Taunus)
      Meisenheim,␣Glan
      Sankt␣Georgen
      Alfeld␣(Leine)
      Wilkau-Haßlau
      Bendorf␣(Rhein)
      Bernburg␣(Saale)
      Nassau␣(Lahn)
      Endingen␣am␣Kaiserstuhl
      Neunburg␣vorm␣Wald
      Hochheim␣am␣Main
      Wörth␣an␣der␣Donau
      Henstedt-Ulzburg
      Rheinfelden␣(Baden)
      Hohen␣Neuendorf
      Neustadt␣am␣Kulm
      Röthenbach␣an␣der␣Pegnitz
      Hitzacker␣(Elbe)
      Eisenberg␣(Pfalz)
      Simbach␣am␣Inn
      Lohr␣am␣Main
      Krakow␣am␣See
      Eltville␣am␣Rhein
      Neusalza-Spremberg
      Sankt␣Goar
      Bernau␣bei␣Berlin
      Remseck␣am␣Neckar
      Titisee-Neustadt
      Barchfeld,␣Werra
      Leinfelden-Echterdingen
      Hohenberg␣an␣der␣Eger
      Haslach␣im␣Kinzigtal
      Stadt␣Wehlen
      Wörth␣am␣Rhein
      Bismark␣(Altmark)
      Reuterstadt␣Stavenhagen
      Selters␣(Westerwald)
      Kurort␣Oberwiesenthal
      Neumarkt-Sankt␣Veit
      Ostheim␣vor␣der␣Rhön
      Greven␣(Westf.)
      Vohburg␣an␣der␣Donau
      Lauda-Königshofen
      Niedernhausen,␣Taunus
      Calbe␣(Saale)
      Gronau␣(Leine)
      Jessen␣(Elster)
      Vilshofen␣an␣der␣Donau
      Pfaffenhofen␣an␣der␣Ilm
      Steinfeld␣(Oldenburg)
      Sandersdorf-Brehna
      Sankt␣Goarshausen
      Königstein␣(Sächsische␣Schweiz)
      Ostseeheilbad␣Graal-Müritz
      Willingen␣(Upland)
      Fürth␣(Odenwald)
      Idar-Oberstein
      Werben␣(Elbe)
      Werther␣(Westfalen)
      Köthen␣(Anhalt)
      Rielasingen-Worblingen
      Sulz␣am␣Neckar
      Landau␣in␣der␣Pfalz
      Offenbach␣am␣Main
      Gartz␣(Oder)
      Geislingen␣b.␣Balingen
      Strasburg␣(Uckermark)
      Monsheim,␣Rheinhessen
      Vogtsburg␣im␣Kaiserstuhl
      Gundelfingen␣an␣der␣Donau
      Sankt␣Ingbert
      Tambach-Dietharz
      Altdorf␣bei␣Nürnberg
      Lübben␣(Spreewald)
      Klingenberg␣am␣Main
      Oestrich-Winkel
      Lauterbach␣(Hessen)
      Brandenburg␣an␣der␣Havel
      Neustadt␣an␣der␣Donau
      Achim␣(Weser)
      Steinheim␣an␣der␣Murr
      Horn-Bad␣Meinberg
      Neumarkt␣in␣der␣Oberpfalz
      Floh-Seligenthal
      Garching␣bei␣München
      Hamm␣(Sieg)
      Schieder-Schwalenberg
      Groß-Gerau
      Naumburg␣(Hessen)
      Coswig␣(Anhalt)
      Rottenburg␣am␣Neckar
      Buchen␣(Odenwald)
      Schloß␣Holte-Stukenbrock
      Uebigau-Wahrenbrück
      Schwarzenberg␣im␣Erzgebirge
      Freiburg␣im␣Breisgau
      Stockstadt␣am␣Rhein
      Höchstädt␣an␣der␣Donau
      Frankenberg␣(Eder)
      Fürstenwalde␣(Spree)
      Bernstadt␣auf␣dem␣Eigen
      Herzberg␣(Elster)
      Homberg␣(Efze)
      Leer␣(Ostfriesland)
      Hessisch␣Lichtenau
      Neuenhagen␣bei␣Berlin
      Baden-Baden
      Lutherstadt␣Eisleben
      Breisach␣am␣Rhein
      Lenzen␣(Elbe)
      Kandel,␣Pfalz
      Winsen␣(Luhe)
      Rottenburg␣an␣der␣Laaber
      Weißenthurm,␣Rhein
      Buchholz␣in␣der␣Nordheide
      Dissen␣am␣Teutoburger␣Wald
      Erlenbach␣am␣Main
      Heringen␣(Werra)
      Halle␣(Westfalen)
      Eningen␣unter␣Achalm
      Villingen-Schwenningen
      Limburg␣an␣der␣Lahn
      Moosburg␣an␣der␣Isar
      Gneisenaustadt␣Schildau
      Regis-Breitingen
      Laucha␣an␣der␣Unstrut
      Ransbach-Baumbach
      Mörfelden-Walldorf
      Vaihingen␣an␣der␣Enz
      Storkow␣(Mark)
      Homberg␣(Ohm)
      Aken␣(Elbe)
      Neustadt␣(Hessen)
      Kohren-Sahlis
      Cappeln␣(Oldenburg)
      Blankenburg␣(Harz)
      Singen␣(Hohentwiel)
      Hirschhorn␣(Neckar)
      Annweiler␣am␣Trifels
      Ostseebad␣Kühlungsborn
      Freiberg␣am␣Neckar
      Zarrentin␣am␣Schaalsee
      Hude␣(Oldenburg)
      Schönebeck␣(Elbe)
      Brand-Erbisdorf
      Ludwigshafen␣am␣Rhein
      Rehburg-Loccum
      Auerbach␣in␣der␣Oberpfalz
      Kempten␣(Allgäu)
      Mülheim-Kärlich
      Mühldorf␣am␣Inn
      Märkisch␣Buchholz
      Wyk␣auf␣Föhr
      Sulzbach␣/␣Saar
      Haina␣(Kloster)
      Neustadt␣in␣Sachsen
      Bitterfeld-Wolfen
      Neustadt␣an␣der␣Waldnaab
      Frankfurt␣(Oder)
      Feldkirchen-Westerham
      Erbach␣(Odenwald)
      Weiden␣i.d.OPf.
      Raguhn-Jeßnitz
      Töging␣am␣Inn
      Höhr-Grenzhausen
      Sulzbach-Rosenberg
      Wolframs-Eschenbach
      Markt␣Bibart
      Haag␣in␣Oberbayern
      Goethestadt␣Bad␣Lauchstädt
      Lübbenau␣(Spreewald)
      Neustadt␣an␣der␣Orla
      Sankt␣Wendel
      Mülheim␣an␣der␣Ruhr
      Rothenburg␣ob␣der␣Tauber
      Brotterode-Trusetal
      Schwäbisch␣Hall
      Neunkirchen␣(Saar)
      Weil␣der␣Stadt
      Ellwangen␣(Jagst)
      Eschenbach␣in␣der␣Oberpfalz
      Forst␣(Lausitz)
      Groß-Umstadt
      Vetschau␣(Spreewald)
      Landsberg␣am␣Lech
      Prien␣am␣Chiemsee
      Edingen-Neckarhausen
      Neustadt␣an␣der␣Weinstraße
      Schwarzenbach␣am␣Wald
      Ehingen␣(Donau)
      Frankenthal␣(Pfalz)
      Allendorf␣(Lumda)
      Neu-Anspach
      Stadt␣Südliches␣Anhalt
      Osternienburger␣Land
      Samtgemeinde␣Hage
      Samtgemeinde␣Brookmerland
      Zeulenroda-Triebes
      Zahna-Elster
      Lutherstadt␣Wittenberg
      

      Falls du Bedarf hast, kann ich dir auch ausführlichere Listen zukommen lassen. Einfach über der Forum-Mail melden. Du kannst natürlich auch selber mit dem Skript Versuche durchführen.

      Wer damit ein wenig rumspielt, bitte erstmal das Limit runtersetzen und die BBox deutlich kleiner fassen. Für die BBox um ganz Deutschland lief das Skript ca. 150 Sekunden. Zum Ausprobieren reicht ja ein kleinerer Ausschnitt.

      Edbert (EvanE)


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 04.02.2013 15:24 · [flux]

      Danke Edbert, die Liste werde ich bei Gelegenheit mal mit meiner PLZ-Liste abgleichen.
      Den aus meiner Sicht wichtigsten Hinweis hast Du aber in einem kleinen Einschub versteckt: das Wort "Bad". Zum Glück gibt es scheinbar nicht allzu viele "Bad"-Orte an, vor, bei oder in Irgendwas (Bad Homburg vor der Höhe, Bad Soden am Taunus und eine Handvoll weitere), wo also die erweiterte Identitätsprüfung notwendig werden könnte. Eine Lösung könnte sein, die Definition eines Worts so abzuwandeln, daß auch "Bad xyz" als ein Wort zählt.
      Evtl. muß ich meinem Programm auch noch beibringen, Abkürzungen zu verstehen (Beulen a.d. Rinn, Einen a.d. Waffel usw.). Ansonsten gilt aber: Orte, die mein Programm nicht erkennt, bleiben einfach außen vor - da muß dann der Mensch schauen, was zu tun ist. Diese Fehlerklasse wird ja auch im housenumbervalidator angezeigt.

      btw: 55583 "Bad Münster am Stein-Ebernbu"?

      Ich hatte zwar auf quantitativ mehr Feedback gehofft, aber da ich zumindest auch keinen Widerspruch vernehme und bisherige Tests der Funktion osm-task-subfix-addr-postcode-city-confusion an "handverlesenen" Objekten ermutigend verliefen, werde ich die oben erläuterte Korrektur bald in den Probebetrieb mit einbeziehen. Damit ist dann möglicherweise bereits der Endausbau der automatischen Adresskorrekturen erreicht - ob ich mich an zusammengeklebte "Straße Hausnummer" herantraue, weiß ich noch nicht. Daß diese Aufgabe nicht ganz trivial ist, wurde ja bereits verschiedentlich erwähnt.


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · user_5359 (Gast) · 05.02.2013 10:02 · [flux]

      Oli-Wan wrote:

      Ich hatte zwar auf quantitativ mehr Feedback gehofft, ...

      Auch wenn ich mir die Adresse-Informationen bzgl. Datenqualität genauer ansehe, kann ich nicht bei allen mitdiskutieren (solange es in die richtige Richtung läuft 🙂 ).

      Derzeit 15 Werte von addr:postcode in der Form 5 Zeichen und ein Blank (und ggf. eine beliebige Zeichenkette)

      SQL-Code␣:␣like␣'_____␣%'
      

      davon sind 10 Postleitzahlen mit einem angehängten Blank. In addr:city existiert derzeit kein solches Muster, dafür gibt es einige Beispiele, die mit einer Hausnummer befüllt sind. Alle Fehlerfälle, die mir derzeit bekannt sind, würden mit den obenstehenden Beschreibungen entweder korrekt korrigiert oder nicht angepackt.

      Damit ein +1 für eine Implementierung von meiner Seite.

      MfG Georg V.


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 06.02.2013 13:09 · [flux]

      user_5359 wrote:

      Auch wenn ich mir die Adresse-Informationen bzgl. Datenqualität genauer ansehe, kann ich nicht bei allen mitdiskutieren

      Doch, ich bestehe darauf 😉 Es ist insbesondere sehr hilfreich, wenn jemand sich die betroffenen Daten mit anderen Methoden ansieht als ich, und so mögliche Probleme aufdeckt - oder eben keine.

      PLZ-Werte mit "nur" überschüssigem Leerraum werden im Rahmen der Korrektur ebenfalls gekürzt. Das steht zwar in den Details der obigen Beschreibung, aber nicht in der Einleitung, und ist eher ein Nebeneffekt der komplexeren Korrekturen; daher noch einmal der Hinweis. Es gibt zwar wahrlich schlimmere Fehler (Leerraum zu ignorieren sollte man einem Auswerter noch zutrauen) - aber wenn ich die Leerzeichen nicht entferne, tut es faktisch jemand anders (Fehlermeldung im housenumbervalidator).

      Die neu hinzugekommenen Korrekturen sehen dann z.B. so aus:

      osm-mechedit-fix-addr␣run␣Tue␣Feb␣05␣19:58:31␣2013
      created␣changeset␣#14925388,␣http://www.openstreetmap.org/browse/changeset/14925388
      editing␣node␣#2135948949,␣http://www.openstreetmap.org/browse/node/2135948949
      addr:postcode␣tag␣modified:␣"13127␣"␣->␣"13127"
      editing␣node␣#2139624781,␣http://www.openstreetmap.org/browse/node/2139624781
      addr:postcode␣tag␣modified:␣"25469␣"␣->␣"25469"
      editing␣node␣#2140561477,␣http://www.openstreetmap.org/browse/node/2140561477
      addr:postcode␣tag␣modified:␣"10119␣Berlin"␣->␣"10119"
      addr:city␣tag␣modified:␣"nil"␣->␣"Berlin"
      warning:␣addr:street␣tag␣"Steinstraße␣13"␣of␣node␣#2140561477␣still␣looks␣suspicious
      editing␣node␣#2141007216,␣http://www.openstreetmap.org/browse/node/2141007216
      addr:postcode␣tag␣modified:␣"22089␣"␣->␣"22089"
      ...
      editing␣node␣#2141598591,␣http://www.openstreetmap.org/browse/node/2141598591
      addr:postcode␣tag␣modified:␣"38350␣Helmstedt"␣->␣"38350"
      addr:city␣tag␣modified:␣"nil"␣->␣"Helmstedt"
      warning:␣addr:street␣tag␣"von-Guericke-Straße␣7"␣of␣node␣#2141598591␣still␣looks␣suspicious
      

      ("nil" ist ein Artefakt bei der Erstellung des Logs und heißt: vorher kein Wert vorhanden)


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · EvanE (Gast) · 06.02.2013 14:43 · [flux]

      Oli-Wan wrote:

      Danke Edbert, die Liste werde ich bei Gelegenheit mal mit meiner PLZ-Liste abgleichen.
      Den aus meiner Sicht wichtigsten Hinweis hast Du aber in einem kleinen Einschub versteckt: das Wort "Bad". Zum Glück gibt es scheinbar nicht allzu viele "Bad"-Orte an, vor, bei oder in Irgendwas (Bad Homburg vor der Höhe, Bad Soden am Taunus und eine Handvoll weitere), wo also die erweiterte Identitätsprüfung notwendig werden könnte. Eine Lösung könnte sein, die Definition eines Worts so abzuwandeln, daß auch "Bad xyz" als ein Wort zählt.
      Evtl. muß ich meinem Programm auch noch beibringen, Abkürzungen zu verstehen (Beulen a.d. Rinn, Einen a.d. Waffel usw.). Ansonsten gilt aber: Orte, die mein Programm nicht erkennt, bleiben einfach außen vor - da muß dann der Mensch schauen, was zu tun ist. Diese Fehlerklasse wird ja auch im housenumbervalidator angezeigt.

      btw: 55583 "Bad Münster am Stein-Ebernbu"?

      Bad Münster am Stein-Ebernburg laut Nominatim:
      "Verwaltungsgrenze Bad Münster am Stein-Ebernburg, Bad Kreuznach, Rheinland-Pfalz, Deutschland"

      Bad Homburg vor der Höhe Abkürzung nach meiner Erinnerung Bad Homburg v.d.H.

      Hier noch die Liste der 116 Städte, die mit "Bad " beginnen.

      Bad␣Abbach
      Bad␣Aibling
      Bad␣Arolsen
      Bad␣Belzig
      Bad␣Bentheim
      Bad␣Bergzabern
      Bad␣Berka
      Bad␣Berleburg
      Bad␣Berneck
      Bad␣Bevensen
      Bad␣Bibra
      Bad␣Blankenburg
      Bad␣Bodenteich
      Bad␣Brambach
      Bad␣Bramstedt
      Bad␣Breisig
      Bad␣Brückenau
      Bad␣Buchau
      Bad␣Camberg
      Bad␣Colberg-Heldburg
      Bad␣Doberan
      Bad␣Driburg
      Bad␣Dürkheim
      Bad␣Dürrenberg
      Bad␣Dürrheim
      Bad␣Eilsen
      Bad␣Elster
      Bad␣Ems
      Bad␣Endbach
      Bad␣Endorf
      Bad␣Essen
      Bad␣Fallingbostel
      Bad␣Feilnbach
      Bad␣Frankenhausen/Kyffhäuser
      Bad␣Freienwalde␣(Oder)
      Bad␣Friedrichshall
      Bad␣Gandersheim
      Bad␣Gottleuba-Berggießhübel
      Bad␣Griesbach
      Bad␣Grund
      Bad␣Harzburg
      Bad␣Herrenalb
      Bad␣Hersfeld
      Bad␣Hindelang
      Bad␣Homburg␣vor␣der␣Höhe
      Bad␣Honnef
      Bad␣Hönningen
      Bad␣Iburg
      Bad␣Kissingen
      Bad␣Kohlgrub
      Bad␣Königshofen
      Bad␣Köstritz
      Bad␣Kötzting
      Bad␣Kreuznach
      Bad␣Krozingen
      Bad␣Laasphe
      Bad␣Langensalza
      Bad␣Lausick
      Bad␣Lauterberg␣im␣Harz
      Bad␣Liebenwerda
      Bad␣Liebenzell
      Bad␣Lippspringe
      Bad␣Lobenstein
      Bad␣Malente-Gremsmühlen
      Bad␣Marienberg
      Bad␣Mergentheim
      Bad␣Münder
      Bad␣Münster␣am␣Stein-Ebernburg
      Bad␣Münstereifel
      Bad␣Muskau
      Bad␣Nauheim
      Bad␣Nenndorf
      Bad␣Neuenahr-Ahrweiler
      Bad␣Neustadt␣an␣der␣Saale
      Bad␣Oeynhausen
      Bad␣Oldesloe
      Bad␣Orb
      Bad␣Peterstal-Griesbach
      Bad␣Pyrmont
      Bad␣Rappenau
      Bad␣Reichenhall
      Bad␣Rodach
      Bad␣Sachsa
      Bad␣Säckingen
      Bad␣Salzdetfurth
      Bad␣Salzschlirf
      Bad␣Salzuflen
      Bad␣Saulgau
      Bad␣Schandau
      Bad␣Schmiedeberg
      Bad␣Schönborn
      Bad␣Schussenried
      Bad␣Schwalbach
      Bad␣Schwartau
      Bad␣Segeberg
      Bad␣Sobernheim
      Bad␣Soden␣am␣Taunus
      Bad␣Soden-Salmünster
      Bad␣Sooden
      Bad␣Staffelstein
      Bad␣Steben
      Bad␣Sulza
      Bad␣Sülze
      Bad␣Teinach
      Bad␣Tennstedt
      Bad␣Urach
      Bad␣Vilbel
      Bad␣Waldsee
      Bad␣Wildbad
      Bad␣Wildungen
      Bad␣Wilsnack
      Bad␣Windsheim
      Bad␣Wörishofen
      Bad␣Wünnenberg
      Bad␣Wurzach
      Bad␣Zwischenahn
      

      'Anfällig' für Abkürzungen dürfte neben deinen zwei Beispielen folgende Orte sein:
      - Bad Frankenhausen/Kyffhäuser
      - Bad Freienwalde (Oder)
      - Bad Lauterberg im Harz
      - Bad Neustadt an der Saale

      Edbert (EvanE)


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 06.02.2013 15:08 · [flux]

      EvanE wrote:

      Oli-Wan wrote:

      btw: 55583 "Bad Münster am Stein-Ebernbu"?

      Bad Münster am Stein-Ebernburg laut Nominatim:
      "Verwaltungsgrenze Bad Münster am Stein-Ebernburg, Bad Kreuznach, Rheinland-Pfalz, Deutschland"

      Ich bin mittlerweile dahinter gekommen. Bei dieser Relation war das von mir ausgewertete note-Tag fehlerhaft. Nominatim wertet die admin-Grenze aus, deren name-Tag korrekt ist (die aber keine für mich verwendbare Information zur PLZ enthält).

      Daneben gibt es eine Reihe von Relationen, wo ehemals auswertbare note-Tags (note="xxxxx Ortsname") durch note="xxxxx post_code" ersetzt wurden; überwiegend in Fernost und stets durch denselben Benutzer. Dort wird mein Programm die in diesem Faden beschriebenen Korrekturen nicht durchführen können.
      www.openstreetmap.org/browse/relation/1087073
      www.openstreetmap.org/browse/relation/1087077 ist inzwischen korrigiert, mein Datenauszug ist veraltet
      www.openstreetmap.org/browse/relation/1096779
      www.openstreetmap.org/browse/relation/1096785
      www.openstreetmap.org/browse/relation/1096786
      www.openstreetmap.org/browse/relation/1096809
      www.openstreetmap.org/browse/relation/1096811
      www.openstreetmap.org/browse/relation/1106855
      www.openstreetmap.org/browse/relation/1113172
      www.openstreetmap.org/browse/relation/1283586
      www.openstreetmap.org/browse/relation/1327258
      www.openstreetmap.org/browse/relation/1327267
      www.openstreetmap.org/browse/relation/1329077
      www.openstreetmap.org/browse/relation/1329080
      www.openstreetmap.org/browse/relation/1329082
      www.openstreetmap.org/browse/relation/1329083
      www.openstreetmap.org/browse/relation/1329085
      www.openstreetmap.org/browse/relation/1329086
      www.openstreetmap.org/browse/relation/1329089
      www.openstreetmap.org/browse/relation/1329091
      www.openstreetmap.org/browse/relation/1357514
      www.openstreetmap.org/browse/relation/1357521
      www.openstreetmap.org/browse/relation/1357522
      www.openstreetmap.org/browse/relation/1421434
      www.openstreetmap.org/browse/relation/2302726
      www.openstreetmap.org/browse/relation/2466233
      www.openstreetmap.org/browse/relation/2639207
      www.openstreetmap.org/browse/relation/2639208

      EvanE wrote:

      Bad Homburg vor der Höhe Abkürzung nach meiner Erinnerung Bad Homburg v.d.H.

      In den PLZ-Relationen:

      '(61348␣"Bad␣Homburg␣v.d.␣Höhe")
      '(61350␣"Bad␣Homburg␣v.d.␣Höhe")
      '(61352␣"Bad␣Homburg␣v.d.␣Höhe")
      

    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · EvanE (Gast) · 06.02.2013 17:22 · [flux]

      Oli-Wan wrote:

      EvanE wrote:

      Bad Homburg vor der Höhe Abkürzung nach meiner Erinnerung Bad Homburg v.d.H.

      In den PLZ-Relationen:

      '(61348␣"Bad␣Homburg␣v.d.␣Höhe")
      '(61350␣"Bad␣Homburg␣v.d.␣Höhe")
      '(61352␣"Bad␣Homburg␣v.d.␣Höhe")
      

      Man sollte doch immer vorher nachsehen, bevor man so etwas schreibt.
      Auf der Wikipedia-Seite steht die Abkürzung direkt am Anfang. 🙁

      Edbret (EvanE)


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 12.02.2013 00:03 · [flux]

      EvanE wrote:

      Man sollte doch immer vorher nachsehen, bevor man so etwas schreibt.
      Auf der Wikipedia-Seite steht die Abkürzung direkt am Anfang. 🙁

      Demnach ist sie aber - ohne Leerzeichen - in OSM auch falsch.

      EvanE wrote:

      Edbret (EvanE)

      Nanu, umgetauft? 😉

      Saalfeld/Saale machte zwar noch eine Anpassung des Stringvergleichs notwendig, aber seitdem läuft die neue Funktion sehr zufriedenstellend und ist bisher noch mit jedem Ortsnamen fertiggeworden. Weitere Änderungen (je ein Exemplar von mehreren bis vielen):

      editing␣node␣#2144051910,␣http://www.openstreetmap.org/browse/node/2144051910
      addr:postcode␣tag␣modified:␣"48149␣"␣->␣"48149"
      editing␣node␣#2143353577,␣http://www.openstreetmap.org/browse/node/2143353577
      addr:postcode␣tag␣modified:␣"07318␣Saalfeld"␣->␣"07318"
      addr:city␣tag␣modified:␣"nil"␣->␣"Saalfeld"
      editing␣way␣#25001680,␣http://www.openstreetmap.org/browse/way/25001680
      addr:postcode␣tag␣modified:␣"13595␣"␣->␣"13595"
      editing␣way␣#31246510,␣http://www.openstreetmap.org/browse/way/31246510
      addr:postcode␣tag␣modified:␣"12679␣Berlin"␣->␣"12679"
      addr:city␣tag␣modified:␣"nil"␣->␣"Berlin"
      editing␣way␣#204245346,␣http://www.openstreetmap.org/browse/way/204245346
      addr:postcode␣tag␣modified:␣"49201␣"␣->␣"49201"
      editing␣way␣#204130846,␣http://www.openstreetmap.org/browse/way/204130846
      addr:street␣tag␣modified:␣"Meissner␣Str."␣->␣"Meissner␣Straße"
      addr:postcode␣tag␣modified:␣"01445␣Radebeul"␣->␣"01445"
      addr:city␣tag␣modified:␣"nil"␣->␣"Radebeul"
      editing␣way␣#204231371,␣http://www.openstreetmap.org/browse/way/204231371
      addr:street␣tag␣modified:␣"Eifelstr.␣"␣->␣"Eifelstraße"
      addr:postcode␣tag␣modified:␣"53119␣"␣->␣"53119"
      editing␣node␣#287501062,␣http://www.openstreetmap.org/browse/node/287501062
      addr:postcode␣tag␣modified:␣"Hatten"␣->␣"26209"
      addr:city␣tag␣modified:␣"26209"␣->␣"Hatten"
      editing␣node␣#2147151496,␣http://www.openstreetmap.org/browse/node/2147151496
      addr:postcode␣tag␣modified:␣"84028␣Landshut"␣->␣"84028"
      addr:city␣tag␣modified:␣"nil"␣->␣"Landshut"
      editing␣node␣#2147899622,␣http://www.openstreetmap.org/browse/node/2147899622
      addr:postcode␣tag␣modified:␣"22041␣"␣->␣"22041"
      

    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · EvanE (Gast) · 12.02.2013 02:06 · [flux]

      Oli-Wan wrote:

      EvanE wrote:

      Edbret (EvanE)

      Nanu, umgetauft? 😉

      Nein, nur zu schnell getippt.
      Meistens sehe ich solche Fehler und korrigiere sie vor dem Abschicken.
      Aber irgendwann rutsch dann doch einer durch.

      Schön zu sehen, dass solche Dreher jemanden auffallen.
      Edbert (EvanE)


    • Re: Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city · Oli-Wan (Gast) · 14.02.2013 21:08 · [flux]

      Eine Ergänzung werde ich wohl noch einbauen, nämlich für den Fall, daß sowohl PLZ und Ort durcheinandergewürfelt werden als auch ein "D[ -]" vor der Postleitzahl steht. Stein des Anstoßes ist

      way␣#205324243's␣addr:postcode␣tag␣looks␣funny:␣"D-41066␣Mönchengladbach"
      but␣I␣can't␣do␣anything␣about␣it
      

      Edit: ist eingebaut und scheint zu funktionieren.