Дмитро Чаплинський — про те, як IT-засоби допомагають боротися з корупцією
Дмитро почав займатися програмуванням в 11 років, пізніше виграв кілька спеціалізованих CAD/CAM/CAE змагань. Він захоплюється питаннями штучного інтелекту, обробкою природної мови (NLP), нейронними мережами, мовами програмування JavaScript і Python. Останні 3 роки Дмитро працював з «Канцелярською сотнею», яка розробляє успішні проекти в сфері прозорості та протидії корупції, використовуючи відкриті дані і NLP. Спікер багатьох конференцій, зокрема PyCon, AI Ukraine, AI&BigData Day.
— Дмитре, ви є одним із волонтерів «Канцелярської сотні». Чим ви займаєтесь в цьому проекті?
Моя діяльність в «Канцелярській сотні» почалась з того, що я долучився до роботи, яку розпочав Денис Бігус для відновлення документів, що залишились після Януковича та Курченка. Документи Януковича здебільшого було порвано руками, і їх можна було скласти, а документи Курченка було пропущено через шредер та шматочки з різних документів було перемішано, тому їх скласти було вже доволі важко. Тоді ми спробували побудувати певну платформу, щоб спростити життя людей, які будуть їх відновлювати, надати їм зручні інструменти для сортування. Ми розбили процес на стадії, відсканували шматочки документів, застосували технології Computer Vision.
Під час цього проекту ми відчули, як це — працювати на межі волонтерського краудсорсингового духу та ІТ. Краудсорсинг — це залучення до проекту багатої кількості волонтерів та розподілення роботи між ними.
На жаль, через певні причини сам проект було поставлено на довготривалу паузу — перш за все через те, що у нас з’явились ідеї проектів, які можна було реалізувати швидше і отримати гарантований результат «тут і зараз». До того ж, було незрозуміло, чи дасть робота по справі Курченко якусь практичну користь. Прокуратура, маючи великий обсяг цілих документів, не здобула на той момент якихось конкретних результатів
— І що ви робили далі?
У січні 2015 року ми започаткували проект «Гарна хата». Якраз у той час Міністерство юстиції відкрило реєстр нерухомості. Це дозволяло відправляти запит із адресою і за невеликі гроші (17 грн) отримувати інформацію, хто має право власності на це житло. Але зрозуміло, що це був не дуже зручний інструмент: коли журналіст когось копає, то йому цікавіше знайти список всіх об’єктів, якими володіє особа Х. А замість того йому пропонували з’ясовувати за адресою, хто є її володарем — замість суб’єкта був об’єкт. Крім того, на сайті не було зручного пошуку.
Спочатку ми за допомогою краудсорсингу дослідили найбільш елітні адреси Києва — закриті вулички, новітні будівлі в історичній зоні, найдорожчі мікрорайони. Заплатили кошти, зібрали виписки з цих адрес, потім обробили ці дані, перевели їх у машиночитний формат. Після цього видалили особисті дані та виклали цей датасет у вільний доступ на сайт проекту.
Сайт ми розробили таким чином, щоб він вирішував дві проблеми. Перш за все, він дає можливість шукати не тільки за адресою, а і за прізвищем та ім’ям. І по-друге, він дозволяє побачити, хто кому є сусідом — це теж дало багато цікавої інформації. Ну й уся інформація доступна безкоштовно.
Елітна нерухомість на мапі України: мітки містять посилання на перелік володарів житла
Також ми виклали на сайті деякі матеріали за результатами.
Це був доволі короткотерміновий проект, бо у 2015 році вже відкрили пошук по ПІБ. Але у свій час «Гарна хата» містила найбільш повний датасет та зручні інструменти для використання цих даних. Журналісти робили розслідування на основі нашого сайту.
Наразі ми назбирали додатковий матеріал, тож плануємо згодом оновити базу даних.
— Ваш флагманський проект — масове оцифрування декларацій українських чиновників. Як він розпочався?
Все почалось з того, що у 2014 році Громадський люстраційний комітет оприлюднив паперові декларації, адже в процедуру люстраційної перевірки входила процедуру перевірки декларацій, яку мав робити ДФС. Проте я жодного разу не чув, щоб ДФС за результатами такої перевірки надала негативний висновок.
Отже, нам на пошту скинули більше 3 тис. декларацій у PDF, які були зібрані з різних джерел — сайтів МВС, прокуратури тощо. Всі ці файли були різні за розміром, різні за якістю, деякі містили сторонню інформацію — наприклад, заяву на проходження люстраційної перевірки. Ми зрозуміли, що маємо у руках дуже цікавий датасет, який ще ніхто не досліджував, але він був у такому вигляді, що з ним нічого і не поробиш. Кожен файл називався, наприклад, 0122ab25.pdf, і навіть щоб знайти особу, яка тебе цікавить, доводилось відкрити кілька тисяч файлів.
В нас вже був досвід використання краудсорсингу та навіть певний інструментарій, що залишився після проекту по складанню розірваних документів. Тому ми вирішили за допомогою інтернету залучити волонтерів, щоб розшифрувати всі ці декларації.
Спочатку ми спробували організувати процес за допомогою Google-форм — надсилали волонтерам посилання на декларації та Google-форму та просили розшифрувати вміст у відповідні поля Google-форми. Полей було близько 400.
Так за 2 дні ми отримали розшифровку 3 тис. декларацій, причому кожну з них обробляло щонайменше 3 різних особи. Але зіткнулись з наступною проблемою — через те, що з інформацією працювали люди, які не дуже знайомі з предметом, та й вхідні дані у багатьох матеріалах були поганої якості, то на виході у одній декларації 3 різних волонтери могли написати різні речі, у різному порядку тощо. Тобто ми отримали дані у машиночитному форматі, проте не могли звести цей датасет.
Після цього ми знайшли іншу волонтерку, Ольгу Макарову. Вона взяла ці дані та з нашою допомогою звела їх до нашого першого батчу розшифрованих декларацій, в чистоті даних яких ми були більш-менш впевнені.
На основі цього датасету ми побудували сайт declarations.com.ua, де реалізували повноцінний пошук по даним з декларацій. Як і у випадку з «Гарною хатою», проект отримав відгук — журналісти стали робити дослідження на основі наших матеріалів. Знаходили найбільш заможних депутатів за регіонами тощо.
Аналіз даних, проведений Кирилом Захаровим
Далі ми продовжили розвивати проект. Перш за все, ми замінили Google-форму для волонтерів на більш зручний інструмент — платформу для краудсорсингу під назвою «Вулик», яку розробили самостійно. Вона включала в себе більш зручну форму з безліччю перевірок, підказок, корекцій, автозаповненням.
Таким чином, за 2 роки ми розшифрували вручну більше 20 000 декларацій за допомогою 3 тис. волонтерів та 2 редакторів. Кожну декларацію було розшифровано щонайменше тричі різними людьми, щоб впевнитись,що дані є правдивими і ніхто не намагається їх приховати чи спаклюжити. Так було зібрано перший в Україні відкритий машиночитний датасет з інформацією про доходи та статки чиновників.
Приблизно в той час ми також долучилися до роботи над проектом Politically Exposed Persons.
— В чому полягає цей проект?
Politically Exposed Person — це банківський термін, який позначає людину, котра має відношення до політики. Наприклад, це може бути міністр, члени його родини, партнери по бізнесу. При проведенні операцій банки зобов’язані перевіряти PEPs більш ретельно, аби запобігти виводу грошей за кордон тощо. І якщо українські банки якось збирали цю інформацію самостійно, то для закордонних установ надійного джерела про українських PEPs не було.
Ми долучились до проекту з побудови національного реєстру Politically Exposed Persons, що був започаткований Центром Протидії Корупції. Було розіслано багато офіційних запитів до державних підприємств і зібрано певне ядро з інформацією. Потім ми оцифрували ці дані та залили на сайт pep.org.ua базу з датасетом про PEPs, їхніх родичів, зв’язки з юридичними особами публічного та приватного права.
Цей сайт увійшов у рекомендації від Державного фінмоніторингу, тож банки його знають і користуються ним.
Потім ми додали до цих даних інформацію про декларації PEPs, а також дані про їхніх родичів — таким чином розширили кількість осіб в реєстрі до майже 14 тис. Наразі ми продовжуємо покращувати базу — додаємо інформацію з Єдиного реєстру юросіб та з нових декларацій, що оприлюднені на сайті НАЗК.
Сайт pep.org.ua перекладено англійською: він призначений для використовування закордонними установами
— А що за проект з «посіпаками»?
Все почалось з того, що журналісти з проекту Слідство.Інфо отримали офіційну інформацію про тих осіб, хто були помічниками народних депутатів протягом останніх 15 років (5 скликань). Датасет містив близько 75 тис. записів. Ми побудували сайт — posipaky.info, де виклали всі дані та зробили зручний пошук.
Сайтом користуються журналісти, займаючись розслідуваннями. Наприклад, може бути така ситуація: 2 особи працюють в парі, утворюють «організоване злочинне угрупування», але здається, що нема підстави їх пов’язувати між собою. А потім — оп — виявляється, що один працював помічником в іншого, а це вже доказ зв’язку.
На posipaky.info доступна відкрита база даних помічників народних депутатів України
Ми оновлюємо сайт раз на рік, отримуючи свіжі дані від Верховної Ради.
— Над чим працюєте зараз?
Продовжуємо додавати дані про декларації на declarations.com.ua, наразі вже оброблено 1,5 млн декларацій. Вдосконалюємо опції пошуку на сайті — на відміну від сайта НАЗК, в нас можна вибрати список декларантів, які, наприклад, живуть в Хмельницькій області, працюють суддями, їздять на Ferrari, носять годинники Patek Philippe, мають особистий дохід, що перевищує таку-то суму, та такий-то дохід родини, та володіють нерухомістю в Криму. Додали інструмент, який дозволяє «підписатись» на особу, яка вас цікавить, та отримувати на пошту повідомлення про оновлення її даних.
Також ми підв’язали до датасету з деклараціями дані про всі державні закупівлі, що проводились через «Вісник держзакупівель» та ProZorro. Це допомагає знаходити дані про тендери підприємств, які безпосередньо пов’язані з певними чиновниками.
Працюємо над API, щоб надати доступ до усіх цих даних, розробляємо чатботів для зручного отримання інформації.
В найближчі
— Наскільки велика команда «Канцелярської сотні»?
Над усіма проектами працює Денис Бігус та я як технічний спеціаліст. Задля вирішення окремих задач (SEO, UI/UX, аналітика тощо) також залучаємо наших друзів та волонтерів. Ну й додайте
Аналітика від «Канцелярської сотні»
— Які технології лежать в основі проектів? Які засоби використовуєте?
По-перше, матюки :) Взагалі головний інструмент — це Python та ті бібліотеки та фреймворки, що в ньому є. Також часто використовуємо Elasticsearch як пошукове ядро. Завдяки нашим друзям та колегам Дмитру Гамбалю та Андрію Рисіну ми отримали повноцінну підтримку української мови в Lucene та Elasticsearch, що тепер доступна усім користувачам цих продуктів. Тож в певному сенсі ми не тільки використовуємо продукти інших, а і допомагаємо зробити їх кращими.
Коли іде мова про аналітику даних та їх постобробку, важко переоцінити значення Excel. Цей інструмент не дуже вшанований серед програмістів, проте його дуже цінують аналітики.
Для агрегації даних та ризик-аналізу почали використовувати CouchDB.
— А як взагалі вас зацікавила робота з відкритими даними? Що мотивує?
Було цікаво. Коли Денис Бігус вперше надіслав мені архів з купою декларацій у PDF, то тема листа була «Ебанутым нет покоя». Прошу вибачення за лексику, але це дійсно дуже влучно передає ідею :) Хотілось розробити інструмент, побачити, як його будуть використовувати інші.
Мотивує, коли ти бачиш, як хтось будує свій проект, ще більш високорівневий, за допомогою тих інструментів, які побудували ми. Маю на увазі журналістські розслідування, аналітику, візуалізації, зроблені на основі інформації, впорядкованій та зведеній на наших сайтах. Й навіть коли просто зустрічаєш інформацію з наших сайтів у несподіваних місцях. Щоб не ходити далеко за прикладом: на днях призначили нового керівника обласного МВС в Дніпрі, це анонсував у соцмережах Геращенко. І до нього в коментарях звернулись обурені люди з посиланнями на наш сайт і вказівкою на майно новоспеченого чиновника. Тож, сподіваюсь, наша робота змінює ландшафт.
Загальна денна відвідуваність declarations.com.ua — десь 30 тис. Тож на місяць маємо
— Розкажіть про інші проекти, окрім «Канцелярської сотні», якими ви займаєтесь поза основної роботи. Як все встигаєте?
З Всеводом Дьомкіним працюємо над проектом з розвитку української комп’ютерної лінгвістики — lang-uk. Все почалось з ідеї, що непогано було б зробити повнотекстовий пошук українською. Повнотекстовий — це з урахуванням словоформ. Наприклад, ви шукаєте «живОГО та легітимнОГО», а воно вам знаходить тексти де є «живИЙ та легітимнИЙ». Або шукаєте в закупівлях «яйця», а воно вам знаходить ще й закупівлі «яєць». Наразі займаємось побудовою великого корпусу українських текстів та обчисленням статистичних моделей на цих даних.
Дмитро розповів про lang-uk на конференції AI&BigData Day 2017
Як все встигаю? Та де ж встигаю :) Якби ви знали, скільки всього цікавого ще очікує свого часу. Ну й не забувайте — те, про що ми говорили, було зроблено протягом майже трьох років.
А, ще. Серіали та кіно. Запорука успіху. Ось у вас який улюблений серіал? А в мене жодного нема!