Adressen parsen mit Python und libpostal/pypostal
Beim letzten Treffen der PyCologne habe ich meinen Ansatz vorgestellt, um „Straße Hausnummer“ Kombinationen aus verschiedenen Ländern zu parsen. Jemand in der Gruppe gab mir dann den Hinweis auf libpostal und seine Python-Bindings.
Unter Windows habe ich es nicht zum Laufen bekommen, die Installationsroutine setzt noch diverse Compiler voraus. Unter Linux klappt die Installation, wenn man sich genau an die Anleitung unter https://github.com/openvenues/pypostal hält.
Dann kann man mittels parse_address()
die Adressdaten verarbeiten.
(base) uwe@Micro:~$ python Python 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> from postal.parser import parse_address >>> parse_address("Meisenweg 1") [('meisenweg', 'road'), ('1', 'house_number')] >>> parse_address("10 Downing Street") [('10', 'house_number'), ('downing street', 'road')] >>> parse_address("10, Rue de Pommes Frites") [('10', 'house_number'), ('rue de pommes frites', 'road')] >>> parse_address("Am Geldspeicher 1, 12345 Entenhausen") [('am geldspeicher', 'road'), ('1', 'house_number'), ('12345', 'postcode'), ('entenhausen', 'city')] >>> |