Parsování obecné textové poštovní adresy (normalizace) rubrika: Programování: Jiné

7 onelook
položil/-a 10.1.2015

Potřebuji parsovat rychle české poštovní adresy napsané různým způsobem, s překlepy, zkratkami názvů, neúplné, není jasné, co která část je, často jde o přepis z rukou psaných adres (čitelnost nic moc), obsahuje to slova navíc, která do adresy nepatří apod. Prostě takové, jak je někdo napsal. Službu ARES samozřejmě znám, ale ten je zaprvé dost pomalý (nepoužitelný pro interaktivní práci, když odpověď mu trvá jednotky až desítky sekund), zadruhé špatně zvládá překlepy, zkratky apod. - tedy úspěšnost není zase tak moc dobrá, zatřetí má limity počtu dotazů (ty mě trápí ze všeho nejméně). Pokud by existovala nějaká dobrá knihovna pro parsování adres, bylo by to ideální. Ale předpokládám, že spíše ne. Takže hlavní otázka: Jak byste postupovali, jaké metody použili, nápady? Zdroj "všech" adres je jasný (offline RÚIAN, resp. jeho část). Ale třeba zdroj zkratek (Pha, OV, n/něco, ...) nevím, kde vzít. Mám nějaké idee jako editační vzdálenost slov, (bi|tri)gramy, ...

Jinak tedy nevím, zda

  1. je ARES tak přetížený (i v noci),
  2. algoritmus, který používá, je tak časově náročný nebo
  3. zdržuje to záměrně

Každopádně cílem je něco relativně rychlého (do sekundy max., ideálně od 100 ms).

odkaz
6 Marekzprahy
odpověděl/-a 10.1.2015

Nevím, jestli to má kompatibilní licenci (vyžaduje to zobrazit výsledek na Google mapě), ale čistě prakticky by na to šlo použít Google Geocoding API ( https://developers.google.com/maps/documentation/geocoding/ ). Jde tomu dát jakýkoli řetězec a vrátí to nejen GPS souřadnice, ale i strukturovanou adresu.

Komentáře

  • michal.kubec : pozor na omezeni poctu req: https://developers.google.com/maps/documentation/geocoding/#Limits 10.1.2015
  • kohven : Kvůli tomu omezení je to v neplacené variantě vhodné hlavně k použití na klientu. Google na to má nějaký js našeptávač, který vrací adresu rovnou atomicky (nebo má něco, čím to lze snadno zařídit). 12.1.2015
  • onelook : Google dává zajímavé výsledky. Tedy zná i věci, které v RÚIANu nejsou. Díky za tip. Omezení na 2500 dotazů za den je sice nepříjemné, ale dá s tím žít (zejména v kombinaci s něčím jiným). Rychlost parádní. 15.1.2015
  • Haunter : To mi řekni, jak z adresy, která je různě popřeházená najdeš něco na Google API... měli jsme databázi asi 2000 adres a u části to je nemožné - potom se to musí probrat ručně. Pokud ani formát není jednotný a adresy MUSÍ být správně nebo je pak nikdo nezvaliduje, musí se to udělat ručně. Geocoding - pokud ho voláš ze serveru má 2.5k omezení, ale pokud to budeš volat ajaxem budeš mít quote 25k. 16.1.2015
  • kohven : Pokud je potřeba normalizovat už uložené adresy, tak je to větší problém. Ale jinak ten našeptávač doporučuji. Prostě nedovolit uložit adresu, která není nabídnuta našeptávačem. Pro uživatele je to jeden textbox a přitom v DB je pak atomicky uložená adresa i s GPS. 16.1.2015

Pro zobrazení všech 5 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.