Так как подсказки подключаются на страницу в виде скриптов, они не видят ip адрес и иную информацию о пользователе. Впрочем, можно добавить скрытый необязательный параметр для ip адреса, чтобы его передавал используемый подсказки сервис, а мы определяли вероятный город.
Пока можно пробовать передавать отдельным параметром город, то есть самостоятельно мэтчить ip.
И ещё мы внимательно прислушиваемся ко всем предложениям на странице поддержки, особенно набирающим голоса;)
Большое спасибо за тесты!
Недавно мы писали про то, как новый алгоритм работает с опечатками, и там рассказывали, что строим модели опечаток только на основе проверенных кейсов, которые гарантируют, что адрес не перетянется «не туда». Так случилось, что кейса с Пжарским мы пока не встречали, мы его обязательно добавим если он пройдёт наши тесты.
Основная цель — быть на 100% уверенными в том, что адрес разобран правильно (если разобран).
То есть проблема плохого разбора второго и третьего тестов именно в нетипичной опечатке, которая встретилась адресному фильтру (например, Пермь К. Пожарского фильтр разбирает правильно).
У фильтра есть приоритет у городов и населённых пунктов над улицами. То есть, если задать только улицу, то фильтр сначала будет искать по городам и н.п. Проблема обычно решается городами по умолчанию, то есть списком городов, в которых стоит искать адрес, если в нём отсутствует указание города.
В функционале на Дадата отсутствует возможность задавать город или регион по умолчанию, поэтому фильтр при отсутствии города пытается притянуть его к любому городу или населённому пункту, который есть в России. Им оказался железнодородный разъезд «Пожарский»:)
Определение города по номеру телефона есть в корневом продукте Фактор, но на Дадате не включено из-за разной специфики заказчиков. Ведь адрес может быть не только проживания, но и, например, постоянной регистрации, которая часто не соответствует городу проживания.
Сопоставить КЛАДР гранулированный корректный адрес, где указаны типы и наименования компонентов (улица, город,..), в основном, не большая проблема. Самое сложное — это разобрать адрес одной строкой до состояния гранулированного корректного.
В веб версии этот функционал сейчас отсутствует, мы возвращаем наиболее вероятный вариант и ставим признак «Проверьте корректность распознанного значения».
В любом алгоритме название должно иметь выше приоритет, нежели тип объекта.
Должно, но не у всех алгоритмов это есть. Статья же про то, как выбрать алгоритм, и мы сказали на что стоит обратить внимание тем, кто его выбирает.
Примеры тестов, к сожалению, не имею права публиковать:(
А можно примеры? Хотя-бы парочку… По-моему опыту, справочник (кладр или фиас) + n-граммы отлично исправляют опечатки, не изменяя адрес.
Тут у всех свои пути, и, вероятнее всего, для вашей тестовой выборки алгоритм действительно работает. Мы подразумевали не конкретные примеры, а статистику в целом. Под пример можно заточиться, но это не гарантирует, что ошибка не вылезет в другом месте. Мы сравнивали алгоритмы с исправлением опечаток с теми же алгоритмами, но без них, на выборках примерно в 20млн адресов, и всегда получали бОльший процент обратной ошибки в алгоритмах с исправлением опечаток.
Так что-же должно быть в данном случае, улица или площадь? )
Мы возвращаем два варианта и говорим, что невозможно однозначно определить адрес.
А разве задача справочников не в том, чтобы исправлять подобные моменты? Подскажите, в каких случаях они не справляются, plz.
Справочники то справляются, а вот алгоритмы не всегда и притягивают адрес к другому н.п. но с таким же типом.
Тоже работа справочника, верно? Без справочника (стороннего или своего) подобные случаи решить не получится никак.
Верно, но некоторые алгоритмы ставят устаревшим адресам слабый приоритет и разбирают адрес не туда.
В целом — отличный пост. Не хватает технических деталей, но и так очень хорошо. Спасибо.
Да, пока без манипулятора в руке высокой точности и спокойствия в работе добиться нельзя, а хочется уже как в фильме «Особое мнение». EvoMouse тоже стоит просто как украшение, хотя я честно больше недели пытался пользоваться только ей, чтобы прошёл этап привыкания.
А как Вы определяете квартиру? Основываясь на своём опыте, могу сказать, что обозначение квартиры далеко не всегда присутствует. Плюс интересно какое число считать за квартиру: слева или справа от обозначения. Например,
Улица Мытищинская 3-я 3 кв 1 и Улица Мытищинская 3-я 3 1 кв — одно и то же?
а Улица Мытищинская 3-я 3 к 1 — тут про корпус или квартиру?
Часто можно понять о чем идет речь только исходя из порядка следования элементов в домовой части
Просто обычно доп информация добавляется сбоку от адресного компонента, но не внутри него. Вот пример от заказчика:
— 3-я Мытищинская улица, 14а Москва 3
Справа добавлена доп информация с числом, по Вашей логике следует разбирать адрес как дом 14а квартира 3, тогда как на самом деле речь про дом 14а, который находится рядом со станцией Москва-3.
Кстати, а что странного в определении домовой части в зависимости от месторасположения в строке? Вы же сами приводите пример такой зависимости: 6 рощинский 2. Смотрите сами:
Москва 6 рощинский 2 = Москва 6-ой Рощинский проезд дом 2
Москва 2 рощинский 6 = Москва 2-ой Рощинский проезд дом 6
Да, этими адресами мы занимаемся. Мы сейчас работаем над совершенно новой версией парсера, куда включаем сложные кейсы вроде представленных вами, так что в скором будущем почти всё будет обрабатываться правильно.
Было бы очень интересно почитать про Ваш подход к работе с адресами, мне кажется, это было бы очень интересно и всему сообществу.
P.S.: по поводу адреса с сайта дадаты — это наша боль:) Мы не умеем нормально работать с бизнес-центрами, воспринимаем их как мусоррную информацию и не учитываем в разборе. В том числе некорректно работаем когда бизнес-центры расположены внутри домового расширения: попробуйте разместить название БЦ в другом месте предложения и получите корректный разбор. В основном такое поведение продиктовано бизнесом (мы исходим от адресов, которые чаще встречаются у заказчиков), но перфекционизм не даёт покоя, и, надеюсь, что в этом году мы ещё всех удивим.
Если Вы отправили нам адреса с неправильным разобром, то отдельное Вам спасибо, мы их учитываем при разработке новой версии адресного парсера.
Как я люблю Питер с его чудесными домами… Взять, например, следующие:
— набережная Обводного канала 134_136_138к233литерА — это как в КЛАДР, ФИАС же такие адреса пишет как 134_136_13 корпус 233 строение (литера) А, что кстати есть ошибка из-за неправильного номера дома (потеряли 8 в конце) и написания с нижним подчёркиванием вместо дефиса
— Красных Партизан 5 литер АБВГ
— Дачная (Горелово) 162 литер АА1А2
Да, согласно классификации КЛАДР дома 64А, 64 литера А и 64 корпус А — совершенно разные дома. Но, мне кажется, судя по похожести написаний в рамках улицы, вызвано это никакими не правилами, а отсутствием стандартов. То есть, где-то воспринимают А как часть номера дома, где-то как строение, а где-то как корпус (… а где-то вообще не задумывается). Сейчас ФИАС верит источнику и А может уйти в одно из трёх полей в зависимости от формата записи в КЛАДР, однако в ФИАС есть поле под строение и тип «литера», и, мне кажется, что все литеры должны попадать в это поле, если это не литера номерного корпуса или строения. В вашем случае, скорее всего, дом стоит писать как 64АГ, что наверняка так и делается в жизни (на картах и в поиске я его не нашёл).
Это похоже на историю с домовладениями — они вроде есть, и вроде дом — это другой тип в КЛАДР, но их никто не пишет как домовладения, а пишут как дома.
Сравнил, Трубецкой переименован в Хользунова. Не совсем понял, в чем состоит вопрос?
Кстати, в ФИАС, в отличие от КЛАДР, причина неактуальности раскрыта гораздо шире в поле «статус действия»
Если не попадаете под лицензионные ограничения Яндекс и храните координаты только в кэше, то можно использовать его АПИ. Правда, с ним надо работать аккуратно и проверять что он возвращает.
Так а это и сейчас, наверное, есть. На тему клиента не уверен (да и не нужен он, мне кажется, чтобы работа со справочником не привелась к полной анархии), но база данных, откуда выгружаются КЛАДР и ФИАС, очевидно, есть. Мне кажется, что в текущей системе всё сильно зависит от людей: сделал корректировку — молодец, не сделал — другие люди будут мучиться и никто ничего не поправит. Проверок вносимой информации тоже, по всей видимости, нет: никто не берёт на себя ответственность.
И ещё там нет большого количества адресов. Например, в Республике Ингушетия и Дагестане нет около 95% всех домов. Города есть, населённые пункты есть, улицы есть, а домов на них нет. Может, там используют свой другой справочник?
Пока можно пробовать передавать отдельным параметром город, то есть самостоятельно мэтчить ip.
И ещё мы внимательно прислушиваемся ко всем предложениям на странице поддержки, особенно набирающим голоса;)
Недавно мы писали про то, как новый алгоритм работает с опечатками, и там рассказывали, что строим модели опечаток только на основе проверенных кейсов, которые гарантируют, что адрес не перетянется «не туда». Так случилось, что кейса с Пжарским мы пока не встречали, мы его обязательно добавим если он пройдёт наши тесты.
Основная цель — быть на 100% уверенными в том, что адрес разобран правильно (если разобран).
То есть проблема плохого разбора второго и третьего тестов именно в нетипичной опечатке, которая встретилась адресному фильтру (например, Пермь К. Пожарского фильтр разбирает правильно).
У фильтра есть приоритет у городов и населённых пунктов над улицами. То есть, если задать только улицу, то фильтр сначала будет искать по городам и н.п. Проблема обычно решается городами по умолчанию, то есть списком городов, в которых стоит искать адрес, если в нём отсутствует указание города.
В функционале на Дадата отсутствует возможность задавать город или регион по умолчанию, поэтому фильтр при отсутствии города пытается притянуть его к любому городу или населённому пункту, который есть в России. Им оказался железнодородный разъезд «Пожарский»:)
Определение города по номеру телефона есть в корневом продукте Фактор, но на Дадате не включено из-за разной специфики заказчиков. Ведь адрес может быть не только проживания, но и, например, постоянной регистрации, которая часто не соответствует городу проживания.
В веб версии этот функционал сейчас отсутствует, мы возвращаем наиболее вероятный вариант и ставим признак «Проверьте корректность распознанного значения».
Должно, но не у всех алгоритмов это есть. Статья же про то, как выбрать алгоритм, и мы сказали на что стоит обратить внимание тем, кто его выбирает.
Примеры тестов, к сожалению, не имею права публиковать:(
Тут у всех свои пути, и, вероятнее всего, для вашей тестовой выборки алгоритм действительно работает. Мы подразумевали не конкретные примеры, а статистику в целом. Под пример можно заточиться, но это не гарантирует, что ошибка не вылезет в другом месте. Мы сравнивали алгоритмы с исправлением опечаток с теми же алгоритмами, но без них, на выборках примерно в 20млн адресов, и всегда получали бОльший процент обратной ошибки в алгоритмах с исправлением опечаток.
Мы возвращаем два варианта и говорим, что невозможно однозначно определить адрес.
Справочники то справляются, а вот алгоритмы не всегда и притягивают адрес к другому н.п. но с таким же типом.
Верно, но некоторые алгоритмы ставят устаревшим адресам слабый приоритет и разбирают адрес не туда.
:)
Улица Мытищинская 3-я 3 кв 1 и Улица Мытищинская 3-я 3 1 кв — одно и то же?
а Улица Мытищинская 3-я 3 к 1 — тут про корпус или квартиру?
Часто можно понять о чем идет речь только исходя из порядка следования элементов в домовой части
— 3-я Мытищинская улица, 14а Москва 3
Справа добавлена доп информация с числом, по Вашей логике следует разбирать адрес как дом 14а квартира 3, тогда как на самом деле речь про дом 14а, который находится рядом со станцией Москва-3.
Москва 6 рощинский 2 = Москва 6-ой Рощинский проезд дом 2
Москва 2 рощинский 6 = Москва 2-ой Рощинский проезд дом 6
P.S.: по поводу адреса с сайта дадаты — это наша боль:) Мы не умеем нормально работать с бизнес-центрами, воспринимаем их как мусоррную информацию и не учитываем в разборе. В том числе некорректно работаем когда бизнес-центры расположены внутри домового расширения: попробуйте разместить название БЦ в другом месте предложения и получите корректный разбор. В основном такое поведение продиктовано бизнесом (мы исходим от адресов, которые чаще встречаются у заказчиков), но перфекционизм не даёт покоя, и, надеюсь, что в этом году мы ещё всех удивим.
Если Вы отправили нам адреса с неправильным разобром, то отдельное Вам спасибо, мы их учитываем при разработке новой версии адресного парсера.
— набережная Обводного канала 134_136_138к233литерА — это как в КЛАДР, ФИАС же такие адреса пишет как 134_136_13 корпус 233 строение (литера) А, что кстати есть ошибка из-за неправильного номера дома (потеряли 8 в конце) и написания с нижним подчёркиванием вместо дефиса
— Красных Партизан 5 литер АБВГ
— Дачная (Горелово) 162 литер АА1А2
Да, согласно классификации КЛАДР дома 64А, 64 литера А и 64 корпус А — совершенно разные дома. Но, мне кажется, судя по похожести написаний в рамках улицы, вызвано это никакими не правилами, а отсутствием стандартов. То есть, где-то воспринимают А как часть номера дома, где-то как строение, а где-то как корпус (… а где-то вообще не задумывается). Сейчас ФИАС верит источнику и А может уйти в одно из трёх полей в зависимости от формата записи в КЛАДР, однако в ФИАС есть поле под строение и тип «литера», и, мне кажется, что все литеры должны попадать в это поле, если это не литера номерного корпуса или строения. В вашем случае, скорее всего, дом стоит писать как 64АГ, что наверняка так и делается в жизни (на картах и в поиске я его не нашёл).
Это похоже на историю с домовладениями — они вроде есть, и вроде дом — это другой тип в КЛАДР, но их никто не пишет как домовладения, а пишут как дома.
Кстати, в ФИАС, в отличие от КЛАДР, причина неактуальности раскрыта гораздо шире в поле «статус действия»