Головна

Пошук дублікатів
 
Через що у наших даних можуть виникнути персони, що дублюються? Або, іншими словами, чому одна й та сама персона може бути занесена двічі?
Давайте спочатку визначимося, що ми шукатимемо - навіщо потрібен такий звіт.

Я бачу, як мінімум, 2 варіанти, коли нам потрібно шукати "двійників":
  1. Випадково повторно додали персону, яка вже була в дереві (тобто фактично помилка чи неуважність працюючого з генеалогічною програмою)
  2. Коли вводили персону не ідентифікували її як уже присутню у дереві (тобто - дефіцит інформації)

Відразу скажу, що обидва у мене зустрічалися у реальному житті
Перший варіант - це коли я знаю, що знайдена особа кум/сват/брат, але з якоїсь причини забув, що я його вже вносив раніше. Це трапляється, наприклад, коли знаходжусь у дереві "тільки прямі пращури", знаходжу в метриках, наприклад, народження брата прямого предка, вношу його, а потім (може навіть через якийсь час), виявляю, що в мене він уже був записаний з іншого джерела (наприклад, ревізії).
Такі дублі можна також можна знайти і у Детекторі проблем по опції "Діти-тезки", такий варіант обчислити не складно і головний критерій - це одні й ті ж батьки у двійників і однакові імена.
Звичайно, мені заперечать, що діти з однаковими іменами в одних батьків часто зустрічаються досить часто, але не забуваємо, що програма - це не закінчене вирішення всіх наших проблем, а інструмент, за допомогою якого ці проблеми можна мінімізувати.

Але є й інший випадок, коли це не помилка, а одна й та саме персона існує вже в базі, але пов'язана з іншою гілкою.
Завдання цього звіту зводиться до пошуку персон у певному колі людей (швидше за все якийсь населений пункт чи повіт) у своїй базі даних з метою зчеплення розрізнених родів через одного з "двійників".
 
Якими критеріями керується звіт під час пошуку дублів та які дані аналізує?

 

Принципи побудови звіту відпочатку були такими, такими вони і залишилися. Але починаючи з версії 2026-08-12 код звіту був повністю переписаний. Він став працювати набагато швидше завдяки іншому підходу і головне алгоритми порівняння стали набагато прозорішими і такими, які відразу непоганий результат. Було прибрано багато параметрів, якими рахувалася "вага" кожного з критеріїв. Це була в свій час свого роду компенсація недосконалості звіту, коли коефіцієнтами можна було досягнути більш менш прийнятних результатів. Зараз у цьому необхідність відпала і було прийнято рішення не заморочуватися з цим, ускладнюючи роботу зі звітом

Завдяки новому алгоритму, результатів порівняння стало менше, але вони стали більш якісними. Тому у кофіцієнтах потреба пропала і я їх прибрав. 

Залишились поки тільки опції кого ми порівнюємо (всіх, тільки жінок, тільки чоловіків чи шукаємо дублі тільки поточної персони),  різновиди ПІБ (Точне порівняння або Враховуючи "схожість") а також опція виключати братів/сестер.  

Далі йде математика і висновок до звіту всіх, у кого результати будуть вищими за певну межу (який також налаштовується в полі " Показувати з % вище "). Не варто сприймати цей % як дійсну ймовірність того, що це та сама персона. Це лише умовна величина.
У звіті враховуються всі різновиди дат при їх порівнянні (в т.ч. старого стилю)
При бажанні можна до звіту вивести деталізацію аналізу, вказавши " Деталізувати розрахунок " (для тих, хто любить розібратися "як це працює").

А працює це так. До кожного з параметрів (ім'я, по-батькові, прізвище, прізвище при народжені для жінок, а також дата народження) при порівнянні ми додаємо певний розмір базового відсотку, який згодом буде підсумований.

Прізвище у чоловіка або дівоче у жінки + 30%

Ім'я + 20%

По-батькові + 25%

Прізвище після шлюбу у жінки + 10%

Дата народження. Якщо дата повна і вона співпадає то це відразу + 50%. Якщо дати не повні хоча б в однієї з персон (тільки рік), то на розмір відсотка впливає на скільки ті дати різняться. Якщо рік співпав + 15%, чим чим більше роки різняться, тим той відсоток буде менше. Різниця більше 15 років - і вже 0 відсотків.

Далі всі відсотки підсумовуються і загальний відсоток вже впливає на те чи показуємо ми таких персон у звіті чи ні. Межа у 75% дає доволі непогані результати, про що можна впевниися, глянувши на скрін з програми.

А як же рахується складова коефіцієнту при опції "враховувати схожість". Тут вже йде не просте порівняння ПІБ, а їх різновиди. Якщо опція відсутня, то Іван і Іоан по імені дадуть 0%. Якщо ці імена порівнюються не "в лоба" (включено опцію Враховувати "схожість"), то алгоритм за такі 2 імені дасть, наприклад, 15% замість 20%. В ці нюанси я вже не лізтиму, щоб не ускладнювати пояснення, але в цілому такий підхід реалізовано - чим більше імена не схожі тим менший % буде отримано в підсумку.

Зрозуміло, що, наприклад Остап і Євстафій або Олександр та Саша програма вважатиме різними іменами, хоча ми розуміємо що це одне й те саме. І навіть була ідея додати до програми довідник канонічних імен і їх синонімів. Але це настільки велика тема, що вирішив цим не перейматися. Врешті кожен генеалог розуміє, що безлад при внесені даних у програму вносить згодом і безлад у подальшу роботу з такими даними. Тому якісь базові відхилення в написанні перевіряються, але не більше.