Не знаю по поводу всей России, но по Москве и области информация у яндкса гораздо полнее. По крайней мере у него есть обозначены участковые в моём городе (МО), в отличии от http://gdemvd.ru/
У себя я сильно не заморачивался, просто ввел select, а при выборе улицы аяксом подгружается список домов. Все адреса изначально есть в базе. Если нет, то отдельный интерфейс по добавлению (это менее удобно для операторов, но зато никаких ошибок =). Еще можно рассмотреть вариант когда в поле input человек вводит или начинает вводить название, и при этом в процесе написания вываливается список релевантных записей. И выбирать можно ТОЛЬКО из предложенного списка. Так кстати реализован выбор города в поиске людей во вконтакте. Единственный минус ИМХО — в процессе написания больно много запросов к серверу.
Когда слово разбито на слоги, можно эти слоги и сравнивать, те-же расстоянием Хемминга и|или Левенштейна. И допустим суммировать совпадения для слогов в слове. По моему это сведёт ошибки к минимому, и будет точнее нежели пары букв…
этот код выдаст А БРИ КО С. Но это было написанно за две минуты на коленке для примера. При необходимости все это можно доработать, не сильно усложняя код…
Это обоснованно более высокой точность определения похожих слов. Я не вижу больших проблем в разбиении слов на слоги. Нужно всего-лишь гласные и согласные. Приведенный код в этом случае увеличится на пару строк. По времени:
Их скорее всего отключили, потому-что операторам рассылали указания из мин.связи прекратить вещание каналов не имеющих лицензии на вещание в России… Причем конкретного списка не было, типа сами разберётесь…
http://maps.yandex.ru/-/CVbKBAYS
Возможно актуально использовать в связке с другими алгоритмами… Тут уже исходя из задачи…
project.net.ru/mysql/article3/gl6_8.html
К сожалению не знаю как там это реализованно…
<?php
$word = 'никотинамидадениндинуклеотидфосфатгидрин';
preg_match_all('#(([бвгджзйклмнпрстфхцчшщъь]{1,}|)[аеёиоуыэюя]{1,})#u',$word,$syllable);
var_dump($syllable[1]);
ru.wikibooks.org/wiki/Расстояние_Левенштейна
А вообще нет смысла городить свои велосипеды. Есть готовые алгоритмы: