Мне совершенно непонятна выгода от удобного интерфейса.

Да, он красивый, с ним проще работать. Но как посчитать материальную пользу?

Пять лет назад в аэропортах звучал синтезированный голос, объявляя прилёты и вылеты с разорванной интонацией после каждого слова. Иногда даже отличалась скорость речи для разных слов.

И вот пару недель назад я заслушивался новыми объявлениями о вылетах. Было чувство, что их целиком записал профессиональный диктор, который всю жизнь учился на эту роль. Интерфейс стал лучше, он стал более натуральным.
Стал ли я от этого больше летать? Вряд ли.
Может, у меня появилось предпочтение между аэропортами? Не думаю, что это настолько важный момент.
Тем не менее, зачем-то люди потратили время и деньги на приведение объявлений к естественному виду. И это очень круто!

Мне нравится естественное представление информации автоматизированными системами, как будто с вами общается живой человек. Мне кажется, что это мелкие детали, которые формируют отношение к вашему продукту в целом.
И если это отношение положительное, то вас будут выбирать в дальнейшем и рекомендовать друзьям.

В статье я расскажу, как показывать адрес одной строкой так, будто его написал человек. Я не могу с уверенностью сказать, что, прочитав статью, вы увеличите прибыль.
Но мне бы очень хотелось, чтобы как можно больше систем писали адреса красиво.

Все правила, описанные ниже, мы выработали сами. Большинство из них используем или скоро подключим на dadata.ru.

Полтора года назад мы задумались, как писать адреса по-человечески. Гугл не дал ответа, как упростить адрес, поэтому мы стали общаться с лингвистами, проводить тесты и экспериментировать.

Мы стремились выработать правила формирования понятного адреса с минимальной длиной, написанного так, как его пишут люди.

Матчасть


Чтобы автоматически формировать адреса, нам нужен источник адресов. Если знаете о КЛАДР или ФИАС, пропустите этот пункт. Для остальных расскажу, что в России адреса формируются иерархически:
  1. У каждого адреса есть субъект. В России 85 субъектов. Например: Московская область, Республика Коми, Москва.
    ?По административному делению Москва находится не в Московской области, это самостоятельный город-регион.
    Химки находятся в Московской области, а не в Москве. А вот Зеленоград, наоборот, — в Москве.
  2. В субъектах есть районы и города.
    Город без района в субъекте является городским округом. Например, Новосибирск подчинён непосредственно субъекту “Новосибирская область”.
    В ФИАС есть признак статуса центра для городов и населённых пунктов. Эта информация нам пригодится в дальшейшем при формировании адреса одной сторокой.
  3. В районах есть города и населённые пункты.
  4. В городах есть улицы и населённые пункты. Согласно ФИАС, там ещё бывают дополнительные территории: обычно это гаражно-строительные кооперативы, садово-некоммерческие товарищества и т.п.
  5. Часто в адресе указывают район города, например, “Москва, Алексеевский р-н”, или “Новосибирск, Щ”. К сожалению, внутригородские районы отсутствуют в ФИАС и КЛАДР, поэтому мы не будем использовать их при автоматическом построении адреса.
  6. В населённых пунктах есть улицы, дополнительные территории (такие же, как и в пункте 4) и дома. Бывают дома, которые не на улице, а просто в населенном пункте.


Используем привычный порядок слов


Для начала рассмотрим строку целиком. В России привыкли писать адреса от наиболее верхнего уровня административного деления к нижнему. Привычный порядок элементов таков:
  1. субъект;
  2. район;
  3. город;
  4. населенный пункт;
  5. улица;
  6. дом;
  7. расширение дома (корпус, строение, подъезд, этаж, квартира, офис,..).

Например, “Московская Область, Мытищинский Район, Мытищи Город, Ульяновская Улица, Дом 3”

Кроме этого, важен порядок слов внутри каждого уровня. Например, правильно писать “Город Санкт-Петербург” вместо “Санкт-Петербург Город”, или “Алтайский Край” вместо “Край Алтайский”. Порядок определяется по-своему для каждого типа:
  • Регион, область, край, автономный округ: сначала название, потом тип.
  • Республика, город: сначала тип, затем название.
  • Элементы в городах: районы, улицы, площади и т.п. Порядок элементов может быть как “наименование тип”, так и “тип наименование”. Мы используем свой порядок для каждого типа в зависимости от окончания наименования и частоты встречаемости. Например, мы пишем “Москва, Авиационный переулок” и “Москва, переулок Александра Невского”.

Не забываем и про исключения:
  • “Ханты-Мансийский автономный округ — Югра” пишем без типа, так как “автономный округ” есть в названии по ФИАС/КЛАДР. Пример: “Ханты-Мансийский автономный округ — Югра, г Ханты-Мансийск, ул Анны Коньковой, д 1”
  • Чувашская Республика имеет замечательный тип Чувашия (то есть наименование региона “Чувашская Республика -”, а тип — “Чувашия”), его пишем после наименования: “Чувашская Республика — Чувашия, г Чебоксары, ул Адмирала Ушакова, д 2”, или опускаем вовсе и удаляем тире в конце наименования: “Чувашская Республика, г Чебоксары, ул Адмирала Ушакова, д 2”

Адрес из ФИАС:?
Россия, Татарстан Республика, Казань Город, Братьев Касимовых Улица, дом 64

после перестановки элементов в правильном порядке превращается в
Россия, Республика Татарстан, Город Казань, Улица Братьев Касимовых, дом 64

Читать стало проще. Но можно сделать еще лучше и короче.

Разделяем типы и наименования при помощи форматирования


Простая вещь, которая поможет сделать адрес более читаемым, — визуальное разделение наименований и типов при помощи заглавных литер.

Все типы пишем с маленькой буквы, все наименования — с большой. Посмотрите сами, второй вариант читается быстрее:

До:
Камчатский Край, Город Петропавловск-Камчатский, Улица Беринга, Дом 90, Квартира 61

После:
Камчатский край, город Петропавловск-Камчатский, улица Беринга, дом 90, квартира 61


Сокращаем типы и наименования


Сокращения типов есть в ФИАС. Мы используем их, добавляем свои правила, основанные на комментариях заказчиков, а часть оставляем как есть:
Очень много типов с сокращениями
ААЛ: аал
АБОНЕНТСКИЙ ЯЩИК: а/я
АВТОДОРОГА: автодорога
АВТОНОМНАЯ ОБЛАСТЬ: Аобл
АВТОНОМНЫЙ ОКРУГ: АО
АЛЛЕЯ: аллея
АРБАН: арбан
АУЛ: аул
БЕРЕГ: берег
БУГОР: бугор
БУЛЬВАР: б-р
ВАЛ: вал
ВЛАДЕНИЕ: влд
ВОИНСКАЯ ЧАСТЬ: в/ч
ВОЛОСТЬ: волость
ВЪЕЗД: въезд
ВЫСЕЛКИ: высел (устаревшее)
ВЫСЕЛКИ(ОК): высел
ГОРОД: г
ГОРОДОК: городок
ГОРАЖНО-СТРОИТЕЛЬНЫЙ КООПЕРАТ: гск (устаревшее)
ГАРАЖНО-СТРОИТЕЛЬНЫЙ КООПЕРАТ: гск
ГАРАЖНО-СТРОИТЕЛЬНЫЙ КООПЕРАТИВ: гск
ГАРАЖНО-СТРОИТ-НЫЙ КООПЕРАТИВ: гск
САДОВОЕ ТОВАРИЩЕСТВО: сад тов
СЕЛЬСКОЕ МУНИЦИП.ОБРАЗОВАНИЕ: сельское мо
ДАЧНОЕ НЕКОММЕРЧЕСКОЕ ПАРТНЕРСТВО: днп
ЭСТАКАДА: эстакада
ДАЧНЫЙ ПОСЕЛОК: дп
ДЕРЕВНЯ: д
ДОМ: дом
ДОРОГА: дор
Ж/Д ОСТАНОВОЧНЫЙ (ОБГОННЫЙ) ПУНКТ: ж/д_оп (устаревшее)
Ж/Д ОСТАНОВ (ОБГОННЫЙ) ПУНКТ: ж/д_оп (устаревшее)
Ж/Д ОСТАНОВ. (ОБГОННЫЙ) ПУНКТ: ж/д_оп
ЖЕЛЕЗНОДОРОЖНАЯ БУДКА: ж/д_будка
ЖЕЛЕЗНОДОРОЖНАЯ КАЗАРМА: ж/д_казарм
ЖЕЛЕЗНОДОРОЖНАЯ СТАНЦИЯ: ж/д_ст
ЖЕЛЕЗНОДОРОЖНАЯ ПЛАТФОРМА: ж/д_платф
ЖЕЛЕЗНОДОРОЖНЫЙ ПОСТ: ж/д_пост
ЖЕЛЕЗНОДОРОЖНЫЙ РАЗЪЕЗД: ж/д_рзд
ЖИВОТНОВОДЧЕСКАЯ ТОЧКА: жт
ЖИЛАЯ ЗОНА: жилзона
ЖИЛОЙ РАЙОН: жилрайон
ЗАЕЗД: заезд
ЗАИМКА: заимка
ЗОНА: зона
КАЗАРМА: казарма
КАНАЛ: канал
КВАРТАЛ: кв-л
КИЛОМЕТР: км
КОЛЬЦО: кольцо
КОМНАТА: комн
КОРДОН: кордон
КОРПУС: к
КОСА: коса
КРАЙ: край
КУРОРТНЫЙ ПОСЕЛОК: кп
ЛЕСПРОМХОЗ: лпх
ЛИНИЯ: линия
МАССИВ: массив
МЕСТЕЧКО: м
МЕСТНОСТЬ: местность
МИКРОРАЙОН: мкр
МОСТ: мост
НАБЕРЕЖНАЯ: наб
НАСЕЛЕННЫЙ ПУНКТ: нп
ОБЛАСТЬ: обл
ОКРУГ: округ
ОСТРОВ: остров
ПАРК: парк
ПЕРЕЕЗД: переезд
ПЕРЕУЛОК: пер
ПЛАНИРОВОЧНЫЙ РАЙОН: п/р
ПЛАТФОРМА: платф
ПЛОЩАДКА: пл-ка
ПЛОЩАДЬ: пл
ПОГОСТ: погост
ПОЛУСТАНОК: полуст
ПОСЕЛЕНИЕ: п
ПОСЕЛОК ГОРОДСКОГО ТИПА: пгт
ПОСЕЛОК И(ПРИ) СТАНЦИЯ(И): п/ст
ПОСЕЛОК СЕЛЬСКОГО ТИПА: п (устаревшее)
ПОСЕЛОК: п
ПОЧИНОК: починок
ПОЧТОВОЕ ОТДЕЛЕНИЕ: п/о
ПРОЕЗД: проезд
ПРОМЫШЛЕННАЯ ЗОНА: промзона
ПРОСЕК: просек
ПРОСЕКА: просека
ПРОСЕЛОК: проселок
ПРОСПЕКТ: пр-кт
ПРОТОК: проток
ПРОТОКА: протока
ПРОУЛОК: проулок
РАБОЧИЙ ПОСЕЛОК: рп
РАЗЪЕЗД: рзд
РАЙОН: р-н
РЕСПУБЛИКА: Респ
РЯДЫ: ряды
САД: сад
САДОВОЕ НЕКОМ-Е ТОВАРИЩЕСТВО: снт
СЕЛО: с
СЕЛЬСКАЯ АДМИНИСТРАЦИЯ: с/а
СЕЛЬСКИЙ ОКРУГ: с/о
СЕЛЬСКОЕ ПОСЕЛЕНИЕ: с/п
СЕЛЬСКОЕ МУНИЦИП. ОБРАЗОВАНИЕ: с/мо (устаревшее)
СЕЛЬСКОЕ МУНИЦИПАЛЬНОЕ ОБРАЗО: с/мо (устаревшее)
СЕЛЬСКОЕ МУНИЦИПАЛЬНОЕ ОБРАЗОВАНИЕ: с/мо (устаревшее)
СЕЛЬСКОЕ МУНИЦИП ОБРАЗОВАНИЕ: с/мо
СЕЛЬСОВЕТ: с/с
СКВЕР: сквер
СЛОБОДА: сл
СПУСК: спуск
СТАНИЦА: ст-ца
СТАНЦИЯ: ст
СТРОЕНИЕ: стр
ТЕРРИТОРИЯ: тер
ТРАКТ: тракт
ТУПИК: туп
УЛИЦА: ул
УЛУС: у
УЧАСТОК: уч-к
ФЕРМА: ферма
ХУТОР: х
ШОССЕ: ш
ЧУВАШИЯ: Чувашия
ВЕЛАЯТ: велаят
ГОРСОВЕТ: горсовет
УЕЗД: уезд
ЭКОНОМИЧЕСКИЙ РАЙОН: экономический район
ЭТРАП: этрап
ФЕРМЕРСКОЕ ХОЗЯЙСТВО: ф/х
НЕКОММЕРЧЕСКОЕ ПАРТНЕРСТВО: н/п
ДАЧНОЕ НЕКОМ-Е ПАРТНЕРСТВО: днп
БАЛКА: балка
БУХТА: бухта
МАЯК: маяк
ГОРКА: горка
ТОННЕЛЬ: тоннель
МЫС: мыс


Если вы хотите составить свои правила для сокращений типов, то обратите внимание на два момента:
  • При сокращении типов можно не бояться потерять уникальность в рамках строки с адресом. Все типы стоят рядом с наименованиями, и человек без труда может определить, что подразумевается под сокращением. Например, в адресе “респ Татарстан, д Набережные Моркваши, д 45” без объяснения понятно, что первая д — это деревня, а вторая д — дом.
  • Тем не менее, сокращение должно быть понятным. Например, вместо адреса “Москва п Турчанинов”, где “п” может быть как переулком, так и проспектом или площадью, лучше написать “Москва, пер Турчанинов”.

В некоторых случаях люди сокращают слова “Большая” и т.п. в названиях улицы, например “Б. Ордынка”. Но автоматически делать это страшно, так как можно потерять уникальность наименования.

Адрес до сокращения типов:
Россия, республика Татарстан, город Казань, улица Братьев Касимовых, дом 64.

Адрес после:
Россия, респ Татарстан, г Казань, ул Братьев Касимовых, д 64.


Удаляем все, что можно удалить


Следующий шаг к идеальному адресу — удаление избыточной информации.
Если адрес используется для доставки корреспонденции, то избыточную информацию лучше оставить для упрощения сортировки посылок и писем.
Если же адрес нужен только для идентификации места человеком или предполагается курьерская доставка по городу, то удаление избыточной информации сделает адрес более естественным и читаемым.

Предлагаем такие правила:
  1. Удаляем страну, если это Россия. Редкие случаи вроде села Париж не повлияют на восприятие: “Челябинская обл, Нагайбакский р-н, село Париж”.
  2. Удаляем тип у города. Название города уникально в рамках одного района, так что эта информация не критична. Было “г Воронеж”, остался “Воронеж”.
  3. Удаляем регион у городских округов (это крупнейшие города в регионах, про них я писал выше). Эти города известны и уникальны в России. Например, пишем не “Новосибирская область Новосибирск”, а просто “Новосибирск”.
  4. Удаляем район у центров районов (признак есть в ФИАС и КЛАДР). Они уникальны и достаточно известны в рамках региона. Например, пишем не “Московская обл, Можайский р-н, г Можайск”, а “Московская обл, г Можайск”
  5. Удаляем город, если это понятно из контекста. Афиша концертов в Екатеринбурге? Хватит писать слово “Екатеринбург” в адресе каждой площадки.

Пока я писал статью, появилась идея удалять слово “улица”. Мне кажется, если этот тип не указан, он воспринимается как умолчательный. Давайте проведём эксперимент: “Москва, Тверская”. О чем подумали, об улице? Однако, есть ещё Тверская площадь. Впрочем, это пока неподкреплённое предположение, и делать так следует на свой страх и риск. Было бы интересно услышать комментарии по этому поводу.

После удаления очевидных сущностей адрес из примера примет более читаемый вид:
Было:
Россия, респ Татарстан, г Казань, ул Братьев Касимовых, д 64.

Стало:
Казань, Братьев Касимовых, д 64

или, если позволяет контекст:
Братьев Касимовых, д 64

Мы не удаляем тип у дома, так как обычно в адресе содержится ещё и указание на квартиру или корпус, и тогда отсутствие некоторых типов нам кажется странным. Но это дело вкуса:
Братьев Касимовых, 64, корп 1, кв 1

или
Братьев Касимовых, д 64, корп 1, кв 1

Если в адресе есть только дом, то без слова “дом” адрес будет смотреться только лучше:
Братьев Касимовых, 64


Разбиваем адрес на две строки


Наш адрес уже хороший и красивый, мы можем его отображать в интерфейсе.
Есть одно ноу-хау, как можно его ещё больше упростить при помощи форматирования: разбиваем на две строки, в первой пишем город, район, субъект (именно в такой последовательности) а во второй — населенный пункт, улицу и всё остальное.

Изначальный адрес из ФИАС:
Россия, Татарстан Республика, Казань Город, Братьев Касимовых Улица, дом 64.

Напишем так:
Казань,
Братьев Касимовых, 64


На этом всё. Надеюсь, информация вам пригодится и вы научите «говорить» ваши программы на естественном языке.
Если есть вопросы по адресам, обращайтесь. Мы эту тему любим и всегда стараемся помочь.

Комментарии (54)


  1. wrewolf
    02.04.2015 17:07
    +1

    ломаем систему
    город Троицк города Москвы.
    город внутри города…
    новая Москва…


    1. AlexGechis Автор
      02.04.2015 17:08
      +1

      Москва — это регион:)


      1. wrewolf
        02.04.2015 17:20

        видимо, что то я пропустил в этой жизни


        1. AlexGechis Автор
          02.04.2015 17:24
          +5

          В России по ФИАС три города-региона, Москва и Московская область — два разных субъекта, независимых друг от друга


          1. wrewolf
            02.04.2015 17:31
            +1

            ну про то что независимы это я знал, но про, то, что он контейнер нет


            1. david_mz
              14.04.2015 10:17
              +1

              Даже старая Москва была контейнером. Например, Москва, район Хорошёво-Мнёвники, посёлок (!) Терехово.


          1. Hedgehog13
            02.04.2015 17:37
            +6

            Четыре. Москва, Питер, Севастополь и, внезапно, Байконур.


            1. AlexGechis Автор
              02.04.2015 17:39

              Точно, спасибо!


            1. alexzzam
              02.04.2015 18:38

              Байконур же в Казахстане. Не на территории РФ.
              Каким образом он может быть регионом России?


              1. alexk24
                02.04.2015 19:00
                +7

                Тсссс…


              1. Hedgehog13
                02.04.2015 19:10
                +4

                Ага, в Казахстане. Но в ФИАС всё равно есть такой регион, с номером 99. Видимо, внесли на правах длительно арендуемой территории для упорядочивания налоговой отчётности.


              1. Janom
                02.04.2015 19:38

                друг в налоговой работал, рассказывал что Байконур (по налоговой макулатуре) относится ни то к Москве, ни то к МО


              1. olexandr17
                02.04.2015 23:48

                так же, как и севас… )


            1. BalinTomsk
              02.04.2015 19:02

              Байконур — это разве не Kазахстан?


              1. Hedgehog13
                02.04.2015 19:13

                Я чуть выше ответил. Да, конечно Казахстан. Возможно, по ФИАС он тоже принадлежал бы Казахстану, если бы в ФИАС был уровень страны, но там верхний уровень — «регион».


      1. EvilPartisan
        02.04.2015 17:58

        Как правильно писать адрес при международных отправлениях? Moscow region, Moscow? А если в Московскую область?


        1. bay73
          02.04.2015 18:03
          +4

          Для любой почты самое важное — индекс. Есло он есть, то можно вообще города не указывать. При отсутствии индекса сортировка производится вручную и тут оба варианта сработают одинаково.


          1. AlexGechis Автор
            02.04.2015 18:10

            Скорее, Moscow закинет точно в Москву, а при Moscow region будут смотреть указан ли населённый пункт, или дальше идет улица.


        1. Doomsday_nxt
          03.04.2015 06:51
          +1

          Moscow, default city… Проходили же уже :-)


        1. gluck59
          14.04.2015 14:22

          Так чтобы он был понятен работникам почты.
          Moskovskaya oblast
          Mosk. obl

          Mosk. obl, g. Krasnogorsk, ul. Lenina dom 1 kv 20
          Это будет понятно любой почтовой бабушке, которая понесет вам письмо.

          Moscow region, city Krasnogorsk, Lenina str, build 1, ap 20
          А вот это бабушка с ходу не поймет.

          В международных посылках мы используем латиницу только потому, что на компьютере продавца «из оттуда» вряд ли установлена кириллица. А вовсе не для соответствия правилам английского языка, поэтому написанное должно быть понятно «нашим», а не «ихним».


  1. bay73
    02.04.2015 17:10
    +4

    Любопытнее обратная задача. Из «Казань, Братьев Касимовых, 64» получить
    «Россия, Татарстан Республика, Казань Город, Братьев Касимовых Улица, дом 64»

    Излишняя информация в адресе напрягает именно, когда ее вводить приходится.


    1. AlexGechis Автор
      02.04.2015 17:16
      +1

      о да, задача интересная:) (собтсвенно, ей мы и занимаемся)


  1. imwode
    02.04.2015 17:13

    Санкт-Петербург,
    5-ая авеню, 1250


    1. AlexGechis Автор
      02.04.2015 17:19

      Что именно смущает в адресе?

      Не могу понять где там 5-я авеню, Вы про линию?


      1. imwode
        02.04.2015 17:51
        -3

        Меня — ничего. Думайте, что именно смущает Вас.


        1. AlexGechis Автор
          02.04.2015 18:08
          +5

          Меня смущает, что вы проигнорировали пункт «Удаляем страну, если это Россия». А в остальном статья описывает специфику русских адресов.
          Если так формально подходить, то можно сразу делать как в базе Почты России, где для каждого адреса родителем верхнего уровня является «Планета Земля».


          1. imwode
            03.04.2015 14:50

            А с каких это пор у нас необходимо читать пост перед тем как комментировать? :-)


        1. algenon
          02.04.2015 19:49
          +1

          Давайте все-таки будем точными.

          Вселенная, галактика Млечный Путь, Солнечная система, планета Земля, Соединенные Штаты Америки, штат Флорида, город Сент-Питерсберг, 5-я авеню, коттедж 183.


          1. 4dmonster
            02.04.2015 22:42

            А указание на конкретную Вселенную?
            И где индекс?


            1. algenon
              02.04.2015 22:48

              Простите, я отстал от жизни. Их уже несколько идентифицировали? Индекс запамятовал, беда. Почта не доставит.


              1. 4dmonster
                02.04.2015 22:53
                +3

                «Если в телефонном номере не указан код страны — значит Америка, если даже кода города нет — Москва»

                Если вселенная одна — она не будет указываться в адресе.


                1. algenon
                  02.04.2015 22:56
                  +1

                  Да что же это, я кругом напутал. Ну ладно.


          1. ufm
            02.04.2015 22:43
            +1

            Давайте.
            Вселенная, Местное сверхскопление галактик, Местная группа галактик, галактика Млечный путь, Солнечная система, планета Земля, Соединенные Штаты Америки, штат Флорида, город Сент-Питерсберг, 5-я авеню, коттедж 183.


            1. algenon
              02.04.2015 22:47

              Нет, ну это избыточно. Давайте держаться в рамках.


            1. kost
              03.04.2015 00:38
              +3

              zip не указали.


  1. Neuronix
    02.04.2015 17:14
    -1

    «Коллекторскому агентству» — на первом месте на главной сайте показывает, на что вы ориентируетесь.
    Деньги не пахнут, да?


    1. rmpl
      02.04.2015 19:20
      -1

      а коллекторы внезапно встали в один ряд с торговлей людьми и органами?
      есть такой бизнес, почему бы не зарабатывать с них деньги? :)


      1. Nerten
        02.04.2015 21:05
        +4

        Да обычные мошенники, что Вы сразу в крайности.


      1. Neuronix
        03.04.2015 09:33
        +4

        А что, Вы считаете такой бизнес нормальным? Я слава богу с ними лично не встречался, но весьма наслышан о методах их работы. И считаю это не бизнесом, а какими-то а-ля 90-е.
        Их методы работы ничего, кроме отвращения у нормального человека не вызывают.


  1. mifki
    02.04.2015 19:05
    +6

    > Казань, Братьев Касимовых, д 64

    Как по мне, без ул. вообще не звучит. И каким образом у вас пропали точки после сокращений?


    1. Hedgehog13
      02.04.2015 19:18
      -3

      Мы используем для адресных объектов список сокращений из ФИАС, там они без точек. Для расширения дома (всякие корпуса со строениями) также без точек — для единообразия.


    1. AlexGechis Автор
      02.04.2015 19:24
      -1

      Да, я написал выше, что про удаление улицы — спорный момент. Если считаете, что лучше с ней, то оставьте.
      Точки у нас и не появлялись. Мне кажется, что без них не теряется смысл, но строка выглядит органичней:

      г. Казань, ул. Братьев Касимовых, д. 64

      .vs.
      г Казань, ул Братьев Касимовых, д 64

      Впрочем, это дело вкуса, поэтому в статье про это я не писал.


      1. codeholic
        03.04.2015 09:57
        +5

        Без точек пишутся только сокращения единиц СИ и аббревиатуры. Писать «ул.» или без точки — всё равно, что писать «улеца».


  1. Egor3f
    02.04.2015 19:32
    +2

    Город опускать я бы тоже не стал.
    Например, в Московской области есть город Домодедово, а есть село Домодедово, и это — разные населённые пункты.
    С одной стороны, можно понять, что «Домодедово» — это город, а «с Домодедово» — село. Но, тем не менее, однозначность теряется.


    1. Imposeren
      03.04.2015 11:03
      +1

      мы делаем так: удаляем всё что можно. Если после этого в базе есть что-то, что сократилось до такого же состояния, то в обоих адресах добавляем тип объекта. Если не помогло, удаляем типы, добавляем родителя, если опять не помогло (бывают одинаковые районы в разных субъектах), то добавляем субъект. Типы и родители могут комбинироваться до получения уникального текста. Тоже самое с улицами/проспектами: если в городе есть только улица с таким названием, то вполне можно удалить тип. Если и улицы и бульвары/проспекты, то тип указан у всех


      1. AlexGechis Автор
        03.04.2015 11:05

        Интересно было бы посмотреть вживую:) Не могли бы дать примеры полученных адресов?


  1. kalbas
    02.04.2015 22:01
    +6

    Улицу нельзя опускать. Например, у нас в Белгороде есть проспект Ватутина и улица Ватутина.


    1. vlivyur
      03.04.2015 14:35
      +2

      Ну или Северный: проспект, проезд, переулок. И таких названий тем больше, чем больше город.


  1. ZyXI
    02.04.2015 22:37

    Если адрес используется для доставки корреспонденции, то избыточную информацию лучше оставить для упрощения сортировки посылок и писем.
    Начиная с какого?то 200x года почта начала советовать применять непривычную сортировку частей адреса, а именно «улица, дом, …, …, город, субъект, страна». Т.е. «всё, что нельзя вычислить из почтового индекса, в порядке уменьшения уровня административного деления, затем всё, что можно, в порядке увеличения». Так что по?хорошему нужно не просто что?то оставить, но ещё и пересортировать.

    Впрочем, я видел всего одно почтовое отделение, где до этого порядка кому?то есть хоть какое?то дело.

    Пруф: www.russianpost.ru/rp/servise/ru/home/documents/postrules/postrules2, пункт 22.


  1. serafims
    02.04.2015 23:03
    +2

    Сокращение города — «г» с точкой. Улицы — «ул.». Вообще, визуально так лучше, и иногда встречаются топонимы, про которые непонятно, какого они типа.


  1. legrus
    02.04.2015 23:15
    +1

    Некоторые названия улиц и переулков красивее переносить в начало, а некоторые в конец:

    Бобров переулок
    улица Гришина
    1-я Дубровская улица

    лучше, чем
    переулок Бобров
    Гришина улица
    Дубровская 1-я улица

    И что ваш алгоритм сделает с "улица Мичуринский проспект, Олимпийская деревня"?


    1. AlexGechis Автор
      03.04.2015 08:32

      Алгоритм обрабатывает корректно, можете сами убедиться на dadata.ru.
      «Бобров пер» и «ул Гришина» пишем как вы и говорите. За замечание с 1-ой Дубровской спасибо, будем думать как улучшить.


    1. ingumsky
      03.04.2015 14:22

      И ещё с Большой Зелениной улицей в СПб…


    1. vlivyur
      03.04.2015 14:36

      Ещё интересно «Первая улица второй половины».
      Прошу прощения, она «третья линия второй половины».