Automatische Korrektur von Fehlern in addr:* (4) - :postcode und :city
-
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 SaaleEdbert (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/1087073www.openstreetmap.org/browse/relation/1087077ist 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/2639208EvanE 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.