Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизНечеткое сравнение полей Найти похожие ветки
← →
RAHS (2003-06-28 14:41) [0]Задача: Есть две таблицы, в обоих - поля фамилия, имя, отчество.
Необходимо выбрать записи, относящиеся к одному и тому же человеку. Проблема в том, что в записях допущены ошибки, т.е. тот же Locate определяет их как разные. Нет ли способа эту проблему решить?
← →
sniknik (2003-06-28 15:12) [1]теоретически очень просто, написать систему с человеческим восприятием (человек же как то распознает что это тот же человек но только с ошибкой :о))
практически... не видел таких.
мо моему возможны только частные рещения, сделать чтото типа дополнительных таблиц с возможными вариантами ошибок по каждому Фамилия, имя, отчество. при нахождении в этих таблицах подставлять правильное... но в концов можно просто имя и фамилию местами поменять, ошибочно ... :о))
← →
RAHS (2003-06-28 19:31) [2]На текую точность я не рассчитываю, мне хватит, если будет учитываться расхождение в один символ и в одном поле.
← →
sniknik (2003-06-28 21:17) [3]попробовать серию условий
SELECT * FROM MyTable WHERE Name LIKE "_ндрей" or
Name LIKE "А_дрей" or
Name LIKE "Ан_рей" or
... до конца имени
также для фамилии, отчества
???, для одного символа так получится (может можно и лутше придумать)
← →
Dred2k (2003-06-28 22:00) [4]> sniknik © (28.06.03 21:17)
А с чем сравнивать? А если так имя пишется, к примеру? Причем именно у него (от нац. особеностей, например)?
Накапливать стандартные ошибки ( > sniknik © (28.06.03 15:12)) никто не будет. Это ведь по сути - правила формирования фамилий, имен, ... , они "широкие", их никто "вести" не будет - т.к. громоздко слишком.
(либо огромный всевозможный словарь искать, либо его руками делать... плюс к этому - условия по словарю...)
По-моему, это в общем виде при данных реальных упрощенных условиях не решается (хотя проблема интересная...).
Кроме того, позволю себе обратить внимание общественности на одну вполне очевидную мысль: информационные технологии дают пользователю мощный и богатый инструмент, не более. Взамен они требуют простую вещь - его творчество (в разных степенях, конечно). Механизмы подовляющего большинства человеческих процессов не предусматривают возможности четкого цифрового анализа. Не получится тут "вести юзера за ручку". Только в некоторых областях, разве что.
Исходя из этого, предположу вывод - в данной ситуации целесообразнее сделать пользователя творцом своего счастья.
(ну там справочники, кэши имен и т.п.... по вкусу/возможностям)
Вот, затравка для долгой беседы... ;)
← →
sniknik (2003-06-29 01:02) [5]> А если так имя пишется, к примеру?
в смысле? символ "блак карт" подчеркивание входит в имя? не бывает такого (по моему). единственное исключение когда не буква в имени это Д`артаньян (не сам, а символ :о)).
> А с чем сравнивать?
а вот с этим самым и сравнивать (_), подчеркивание в like обозначает буквально - один любой символ.
если надо именно подчеркивание определить, есть ESCAPE или "[_]XXX" в зависимости от движка SQL могут различия в синтаксисе (подчеркивание тоже в некоторых вопросом заменяется)
но в общем да, если закладыватся на возможность таких символов в именех/фамилиях то с запросом попыхтеть придется, все варианты перебрать, а ведь еще его динамически формировать нужно. и с такой кучей условий еще и тормозить будет жутко.
← →
XamderMan (2003-06-29 12:04) [6]http://www.programme.ru/archive/2002/8/082002_3.phtml
+ немного подумать над тем, как это реализовать. Делал подобную вещь для фамилий на украинском языке. Работает супер. Происходит практически мгновенный поиск фамилий (потому что индексированный).
← →
muk07 (2003-06-29 14:28) [7]Я применял следующее преобразование:
1. Сдвоенные согласные заменить на одиночные
2. выполнить замены: a->o и->ы ю->у итд
3. звонкие согласные заменить на глухие
После этого сравнивать, допуская 1,2 расхождения в буквах
← →
RAHS (2003-07-02 09:35) [8]Благодарю за помощь
← →
Александр Ч_ (2003-07-02 09:46) [9]Существует классификатор имен и отчеств. Можно сравнивать с ним
на предмет поиска опечаток.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c