User:Oli-Wan/Wall-E/MechEditFixMisspell
Korrektur typischer Tippfehler in Tagschlüsseln und -werten
Ziel ist die Korrektur von eindeutigen Tippfehlern wie hihgway statt highway oder residental statt residential; wie immer soll es nur um weitestgehend eindeutige Fälle gehen. Die Korrekturen erfolgen auf Basis einer expliziten Liste von Ersetzungsregeln. Techniken wie unscharfe Vergleiche von Zeichenketten kommen nur bei der Suche nach möglichen Ersetzungsregeln zum Einsatz, jedoch nicht bei der Korrektur selbst.
Vorgehensweise (Skizze)
Die Kandidaten (Objekte mit fehlerhaften Tags) werden durch ein Filterprogramm aus dem DE-Extrakt der Geofabrik bezogen. Die erzeugte Kandidatendatei wird durch das Korrekturprogramm eingelesen. Anschließend werden die vorgesehenen Korrekturen in Tagschlüsseln und Werten vorgenommen.
Die Tagschlüssel (Beispiel: adr:country) jedes enthaltenen Objektes werden mit den Urbildern des Regelsatzes verglichen und ggf. durch den zugeordneten korrekten Schlüssel (hier: addr:country) ersetzt, sofern dieser nicht bereits vorhanden ist. Sind sowohl der korrekte als auch der fehlerhafte Schlüssel vorhanden und die zugehörigen Werte identisch, wird das Tag mit dem fehlerhaften Schlüssel gelöscht; stimmen die Werte nicht überein, erfolgt keine Änderung.
Bei den Werten - noch nicht implementiert - ist das Vorgehen im wesentlichen analog. Hier wird für jeden (häufigen) Schlüssel ein eigener Regelsatz für die Werte gepflegt. Abhängig vom Schlüssel wird der Wert mit den zugehörigen Urbildern verglichen und ggf. ersetzt.
Korrekturalgorithmus und Regelsatz sind für beide Teilaufgaben vollkommen disjunkt: der Algorithmus arbeitet mit dem ihm gegebenen Regelsatz und ist kompakt implementierbar. Der Regelsatz kann jederzeit erweitert bzw. geändert werden, ohne den Algorithmus zu verändern. Bis auf weiteres werden nur Schlüssel korrigiert. Wenn der diesbezügliche Regelsatz sich einigermaßen stabilisiert hat, geht es mit den Werten weiter.
Regelsatz (Parameter des Algorithmus)
Dies ist die aktuelle Fassung des Regelsatzes. Angesichts der breiten Vielfalt von Fehlermustern wird der Regelsatz regelmäßig erweitert werden müssen.
abandonde -> abandoned abandones -> abandoned abondened -> abandoned abondoned -> abandoned abandoned_railway -> abandoned:railway avvess -> access add:city -> addr:city adr:city -> addr:city adde:city -> addr:city addr.city -> addr:city addr::city -> addr:city addr:ciry -> addr:city addr:ciy -> addr:city addr:dity -> addr:city addr:sity -> addr:city addr;city -> addr:city addr_city -> addr:city adddr:city -> addr:city add:country -> addr:country addr.country -> addr:country addr_country -> addr:country addr:ountry -> addr:country addr:coutry -> addr:country adr:country -> addr:country aadr:country -> addr:country add:housename -> addr:housename addr:housenumberf -> addr:housenumber add:postcode -> addr:postcode addrPostcode -> addr:postcode add:street -> addr:street addr::street -> addr:street addrStreet -> addr:street addr_suburb -> addr:suburb addr:subrub -> addr:suburb addR:suburb -> addr:suburb addr:usburb -> addr:suburb amenit -> amenity anemity -> amenity ameity -> amenity amanety -> amenity amnety -> amenity anmial_keeping:type -> animal_keeping:type artsit -> artist attraktion -> attraction attrection -> attraction barreier -> barrier bycicle -> bicycle bicycle parking -> bicycle_parking brigde -> bridge board:type -> board_type baoat -> boat Building -> building bulding -> building buidling:colour -> building:colour building;colour -> building:colour building:coulor -> building:colour buidling:levels -> building:levels builging:levels -> building:levels building.part -> building:part building;part -> building:part building_part -> building:part buidling:use -> building:use caapcity -> capacity capacity:disable -> capacity:disabled castel_type -> castle_type castle_typ -> castle_type castle:type -> castle_type castlestype -> castle_type cemetary -> cemetery cemetry -> cemetery chnage:lanes -> change:lanes cliub -> club cosntruction -> construction Construction -> construction constuction -> construction contact:mobil -> contact:mobile cuosine -> cuisine cuiseine -> cuisine couisin -> cuisine denatation -> denotation demonination -> denomination describtion -> description description.de -> description:de detout -> detour diet:vegatarian -> diet:vegetarian dringable -> drinkable drive-through -> drive_through entramce -> entrance entarnce -> entrance est_hight -> est_height fence_typ -> fence_type fecne_type -> fence_type fench_type -> fence_type ficme -> fixme FIXMW -> FIXME FXIME -> FIXME footway=right -> footway:right fuel:CNG -> fuel:cng fuel:E10 -> fuel:e10 generator_method -> generator:method generator_source -> generator:source genus:DE -> genus:de heigth -> height heihgt -> height hieght -> height hright -> height hieight -> height heirtage -> heritage heritgae:operator -> heritage:operator heritage_operator -> heritage:operator hvg -> hgv hvg:conditional -> hgv:conditional higwhay -> highway Highway -> highway inclien -> incline inclide -> incline Information -> information intermittend -> intermittent intermitten -> intermittent is_n -> is_in is:in:township -> is_in:township is_in:townahip -> is_in:township lamp:mount -> lamp_mount landu -> landuse lanes.backward -> lanes:backward lanes;backward -> lanes:backward lanes_backward -> lanes:backward lanes.forward -> lanes:forward lanes_forward -> lanes:forward LAYER -> layer Layer -> layer laayer -> layer man made -> man_made maxheigth -> maxheight maxheigh -> maxheight maspeed -> maxspeed max:speed -> maxspeed max_speed -> maxspeed maxspeed:backeard -> maxspeed:backward maxspeed:backwarck -> maxspeed:backward maxspeed;backward -> maxspeed:backward maxspeed:forwad -> maxspeed:forward maxspeed.forward -> maxspeed:forward maxspeed:fordward -> maxspeed:forward maxspeed:foreward -> maxspeed:forward maxspeed:fo -> maxspeed:forward maxweigth -> maxweight Maxweight -> maxweight maxweight:condition -> maxweight:conditional megalith_typ -> megalith_type menorial -> memorial menorial_type -> memorial:type motorraod -> motorroad MTB:Scale -> mtb:scale MTB:scale -> mtb:scale mtb_scale -> mtb:scale mtb.scale -> mtb:scale mtb:scael -> mtb:scale mtb:scale;uphill -> mtb:scale:uphill Name -> name Natural -> natural natrual -> natural naturan -> natural naturaql -> natural naturel -> natural narural -> natural Network -> network networt -> network NOEXIT -> noexit moexit -> noexit noet -> note note.de -> note:de Nudism -> nudism oficial_name -> official_name old_addr:housenummer -> old_addr:housenumber openning_hours -> opening_hours openind_hours -> opening_hours operater -> operator oeprator -> operator opeartor -> operator osmc:Symbol -> osmc:symbol patking -> parking parking:condition:area;customers -> parking:condition:area:customers parking:condition:left.residents -> parking:condition:left:residents parking:condition:left:time_intervall -> parking:condition:left:time_interval parking:condition:right:time_intervall -> parking:condition:right:time_interval parking:condition:rigth -> parking:condition:right parking:condition_both -> parking:condition:both parking:lane:rigth:parallel -> parking:lane:right:parallel parking_condition -> parking:condition parking_lane:left -> parking:lane:left parking_lane:left:parallel -> parking:lane:left:parallel payment:coin -> payment:coins payment:credit_card -> payment:credit_cards payment:debit_card -> payment:debit_cards payment:mastercar -> payment:mastercard phoen -> phone playgroung -> playground ppoulation -> population Power_Source -> power_source propsoed -> proposed public_tranpsort -> public_transport publick_transport -> public_transport public_transprt -> public_transport Ref -> ref rer -> ref relig -> religion reservior_type -> reservoir_type roof_colour -> roof:colour roof:heigth -> roof:height roof:level -> roof:levels roof:llevels -> roof:levels roof_material -> roof:material roof:mateiral -> roof:material roof:materials -> roof:material roof_orientation -> roof:orientation roof:shade -> roof:shape roof_shape -> roof:shape rrof:shape -> roof:shape coof:shape -> roof:shape rountrip -> roundtrip shelter:type -> shelter_type shelter-Type -> shelter_type sidewald -> sidewalk shpo -> shop shot_name -> short_name smoking_outside -> smoking:outside smothness -> smoothness smotthnes -> smoothness Source -> source soruce -> source suorce -> source source:gemoetry -> source:geometry source:geom -> source:geometry source:heigth -> source:height source:maxpseed -> source:maxspeed surfacw -> surface surfcae -> surface suirface -> surface tactilie_paving -> tactile_paving tactile_pafing -> tactile_paving tourisme -> tourism turism -> tourism trakctype -> tracktype traxktype -> tracktype zracktype -> tracktype Tracktype -> tracktype tracktyp -> tracktype trackty -> tracktype tarcktype -> tracktype trackttype -> tracktype tracktxpe -> tracktype track type -> tracktype trycktype -> tracktype trycktape -> tracktype tracktyper -> tracktype traffic_signals:sounds -> traffic_signals:sound trail_visibilty -> trail_visibility traffic_claming -> traffic_calming tunne -> tunnel tunnerl -> tunnel Tunnel -> tunnel tinnel -> tunnel turn_lanes -> turn:lanes turn:lane -> turn:lanes turn|lanes -> turn:lanes lurn:lanes -> turn:lanes vehicles -> vehicle WATERWAY -> waterway Website -> website webside -> website websi -> website websit -> website wheelshair -> wheelchair whelchair -> wheelchair whitwater -> whitewater widht -> width widh -> width Wikipedia -> wikipedia wikipedia.de -> wikipedia:de xmas:features -> xmas:feature xmas:loaction -> xmas:location
Status, Ausführungsintervall
- Vorstellung und Diskussion der Idee im Forum ab 07. Oktober 2013; Erstellung der ersten Fassung des Regelsatzes.
- Erstmalige Ausführung gegen die Datenbank am 21. Oktober 2013. Bis zum 28. Oktober erstmaliges deutschlandweites Aufräumen in Bundesland-Portionen.
- Nächste Schritt: Suche nach weiteren Kandidaten für den Regelsatz; evtl. Aufnahme bislang kontroverser Tags (building:color, roof:color).
- Weiteres Vorgehen in naher Zukunft: Iterativ, voraussichtlich in Abständen von einer oder mehreren Wochen manuell gestartet. Durchsuchen des DE-Extrakts nach potentiell korrekturwürdigen Tags, Erweiterung des Regelsatzes, Ausführung.
- Langfristig: periodische Ausführung, z.B. zusammen mit den existierenden DE-weiten Korrekturen.