Комментарии 16
Интересно. У вас там пример - "Вот такой адрес: в Москве на улице 16-й Парковой в доме номер 2, кв.3 произошло интересное событие". Если ввести эту же фразу в dadata - он разбирает тоже правильно. А какая у вас стоимость за "стандартизацию"? У dadata 10 копеек за запись. Первые 100 записей — бесплатно.
В отличие от DaData, здесь стоимость за всё SDK без ограничений, так как обработка производится локально, без обращения к внешним ресурсам. Цена - договорная.
Человек всегда может придумать пример (в области обработки текстов), который будет не по зубам самому лучшему алгоритму. Здесь всегда останется процент ошибок, для этого и используются разные метрики - полнота, точность и F-мера. Если сравнивать разные системы, то по этим метрикам на некотором количестве адресов (аналогично как проводят конкурсы по NER и т.п.). А так всегда можно найти пример адреса, понимаемый одной системой и не понимаемый другой.
«поселение Михайловский»
И эти люди защищают русский язык? Конечно, канцелярит это отдельное подмножество языка, но он ж как-то должен подчинятся общим принципам грамматики. Разве нет?
Банальное «возбуждено уголовное дело» хоть и отличается от общеязыкового «заведено уголовное дело», но хоть остается в рамках грамматики русского языка. Тут же какой-то грамматический трэш.
«г. москва ул. кржижановского 15-2-1»
и к разделителям:
«г. москва ул. Кржижановского 15-2-1
г. москва ул. Кржижановского 15/2/1»
Да, с регистром пока неважно - алгоритмы ищут адреса в произвольных текстах, и если учитывать все слова в нижнем регистре, то можно зацепить много мусора. Планирую убрать это требование при обработке текста из одного адреса (в SDK две основные функции - выделение из произвольных текстов и обработка одного адреса из "поля ввода").
Насчёт разделителей - это вообще больная тема. 15-2-1 - это что? Тут даже человек не разберёт. Например, в Забайкальском крае 10/1 обычно обозначают дом 10 и квартиру 1. В других местах это просто номер через дробь. Часть неопределённости снимается при использовании информации из ГАР ФИАС. Но в общем случае неопределённость в таких случаях неразрешима.
именно вот этот dadata эти два случая обрабатывает одинаково:
«г. москва ул. Кржижановского 15-2-1
г. москва ул. Кржижановского 15/2/1»
правильно или не правильно, это другой вопрос, но одинаково. и для человека это вобщем тоже, одно и тоже.
вот если написано вот так — «г. москва ул. кржижановского» — то «кржижановского» это ну прям точно улица адреса (т.к. слово редкое и в словаре есть), если вот так — «московская область, деревня хуево-кукуево» или «деревня малые ямки» — тут уже вопрос адрес это или нет. вощем получается со словарным подходом надо ещё словарь доразмечать — что там ну прям точно адреса, а что не точно…
Согласен. Думаю, в следующей версии SDK это будет учтено. Просто в тех довольно больших массивах адресов из разных регионов, которые мне приходилось обрабатывать, случаев названий полностью в нижнем регистре исчезающе мало, и я пока ими пренебрёг.
Индекс ГАР ФИАС достраивать нет смысла - он фиксирован и полностью перестраивается от версии к версии. Там объекты имеют вполне определённую структуру, уникальные GUID и пр. Но он - лишь вспомогательный инструмент при анализе адресов, который даёт возможность убедиться в существовании того или иного объекта, а также убрать неопределённость в ряде случаев.
Для Вашей задачи больше подойдёт Адрессарий - в него можно неограниченно добавлять новые адреса. Правда, только в рамках существующего алгоритма.
Поясню на примере. В недавней загрузке было много вот так оформленных адресов: "196620,Санкт-Петербург г,Пушкин г,Анциферовская(Гуммолосары) ул", которые на самом деле "город Санкт-Петербург муниципальный округ город Пушкин территория Гуммолосары улица Анциферовская", то есть в скобках внутри улицы уровня 8 указывался объект уровня 7. После доработки алгоритма эти случаи стали обрабатываться корректно. Но без доработки алгоритма внешними настройками решить эту задачу проблематично.
Так алгоритм Pullenti совершенствуется от загрузки к загрузке.
Любопытно, спасибо. Кстати, вот здесь https://habr.com/ru/company/hflabs/blog/260601/ есть несколько примеров реально существующих, но необычных адресов. Почти все из них разбираются на сайте правильно, кроме одного - "Бывают адреса без улицы. И даже без дома.", например: Звенигород, Супонево, корп 1.
Нормализация адресов, ГАР ФИАС и Адрессарий