Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
14-78055
Soft
2003-07-08 16:59
2003.07.24
Я стал сертифицированным специалистом по Delphi.


1-77921
Григорий Ситнин
2003-07-08 16:23
2003.07.24
Так каков приоритет у скобок?..


1-77880
SeRg_2003
2003-07-11 07:05
2003.07.24
Ole error 800a03ec


6-78030
LOX
2003-05-04 15:20
2003.07.24
SMTP сервер


8-78006
Fast
2003-04-02 23:54
2003.07.24
mp3->wav





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский