Метчинг даних та верифікація об’єктів Єдиного державного реєстру адрес
Вітаю! Я Євгеній Гаврилюк, Team Lead в SOFTPRO. Сьогодні розповім про наш з командою досвід у підготовці даних, налаштуванні метчингу та вибору інтерфейсів під час розробки системи Єдиного державного реєстру адрес.
Особливості вибору інтерфейсу
Шукаючи доречну форму інструменту верифікації даних вулиць, будівель та пойменованих об’єктів, ми сперлися на потребу працювати з трьома основними сутностями: неопрацьованими до кінця вулицями, основним реєстром вулиць та будівлями.

Основний реєстр вулиць опирається на дані базового реєстру — довіднику адрес ДП «Національні інформаційні системи» (далі НАІС), заснованого Міністерством юстиції України для забезпечення ведення Державного реєстру речових прав на нерухоме майно. Тому усі операції метчингу назв вулиць проводяться саме відповідно до цього довідника. Але про це пізніше.
Його віджет можна бачити в переліку джерел даних, що відображуються для кожної вулиці основного реєстру. Тобто кількість будівель і адрес на цій вулиці редагуванню на етапі верифікації даних не підлягають. Про це сигналізує зелений віджет з замком під назвою вулиці чи конкретною адресою.

Інші віджети джерел з абревіатурами сигналізують, у яких ще базах конкретна вулиця присутня/індексована. Це додає зручності користувачам. Їм буде легше налагодити інтеграцію з власними системами, якщо вони вже користувалися даними згаданих баз у себе — так простіше буде використати дані Єдиного державного реєстру адрес (ЄДРА) для власних потреб.

В інтерфейсі роботи з будівлями окремої вулиці ми передбачили автоматичну валідацію написання номерів будинків відповідно до чинного порядку присвоєння адрес об’єктам будівництва та нерухомого майна. Він сигналізує червоною підсвіткою рядки будівель з написанням номера яких не все гаразд.

Віджети під номером будинку чи назвою вулиці сигналізують зеленим кольором про наявність даних про верифікацію об’єкта, його місце розташування, офіційних відомостей про верифікацію адрес, даних будівель та споруд та відмітку про перебування об’єкта в реєстрі НАІС. Віджети червоного кольору сигналізують про відсутність згаданих атрибутів.
Нюанси у процесі внесення даних
Основними проблемами при первинному наповненні реєстру даними стала їх неоднорідність в різних базах. Це було очікувано і прогнозовано.
Загалом нам довелося працювати з даними довідників систем Міністерства Юстиції (НАІС), Центральної виборчої комісії (ЦВК), Державної митної служби (ДМС), Державної служби статистики (ДС), Укрпошти, Міністерства внутрішніх справ (МВС), Державної податкової служби (ДПС), Єдиної державної системи у сфері будівництва (ЄДЕССБ), Уповноважених органів містобудування та архітектури (УОМА).
Часто до баз не було описів, тобто доводилося самим розбиратися зі значеннями окремих колонок, до яких не залишили коментарів, чи їх не могли надати власники, щоб коректно інтегрувати дані до нашої структури.
Тож довелося витратити час на окреме дослідження вмісту деяких баз та їх доречну інтеграцію. Дисципліна коментарів в базах даних — це дійсно ґрунтований момент, що дозволяє зберегти час, зусилля та ресурси.
Додатковою складністю став неповний перехід реєстрації населених пунктів з кодів КОАТУУ (Класифікатор об’єктів адміністративно-територіального устрою України) до актуальних нині кодів КАТОТТГ (Кодифікатор адміністративно-територіальних одиниць та територій територіальних громад).
Тож довелося використати додаткову таблицю переходу між цими кодифікаторами, та на жаль поки не вдалося досягти абсолютного результату і крихітну частку адрес не вдалося зв’язати через таку формальну колізію.
Метчинг
В адресного багатства багатьох баз є свої недоліки, що створюють проблеми. Дані в цих базах далеко не однакові та у різних моментах і різною мірою несистемні.
Наприклад, окремі вулиці можуть мати різні назви в різних реєстрах, або відмінні формати запису, що ускладнює їх об’єднання. Дані геопросторових координат присутні тільки в окремих джерелах, що ускладнює створення повного та точного реєстру.
Тобто, наприклад, в одному реєстрі зафіксована — вул. Богдана Хмельницького, в іншому — вул. Хмельницького, в третьому — вул. Б. Хмельницького. Схожим чином існують різні способи для вказівки будинків, де один реєстр може містити «будинок», інший — «буд.», третій — просто «б.».
Основним методом розв’язання згаданої проблеми є автоматизація процесу метчингу вихідних баз даних.
Метчинг — це процес зведення даних з різноманітних баз в одну єдину систему.
Використовуючи різні алгоритми та інструменти можна автоматично виконувати метчинг адрес. Автоматично визначати їх відповідність та ідентифікувати, чи є адреса вже верифікованою.
Як це відбувалося
Ми використали алгоритми порівняння назв вулиць за допомогою триграмних функцій з розширенням «pg_trgm postgresql», зокрема функції similarity.
Обмежили її виклик рядом умов, які убезпечують наявні дані від помилкового метчингу у випадках, коли мова йде про справді відмінні назви, що не мали б об’єднуватися в єдину сутність.
Так для типових випадків одноманітних тиражованих назв, що відрізнялися лише кількома символами номерів в кінці чи на початку, як, наприклад, Садова — 1, Садова — 12, 13... ми вводили додаткове множення на коефіцієнти, що убезпечили ці назви від пошкоджень в процесі.
Накладання ряду подібних умов для різних випадків дозволили створити алгоритм, який визначає коефіцієнт збігу назви двох вулиць. Якщо число, повернене функцією similarity та обмеженнями, >0.85 та тип вулиці однаковий, то вони метчаться.
Коефіцієнт 0,85 як достатній бар’єр для метчингу визначали методом експерименту. Для 10 територіальних громад з різних куточків країни провели метчинг назв вулиць з різними умовами: >0,8, >0,85, >0,9. Отримані результати надали для перевірки відповідним органам місцевого самоврядування. Вони у себе перевірили рівень якості даних. Коефіцієнт 0,9 виявився зависоким і залишав окремими забагато вулиць, коли мова йшла про єдину, 0,8 — навпаки допускав надмірний метчинг, тобто помилкове злиття вулиць у випадках, коли мова йшла фактично про окремі сутності. І саме 0,85 склав золоту середину, яку відзначили фахівці органів місцевого самоврядування громад, для яких проводили експеримент і тому поки зупинилися на цьому значенні.
Для додаткового прискорення процесу вводили індекси GIN та оператор пошуку відсотку схожості для окремих колонок.
Приклад :
CREATE INDEX idx_street_trigram ON edra_matching.streets USING gin (str_name COLLATE pg_catalog."default" gin_trgm_ops);
Через цей алгоритм провели шість довідників вулиць: НАІС, ЦВК, ДМС, МВС, ДЕРЖСТАТ, УКРПОШТА. Тоді в нас з’явилася можливість вказати, в яких базах даних є інформація про адресу.
Це дозволило не лише визначити джерело даних, але й перевірити їх правдивість. Якщо адреса зустрічається лише в одній базі — вона ймовірно є хибною.
Перед запуском порівняння вулиць, ці реєстри потрібно було уніфікувати та нормалізувати дані.
Ми привели до спільних кодів значення в колонці «тип вулиці». Порівняння відбувалось тільки у випадках, де були чіткі типи вулиці: вулиця, площа, майдан, шосе, проспект, бульвар, алея, провулок, проїзд, узвіз, тупик, набережна, шлях, дорога, заїзд, в’їзд, завулок, лінія, квартал, мікрорайон, жилий масив, містечко, урочище, хутір, садове товариство, гаражний кооператив.
Всім вулицям був присвоєний відповідний ідентифікатор об’єкта адміністративно-територіального устрою.
У випадках використання латинських символів і, с, а, к, р, о, н, м, е, в, т — замінили їх відповідними символами кирилиці.
Замінили символ \ на /. Всі різновиди символів лапок «, », «, », ‘ замінили на уніфікований "".
Усі згадані завдання зумовлюють необхідність розробки потужних та ефективних алгоритмів метчингу та використання передових технологій для автоматизації процесу.
Навіщо ми це робимо
Впровадження реєстру вимагає значних зусиль для забезпечення точності та повноти даних, що до нього входять, але це критичний крок для досягнення інновацій у сфері адресних даних в Україні та інших важливих сферах економіки, які залежать від точності адрес.
Використання цього реєстру посилить якість надання послуг в Україні. Уніфіковані геопросторові дані адрес збережуть кошти та ресурси громад, бізнесу та державних органів, виключивши значний простір помилок та зловживань, пов’язаних з адресами.
Сподобалась стаття? Підписуйтесь на автора, щоб отримувати сповіщення про нові публікації на пошту.

1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів