Романизация (транслитерация) русских (и славянских) топонимов

Привет, есть у кого-нибудь книжки, рефераты дисеров, ссылки и/или наработки в этой области?

https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D0%B1%D0%B5%D0%BB%D0%BE%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D0%B0_%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B8%D1%86%D0%B5%D0%B9#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8

Тут был:

Честно говоря, не могу представить себе ни одного применения транслитерации кроме неюникодных SMS. :3

Это я уже прочитал.

  1. мне мне нужно учесть вариативность (Ekaterinburg / Yekaterinburg)
  2. Нужна транслитерация Сербского например
    Понятно что для него тоже есть свой ALA-LC или аналог, но хочется понимать какие еще есть варианты.
    Т.к. например в интернете при поиске врядлт кто-то будет вбивать ’ для мягкого знака, а емнимп в ALA-LC и BGP используются и ’ и ‘’.
    Ну и с Ж ДЖ и прочими их собратьями есть разные варианты транслита. Хотелось бы найти наиболее популярные.

Есть интересная работа, но немного в обратную сторону.
http://donelaitis.vdu.lt/prussian/Restit.pdf

Там нет проблем, ибо тамошняя латиница буква в букву имеет соответствие с кирилицей в обе стороны.
Слава Вуку Караджичу.
Один звук-один символ

http://ru.wikipedia.org/wiki/%D0%93%D0%B0%D0%B5%D0%B2%D0%B8%D1%86%D0%B0
http://ru.wikipedia.org/wiki/%D0%92%D1%83%D0%BA%D0%BE%D0%B2%D0%B8%D1%86%D0%B0

Hind, А улицу молодости на польском “Młodość” ты как вводить будешь в поисковике?
Или улицу Karađorđevića (она есть еще и кирилицей)

Только не все, кроме сербов об этом знают.
И встретив перечеркнутую Ð в имени улицы, половина будет искать D а другая половина Dz.

Но за ссылки гран-мерси. Всеравно с чего-то надо начинать.

Просто в большинстве случаев, система транслитерации/романизации составляется таким образом чтобы преобразование было более-ли менее днозначным (что в общем то понятно), мне же однозначность не сильно нужна, мне важнее варианты практического написания.

Спасибо, прочту.

Так мне кажется, что задача-то обратная. Не из кирилицы получать латиницу, а наоборот. Из вольно написаной латиницы получить кирилицу, и не один вариант.

Ну совсем шикарно было бы реализовать и то и другое. Т.к. искать будут и латиницей и кирилицей, в зависимости от страны пользователя.

Так задача то в чём?
Отобразить карту для латиноязычных пользователей? Тут годятся одни подходы.
Или сделать нечёткий поиск? Тут подходы нужны совершенно другие.

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

Нечеткий поиск.

А у томтома один движок поиска в онлайн и офлайн версии один?
т.к. http://routes.tomtom.com меня не порадовал:
Екатеринбург - не нашел
Yekaterinburg - нашел то что нужно
Ekaterinburg - нашел дорогу Tumen - Ekaterinburg

Варианты есть тут https://en.wikipedia.org/wiki/Romanization_of_Russian#Transliteration_table
Подозреваю что и для прочих славянских языков в вики всё есть.

Мне кажется тебе в самом деле нужен нечеткий поиск, чтобы искалось даже Jekaterinburg/Iekaterinburg, хотя ни в одной нормативной таблице такого варианта нет.

Mlodsc, Karadordevica. Другой латиницы у меня нет)

Нечеткий поиск который отловит Yekaterinburg/Iekaterinburg/katerinburg у меня есть.
Но это не серебряная пуля, чем ближе ты угадал возможные варианты ввода транслита - тем всеравно лучше.

Нет, разные.
Только что попробовал на андроидной версии - эти 3 варианта находит.
Правда эта версия чувствительна к некоторым ошибкам написания, iekaterinburg находит, а ikaterinburg уже нет.
Когда-то юзал версию под symbian, там и такие влёт находило.

А у томтома поиск по уровням? Тоесть в начале ищем Екатеринбург, потом Ленина, потом 46/5 ? Или одним запросом?

Можно и так и так.
Можно ввести просто Ленина 46 - выведет ближайшие по текущему местоположению с сортировкой по дистанции.
Можно найти Екатеринбург, выбрать его, затем искать улицу.
А можно просто подряд набрать “екатеринбург ленина 46” - найдёт соответствующий дом.
Результаты показываются сразу, в процессе набора, можно до конца не набирать, а выбрать вариант из списка.

Я сам никогда не пробовал, но вроде-бы транслитерации можно абстрагировать как отдельные языки их детектить с 99% точностью: https://code.google.com/p/language-detection/

“EN-RU-1”
“EN-RU-2”
“EN-RU-3”
“EN-RU-4”
“SE-RU”

А потом не велосипедить ничьими диссертациями, а использовать великие базы Юникода:
http://www.unicode.org/cldr/charts/26/by_type/locale_display_names.locale_variants.html
http://cldr.unicode.org/index/cldr-spec/transliteration-guidelines
http://cldr.unicode.org/translation/transforms

Ошибки в транслитерации компенсируются на уровне определения языка.