Wykonałem dużo pracy nad tego rodzaju analizowaniem. Ponieważ są błędy, nie uzyskasz 100% dokładności, ale jest kilka rzeczy, które możesz zrobić, aby uzyskać jak najwięcej, a następnie wykonać wizualny test BS. Oto ogólny sposób postępowania. To nie jest kod, ponieważ pisanie go jest dość akademickie, nie ma w tym nic dziwnego, po prostu dużo obsługi ciągów.
(Teraz, gdy opublikowałeś kilka przykładowych danych, wprowadziłem kilka drobnych zmian)
- Pracuj do tyłu. Zacznij od kodu pocztowego, który będzie pod koniec, w jednym z dwóch znanych formatów:XXXXX lub XXXXX-XXXX. Jeśli to się nie pojawi, możesz założyć, że znajdujesz się w mieście, części stanu, poniżej.
- Następną rzeczą, przed zipem, będzie stan, w formacie dwuliterowym lub jako słowa. Wiesz też, co to będzie – jest ich tylko 50. Możesz także wydobyć słowa, aby zrekompensować błędy ortograficzne.
- wcześniej to miasto, i to prawdopodobnie w tej samej linii co państwo. Możesz użyć bazy danych kodów pocztowych aby sprawdzić miasto i stan na podstawie zip, lub przynajmniej użyć go jako detektora BS.
- Ulica zwykle składa się z jednej lub dwóch linii. Druga linia będzie ogólnie zawierała numer lokalu, jeśli taki istnieje, ale może to być również skrzynka pocztowa.
- Wykrycie nazwy w pierwszym lub drugim wierszu będzie prawie niemożliwe, ale jeśli nie jest poprzedzone liczbą (lub przedrostkiem „attn:” lub „uwaga na:”, może to dać ci wskazówka, czy jest to nazwa, czy linia adresu.
Mam nadzieję, że to trochę pomoże.