Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

Нечеткое сравнение полей   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-78062
Aga
2003-07-05 13:13
2003.07.24
Ура!!


14-78044
Andryk
2003-07-09 15:24
2003.07.24
Что с отправкой сообщений?


1-77829
warrior
2003-07-09 22:58
2003.07.24
Delphi & Excel


14-78115
Толстый
2003-07-08 16:40
2003.07.24
SoftIce + XP


14-78045
Dmitriy O.
2003-07-08 15:57
2003.07.24
Куда лучше прописывать настройки.