adf88 napisał(a)
Jak ktoś znalazł jakiś luki niech napisze.
Zacząłem sprawdzać Twoją metodę dla prawdziwych adresów z mojej bazy.
Dotarłem do 35 adresu - metoda nie zadziała dla:
ul.Mickiewicza 4 lok.18
Kętrzyn 26 A
ul.Jaracza 1/3 blok 16
Chyba w ogóle nic z tego. Użytkownicy i rzeczywistość są nieprzewidywalni :)
Z piękniejszych kwiatków z mojej bazy:
os. 25-lecia PRL 10-12/6
pl.Czerwca 1976 r. nr.14
ul.Jana Olbrachta 118 ABCD
Yakhub, Metoda podana przez adf88, parsowania "od końca" działa bardzo dobrze (dokonałem kilku korekt dotyczących separatora "blok-mieszkanie".
Dla wszystkich, którzy pracują nad parsowaniem adresów proponuję połączyć metodę zaproponowaną przez adf88 z parsowaniem od początku adresu. Jeśli algorytmowi nie uda się sparsować adresu "od początku" to próbuje sparsować "od końca" (zaproponowane przez adf88). Jeśli dwa sposoby nie dadzą rady sparsować tzn. że adres jest po prostu źle napisany, błędny.
Napisałem ww. algorytmy parsowania i adresy z Twojej bazy danych parsuje bardzo dobrze w następujący sposób:
ul.Mickiewicza 4 lok.18 >>> Dom=4 Separator=lok. Mieszkanie=18
Kętrzyn 26 A >>> Dom=26 A
ul.Jaracza 1/3 blok 16 >>> Adres źle napisany. Co w tym adresie jest numerem domu/bloku ???? Nawet normalny człowiek tego nie wywnioskuje.
os. 25-lecia PRL 10-12/6 >>> Adres źle napisany. Tutaj to samo co powyżej. Co jest numerem bloku 10-12? Bzdura.
pl.Czerwca 1976 r. nr.14 >>> Dom=14
ul.Jana Olbrachta 118 ABCD >>> Adres żle napisany. Co to jest ABCD? Pięć klatek schodowych? Błędny adres.
Tak więc podsumowując, zaproponowany przez adf88 algorytm parsowania "od końca" jest sensowny i działa (po dokonaniu kilku korekt dotyczących separatorów). Bardzo dobrze sprawdza się z parsowaniem "od początku" i 99.9% adresów parsuje poprawnie. Reszta to po prostu źle napisane adresy, które nie mają sensu.
Miłego kodowania