-
в строке с разделителями - элементы почтового адреса (позиционно). позиции могут быть смещены и в элементах могут быть орфографические ошибки. надо проверить адрес в строке по кладру и по возможности восстановить его.
например если там все верно, но почтовый индекс не тот, то восстановить верный индекс по кладру.
строгой формализации нет. может быть написано : москва, г москва, москва город, и т.д.
-
Задача не решаема. Москва в какой стране? их таких несколько.
-
Задача из разряда берешь и делаешь.
Ищешь все слова (словосочетаний) в кладре, а потом из найденной кучи находишь связанные. Потом смотришь, что не распозналось и допиливаешь.
-
строка бьется по разделителям. затем бьется вторично по ним же и по пробелам. далее в зависмости от сервера все это преобразуется в нечто пригодное для селектов.
дальше делается объединение с субъектами рф, и населенными пунктами по именам. дробление по пробелам и не по пробелам позволяет не парится над случаями :
"Карла Маркса", "ул. Карла Маркса".... и т.д. так как в структуре оказываются строки :
Карла Маркса ул. Карла Маркса
после того, как определили субъект, все остальное ограничивается лайком по маске субъекта. хотя конечно ньюансов остается дофигища. приходится ориентироваться на позицию слова в строке откуда оно было выдрано. и если область новгородская, а улица псковская, то приоритет будет у новгородской.
-
> [3] iop © (30.09.16 19:46) > хотя конечно ньюансов остается дофигища
Да, тяжко это делать. Хорошо что можно зацепиться хотябы за тип, или как он там в кладре зовётся. Ну никто в зравом уме не напишет Карла улица Маркса, будет "улица" "ул" "ул." или в начале или в конце, что уже хорошо. Я бы словарь типичных сокращений сделал и приводил их у принятым в Кладр. Наверное процентов 90 таких наименований можно распознать а там уже смотреть что это за административный объект - город, регион, район, нас пункт или улица. Потом пробовать связать это заного по Кладр, если получилось, значит считать распознанным.
-
> [4] Inovet © (30.09.16 19:59) > город, регион, район, нас пункт или улица
Ну и сам Кладр лучше разделить на эти таблицы, когда в куче всё - оно совсем неудобно для выборок. Кстати, в Кладр есть история старых названий - тоже пригодится для распознавания.
-
Ещё в Кладр не совсем последовательно выборки делаются, я подзабыл немного тонкости - давно делал лет 15 назад что ли, но выборки однозначные получаются, просто по нескольким веткам алгоритма.
-
dadata.ru ?
-
> [7] megavoid © (30.09.16 20:18) > dadata.ru ?
Хм. Только есть один правовой момент - обработка персональных данных.
-
"г. Электроугли, ул. Ленина 1-2-310" - в этой строке вне контекста нет персональных данных :)
-
> [9] megavoid © (30.09.16 20:24)
А ведь действительно нет.
-
PS есичо, я о них на хабре прочёл, отношения к ним не имею, не реклама
-
> [9] megavoid © (30.09.16 20:24) > "г. Электроугли, ул. Ленина 1-2-310"
А ведь вот это "1-2-310" тоже дополнительная проблемма. Придётся ещё с разными вариантами разделителей прогонять адреса, во сколько раз там время увеличится на обработку, или даже в какой степени увеличится. Но для разовой обработки оно не важно.
-
Иной раз даже руками фиг введёшь название "улица имени маршала Рокоссовского Константина Константиновича", а в документе написано "улица Рокосовского К. К.", особенно когда в другом незнакомом городе и совсем в Омске где-нибудь.
-
Но тут просто поиск помогает. А бывает что и не помогает, но это исключения.
-
фигасе. даже апи есть. ну теперь точно доведу до ума.
-
> А ведь вот это "1-2-310" тоже дополнительная проблемма.
огромная проблема даже с местными, родными, адресами, люди вон аж целый сервис запилили а уж с адресами глобально, по всему миру, даже и человеком трудноразрешимая, а то, порой, и вовсе не ))
-
> [16] megavoid © (30.09.16 21:18)
Интересно, насколько хорошо работает сервис по твоей ссылке. Вот Иоп поробует и, надеюсь, поделится впечатлениями. Что же всем разномастные велосипеды изобретать.
-
в общем сервис годный. я пока заюзал бесплатный вариант на подсказках (не на стандартизации) я кайфую, а робот правит в фоне
|