User:Oli-Wan/Wall-E/MechEditFixMisspell

From OpenStreetMap Wiki
Jump to navigation Jump to search

Korrektur typischer Tippfehler in Tagschlüsseln und -werten Flag of Germany.svg

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.

Diskussion

im deutschsprachigen OSM-Forum