Здравствуйте.
Спасибо за статью, довольно интересный алгоритм.
Дело в том, что у меня аналогичная задача, только справочник другой (не КЛАДР). В нем слово «проспект» пишется полностью, например: "Ленина проспект", "Победы проспект" и т.д.
Таким образом, если пользователь вводит "пр. Ленина", то алгоритм выдает не проспект, а улицу "Ленина", т.к. слова "пр" и "проспект" являются не созвучными:
soundex('pr') = P600
soundex('prospekt') = P621
Как вы сравнивали soundex's – жестко (то есть по полному совпадению) или допускали некоторую погрешность (если да, то как это делали)?
Расхождение 'pr' и 'prospekt': |(621 - 600) / ((600 + 621) / 2) | = 3.4% (отношение разницы между кодами к среднему значению кода)
Я не знаю, насколько это правильно и допустимо ли такое, как думаете?
Если перефразировать — допустимо ли говорить о созвучии слов, если их soundex-коды отличаются на малую величину (например, 4%)?
Пока я решил проблему так: сокращения "пр" заменяю на "проспект", а потом запускаю алгоритм.
Спасибо.
Здравствуйте, Корниенко С. А., Вы писали:
КСА>Аннотация:
КСА>Статья разбирает частный пример актуальной задачи сравнения нечетко введенной информации с жестко заданным образцом.
спасибо, интересно.
надо будет поразбираться.
Здравствуйте, Корниенко С. А., Вы писали:
КСА>Статья:
www.post-address.ru совершенно другой алгоритм который позволяет искать и разбирать и сопостовлять. Это больше поисковая часть, но на ее основе сделана система которая разбирает не менее 95% из в принципе возможных к идентификации адресов.
После его допиливания готов поделиться с общественностью.
КСА>Автоматическая привязка текстовой адресной информации к классификатору КЛАДРАвтор(ы): Корниенко С. А.
Дата: 15.03.2008
Статья разбирает частный пример актуальной задачи сравнения нечетко введенной информации с жестко заданным образцом.
КСА>Авторы:
КСА> Корниенко С. А.
КСА>Аннотация:
КСА>Статья разбирает частный пример актуальной задачи сравнения нечетко введенной информации с жестко заданным образцом.
Здравствуйте, Корниенко С. А., Вы писали:
Решал аналогичную задачу — база с оригинальной номенклатурой, и прайсы поставщиков в разных форматах с произвольно набранными наименованиями, не привязанные к базе. вообщем, примерно также и решал — приводим к одному регистру, убираем всевозможные символы, кроме алфавитно-цифровых, заменяя их пробелами, короткие слова 1-2-3 символа подставляем из пополняемого словаря, если нет в словаре, выбрасываем (выброшенное кладем в лог для последующего анализа), разбиваем наименование по словам и сортируем, склеиваем опять и ищем в базе. В базе, соответственно, над всеми позициями проведена подобная нормализация. Работало неплохо. Если кому интересно, могу посмотреть детали.