Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2017.09.10;
Скачать: [xml.tar.bz2];

Вниз

алгоритмы выборки похожих фио   Найти похожие ветки 

 
Ega23 ©   (2015-04-28 12:04) [40]

Если дублирование критично, то тогда обязательно вводи логгирование действий оператора. тогда всегда можно будет по логам понять, кто напилювал слюной и ввёл дубль данных, поставить виновного на горох и бить палками по пяткам нещадно.
Полностью автоматизировать процесс не получится, только жесткие административные меры.


 
Труп Васи Доброго ©   (2015-04-28 13:34) [41]

Если пытаешься написать что-то универсальное, что подходит всем и везде - можешь даже не начинать. Что вы зациклились на каких-то киргизах, литовцах и иностранных гражданах с латинскими именами? Сразу пограничную службу приплели и прочие налоговые органы. Любая задача решается в меру требуемой точности. ТС же не сказал, что он базу для ФСБ пишет. Может это вообще база посетителей бани, а вы тут развели флуд про стобуквенные имена и прочие кызы. Судя по описанному им бардаку, там не то что точностью, там даже приблизительностью не пахнет.
Моя база предназначалась для хранения данных абонентов электросетей, и ФИО, там был не главным идентификатором и даже паспорт был не главным, главный это номер лицевого счёта. И повторяю, я говорил про РФ, а не про абстрактную страну. Ни один из азербайджанцев, к которому обращались "Ахметович" или "Ильшанович" ни разу не возмущался и не доказывал что его надо называть именно "оглы", так что не надо выдувать из мухи слона. Будет речь идти о БД ФМС, я первый буду ратовать за точное посимвольное внесение данных. И опять-же, в РФ существует система ФИО, значит и поля должно быть три. А пустословием можно зайти в тупик даже этапе внесения даты рождения. Мол у нанайцев дату через чёрточку вносят, у китайцев через слэш и с указанием цвета и материала года, а в эфиопии записывают только месяц по календарю шумеров.


 
кгшзх ©   (2015-04-28 13:54) [42]

в РФ существует система ФИО, значит и поля должно быть три.

не значит, но кажется


 
Ega23 ©   (2015-04-28 14:19) [43]


> Ни один из азербайджанцев, к которому обращались "Ахметович"
> или "Ильшанович" ни разу не возмущался и не доказывал что
> его надо называть именно "оглы", так что не надо выдувать
> из мухи слона.


Если ты прошёл по минному полю и не подорвался, то это не значит, что мин там нету. Попадётся склочный клиент - отсудит денег.


> ТС же не сказал, что он базу для ФСБ пишет.


ТС уже согласился, что лучше на ИНН завязаться.

Кстати, ФИО можно сменить. И даже пол.


 
Inovet ©   (2015-04-28 14:51) [44]

> [43] Ega23 ©   (28.04.15 14:19)
> лучше на ИНН завязаться

На СНИЛС, ИНН вообще-то необязателен, хотя заводится на всех, как я тут недавно обнаружил, чуть ли не с рождения. С другой стороны у военных вроде бы СНИЛС нет.

> [43] Ega23 ©   (28.04.15 14:19)
> Кстати, ФИО можно сменить. И даже пол.

Да, при смене/уточнении этих реквизитов, переоформляются и соответсвующие документы - закреплено соответсвующими инструкциями.

> [41] Труп Васи Доброго ©   (28.04.15 13:34)
> в РФ существует система ФИО, значит и поля должно быть три.

Отчества может и не быть.


 
Inovet ©   (2015-04-28 15:05) [45]

Ещё. Номер паспорта меняется при его замене, ИНН/СНИЛС остаются неизменными. Но, опять же, человеческие ошибки приводят к тому, что ФИО может быть разное в паспорте/ИНН/СНИЛС. Естественно ФИО надо брать с основного документа - паспорта, а для смены в остальных человек должен сходить в соответствующую организацию и подать заявление на изменение. Но кто же пойдёт, пока не коснётся. Насчёт ИНН не уверен, там, может, и без него поправят.

Итог. Автоматизировать невозможно, ибо много нюансов.


 
Kilkennycat ©   (2015-04-28 15:06) [46]

сделать одно поле. бить тех, кто вводит не в порядке очередности ФИОИТД. Сделать проверку с предупреждением: "Вы точно уверены, что Пупкинвасяоглы - это верно?"
Одно поле с предпроверкой не сильно увеличивает кол-во ошибок, сильно ускоряет ввод.


 
Kilkennycat ©   (2015-04-28 15:08) [47]

и вообще не привязываться к фио. программе пофиг.


 
Дмитрий   (2015-04-28 17:57) [48]

Таблица Предприятия ранее называлась Клиенты, до возникновения необходимости учитывать Партнеров и Поставщиков.
Персонал - представители Клиентов и Партнеров.
Есть клиенты в Бишкеке и прочих снг.
На моей памяти француз залетный делал заказ.

В таблице Персонал ссылка на предприятие, служ.телефон, фио, должность и примечания для прочей информации.
Для стоявших целей это было достаточно.

Про какой бардак заявлял труп васи?
Бардак несомненно присутствует, но несколько в другом месте.


 
Rouse_ ©   (2015-04-28 20:24) [49]


> Труп Васи Доброго ©   (28.04.15 13:34) [41]

Да я просто про то хотел сказать что у Монголов, к примеру фамилий нет, так-же как и отчеств у граждан дружественной нам пиндосии :)
Поэтому натягивать все это через призму трех ФИО полей не всегда актуально ;)


 
Dennis I. Komarov ©   (2015-04-28 21:35) [50]

А про более одного имени никто не вспомнил


 
Rouse_ ©   (2015-04-28 22:57) [51]

Как это? [38]


 
Труп Васи Доброго ©   (2015-04-29 01:32) [52]


> Про какой бардак заявлял труп васи?

Про полный. Если нет формализации и ключа у "персонала", то твоя задача нерешаема. Ибо нет закона, запрещающего быть двум и более Иван Иванычам в одной конторе. Как ты их отличать будешь? Если люди из разных страноконтинентов, то можно было сразу сказать, я же многократно уточнил, что я говорю про РФ, здесь у всех граджан имеется ФИО, а мне опять про монголов талдычат. В РФ есть отчества и у монголов, если они граждане РФ.
Тогда про какие нафиг ИНН и СНИЛС идёт речь, если там и нанайцы и китайцы с французами??? Сами себе противоречите, граждане. Значит отчеств у монголов нет, а СНИЛС российский есть... ну да и ИНН россиянский у француза.


 
Труп Васи Доброго ©   (2015-04-29 02:01) [53]

На всякий случай, если у кого опять монголы в голове всплывут, в РФ у ВСЕХ граждан есть отчество. Вот выписка из закона:
ОБ АКТАХ ГРАЖДАНСКОГО СОСТОЯНИЯ
Статья 18. Запись фамилии, имени и отчества ребенка при государственной регистрации рождения

1. При государственной регистрации рождения фамилия ребенка записывается по фамилии его родителей. При разных фамилиях родителей фамилия ребенка записывается по фамилии отца или по фамилии матери по соглашению родителей.
2. Имя ребенка записывается по соглашению родителей.
3. При отсутствии соглашения между родителями имя ребенка и (или) его фамилия (при разных фамилиях родителей) записываются в записи акта о рождении ребенка по указанию органа опеки и попечительства.
4. Отчество ребенка записывается по имени отца, если иное не основано на национальном обычае.

Так доходчивее? В четвёртом пункте и кроются все "улы", "оглы", и прочие "кызы", но в любом случае отчество ОДНОЗНАЧНО имеется и указывается.


 
Kilkennycat ©   (2015-04-29 02:13) [54]


> Труп Васи Доброго ©   (29.04.15 02:01) [53]

Гражданство РФ можно получить не осуществляя свое рождение в РФ.


 
Inovet ©   (2015-04-29 02:22) [55]

> [52] Труп Васи Доброго ©   (29.04.15 01:32)
> В РФ есть отчества и у монголов, если они граждане РФ

Ещё раз. Отчества может не быть и в РФ.


 
Styx   (2015-04-29 07:59) [56]

А бывают люди с одним именем. Напрмер, Madonna, Cher и Govindjee.


 
Труп Васи Доброго ©   (2015-04-29 09:43) [57]


>  Отчества может не быть и в РФ.


> А бывают люди с одним именем. Напрмер, Madonna, Cher и Govindjee.

Не бывают. Это которые Мадонна Луиза Чикконе, Ше́рилин Саркися́н Лапье́р Бо́но О́ллмэн?
Это лишь слова. Докажите делом или законом. Выкладывайте скан реального паспорта гражданина РФ, родившегося в РФ, без фамилии, имени или отчества.

> Гражданство РФ можно получить не осуществляя свое рождение
> в РФ.

И что?
Как всё это (вместе с оглы и монголами) помешает системе ФИО из трёх полей????
Кто мешает оставить поле ПУСТЫМ??? Или как система трёх полей помешает записать в поле "имя" что то экзотическое, вроде Жерар-Ксавье или Жан-Поль?


 
Inovet ©   (2015-04-29 10:54) [58]

> [57] Труп Васи Доброго ©   (29.04.15 09:43)
> Как всё это (вместе с оглы и монголами) помешает системе ФИО из трёх полей

Для ФИО должно быть три поля, кто же спорит.


 
Ega23 ©   (2015-04-29 11:00) [59]


> Как всё это (вместе с оглы и монголами) помешает системе
> ФИО из трёх полей????


Речь не о трёх полях, а о коверканьи ФИО. В трёх полях или в одном - это вопрос исключительно удобства пользователей, если им не надо печатать пропуска/отчеты/карточки по шаблону, гда ФИО в трёх разных местах сидит, а также не надо часто по ФИО искать - можно всё в одном поле хранить.


 
Труп Васи Доброго ©   (2015-04-29 11:35) [60]


> можно всё в одном поле хранить.

Ну да, чтобы потом спрашивать: "Как отличить Иванова Ивана от Ивана Иванова".


 
Styx   (2015-04-29 11:54) [61]


> Govindjee

У него ставят в качестве имени FNU - first name unknown. Хотя по факту это именно первое имя, а от last он отказался (почему - можете найти в сети). И у тех двух девушек, насколько я знаю, стоит одно имя - по информации от, собственно, Govindgee - он очень любит рассквзывать, что рн - один из трёх людей ы Штатах с одним именем. :)


 
Ega23 ©   (2015-04-29 12:11) [62]


> Ну да, чтобы потом спрашивать: "Как отличить Иванова Ивана от Ивана Иванова".


Зависит от задачи. Хотя я бы в любом случае разбил бы на три части, составное поле всегда можно сделать.


 
Inovet ©   (2015-04-29 13:14) [63]

После озвучивания реальной задачи делаем вывод - задача ещё более неразрешимая. Отличаются ли степени неразрешимости? Нет. А вот степени возможностей контроля различаются - ИНН/СНИЛС у одних есть у других нет, а документ удостоверяющий личность у всех должен быть. Хуже, но хоть как-то можно ПРИ ВВОДЕ проконтролировать задвоение. Хуже тем, что через год этот же человек придёт с новым паспортом - поменял по возрасту, сменил фамилию, потерял старый, его вносят повторно и никак не проверить был ли он уже внесён, особенно в случае смены ФИО. Ни программа не проверит, ни оператор.


 
Труп Васи Доброго ©   (2015-04-29 14:12) [64]

Сканировать отпечатки пальцев, рисунок сетчатки и стоматологическую карту. Редких двойников расстреливать на месте и кремировать останки. Это единственный способ. Решение любой задачи требует каких-то допущений, иначе ничего невозможно сделать. Если 99,99999% пациентов имеют ФИО, то и базу надо под них проектировать, а пришедщего Остапа Ибрагима Сулеймана Берта Марию Бендер-бея внести в БД просто как Остапа Ибрагимовича Бендера. Объяснить человеку, если потребуется, что в программе такие ограничения и ничего нельзя поделать. Вот и всё.


 
Kilkennycat ©   (2015-04-29 14:20) [65]


> Сканировать отпечатки пальцев, рисунок сетчатки и стоматологическую
> карту

днк из позвоночника


 
Ega23 ©   (2015-04-29 14:55) [66]


> Сканировать отпечатки пальцев, рисунок сетчатки


Угу. Ещё взвешивали. Было дело.


 
Дмитрий   (2015-04-29 18:33) [67]


> Труп Васи Доброго ©   (29.04.15 01:32) [52]
> > Про какой бардак заявлял труп васи?Про полный. Если нет
> формализации и ключа у "персонала", то твоя задача нерешаема.
>


Бардак начинается, когда вы, не внимательно прочитав, делаете поспешные выводы.
Вы также не различаете "задачу не решаемую", "не решаемую автоматически", "не решаемую в теории", и "задачу имеющую удовлетворительное решение"

Меня вполне устроит показать оператору список записей уже зарегистрированных персоналей, схожих с создаваемой.
Чтобы оператор решал по месту, создавать новую запись или привязаться к уже существующей.


 
brother ©   (2015-04-29 18:56) [68]

> Чтобы оператор решал по месту, создавать новую запись или
> привязаться к уже существующей.

> Чтобы оператор решал по месту, создавать новую запись или
> привязаться к уже существующей.

те потом будет что анализировать оператор? имхо: день рождения, адрес проживания, снилс...
2.


 
Германн ©   (2015-04-30 02:07) [69]


> Дмитрий   (29.04.15 18:33) [67]
>
>
> > Труп Васи Доброго ©   (29.04.15 01:32) [52]
> > > Про какой бардак заявлял труп васи?Про полный. Если
> нет
> > формализации и ключа у "персонала", то твоя задача нерешаема.
>
> >
>
>
> Бардак начинается, когда вы, не внимательно прочитав, делаете
> поспешные выводы.
> Вы также не различаете "задачу не решаемую", "не решаемую
> автоматически", "не решаемую в теории", и "задачу имеющую
> удовлетворительное решение"
>
> Меня вполне устроит показать оператору список записей уже
> зарегистрированных персоналей, схожих с создаваемой.

Вопрос в том устроит ли такое решение твоего работодателя.


 
Юрий Зотов ©   (2015-04-30 14:35) [70]

> Дмитрий   (29.04.15 18:33) [67]

> Меня вполне устроит показать оператору список записей уже
> зарегистрированных персоналей, схожих с создаваемой.


Недавно решал ту же задачу.

Параметры поиска были разбиты на 2 группы - обязательные и необязательные. Результаты поиска получились в трех категориях:
1. Полное соответствие (совпали все параметры)
2. Частичное соответствие (совпали обязательные параметры, но не совпал хотя бы один необязательный).
3. Не найдено (не совпал хотя бы один обязательный параметр).

По категории 1 программа может сделать нужные действия автоматически. По категории 2 решение принимает оператор. По категории 3 не делается ничего.

Такое решение всех устроило (да и возможно ли другое?). Надо только хорошо продумать критерии поиска (какие параметры обязательные, а какие - нет). И еще надо иметь в виду, что одна входная запись может породить не одну, а несколько выходных записей в категории 2.


 
Юрий Зотов ©   (2015-04-30 15:14) [71]

И что касается собственно поиска по ФИО.

1. В экранном интерфейсе есть птичка - различать Е и Ё, или не различать. Оператор ставит эту птичку как ему надо. Если не различать, то в тексте запроса к БД используем TRANSLATE (замена Ё на Е), а в параметрах запроса - ReplaceAll (та же замена). И в любом случае используем UPPER.

2. Жаль, конечно, что на входе атрибуты в ФИО могут меняться местами, но это можно обойти простым перебором (и искать сцепленное ФИО).

Допустим, на входе имеем: Мусик Пусик. Мы не знаем, где тут фамилия, где имя, а где отчество. Запрос примерно такой:

select ... from ... where
(LastName || FirstName || Patronymic)  =  "МусикПусик"
or
(LastName || Patronymic || FirstName)  =  "МусикПусик"
or
... -- остальные 4 варианта


Запрос, конечно, не самый лучший, но суть он показывает.


 
Юрий Зотов ©   (2015-04-30 15:17) [72]

Вдогонку - и про TRIM не забываем, а то понагонят пробелов в БД...


 
Юрий Зотов ©   (2015-04-30 15:24) [73]

Нечеткое сравнение строк:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=722


 
Дмитрий   (2015-04-30 17:28) [74]


> Юрий Зотов ©   (30.04.15 14:35) [70]
>  Недавно решал ту же задачу.Параметры
> поиска были разбиты на 2 группы - обязательные и необязательные.
>  Результаты поиска получились в трех категориях:1. Полное
> соответствие (совпали все параметры)2. Частичное соответствие
> (совпали обязательные параметры, но не совпал хотя бы один
> необязательный).3. Не найдено (не совпал хотя бы один обязательный
> параметр).По категории 1 программа может сделать нужные
> действия автоматически. По категории 2 решение принимает
> оператор. По категории 3 не делается ничего.


Именно так, кроме п.3
Если никаких совпадений не найдено, создается новая запись, ссылку на которую и помещаем в Персонал.


 
Юрий Зотов ©   (2015-04-30 18:54) [75]

> Если никаких совпадений не найдено, создается новая запись,
>  ссылку на которую и помещаем в Персонал.


Это опасно. Допустим в БД - МихаЙлович, на входе - МихаИлович, а остальные атрибуты совпадают. То есть, это один и тот же человек, который при строгом сравнении будет продублирован  и мы получим грязь в базе.

Я бы использовал нечеткое сравнение и автоматически создавал новую запись только при совпадении 100%, а если меньше - то на откуп оператору.


 
Дмитрий   (2015-04-30 19:25) [76]

Наоборот
При отсутствии каких-либо совпадений, запись создается в Персоны, ссылка заносится в Персонал
При нечетком совпадении (или при любых совпадениях) - на решение оператору.


 
Игорь Шевченко ©   (2015-05-01 10:50) [77]

а как оператор узнает ?


 
Дмитрий   (2015-05-05 14:53) [78]

При обнаружении похожих записей ему будет показан список этих записей с возможностью открыть форму Персоны


 
Edgar_Wine   (2015-05-05 17:43) [79]

> бонусы при смене места работы

При смене? Бонусы? Отрицательные что ли? %)

У нас как бы различие персонала завязано на логин пользователя, уникальный, без пробелов и спец-символов, большинство предпочитают регистрироваться под числами типа 245, 1100.
То есть есть id записи (счётчик) и логин - основные поля. А опционально есть три необязательных поля Ф/И/О и одно вычисляемое, склеивающее их через пробелы. Заполняй, не заполняй, пиши любой текст. И люди при регистрации (в том числе киргизы и прочие) сами заполняют эти поля.

> похожих фио

Странный термин. Имя "Попугай" и имя "йагупоП" это как считать, похожие? С:


 
Ega23 ©   (2015-05-05 18:42) [80]


> У нас как бы различие персонала завязано на логин пользователя


База персонала и база пользователей некой системы - это совершенно разные вещи. Иногда они могут совпадать, но это только иногда.



Страницы: 1 2 3 вся ветка

Форум: "Начинающим";
Текущий архив: 2017.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.005 c
2-1429285414
Дмитрий
2015-04-17 18:43
2017.09.10
алгоритмы выборки похожих фио


2-1443147790
dmk
2015-09-25 05:23
2017.09.10
TEdit не хочет перерисовываться





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский