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