Депутати-літуни. Візуалізація авіа-скандалу та опис інструментів, які ми використовуємо.
Ідея цієї візуалізації виникла після перегляду міні-розслідування Сергія Лещенка про депутатів-марнотратців, що літають по країні за кошт платників податків по сотні разів на рік. Проте дані у його статті наведені у вигляді сканів, і з ними незручно працювати.
Автор: Анатолій Бондаренко
Наприклад, дуже важко отримати відповіді на питання "А яка фракція налітала найбільше?", "А яка середня ціна перельоту для кожного депутата?", "А яка загальна сума була витрачена (понад нормою) усіма депутатами?".
У рамках напрямку журналістики даних, яку ми розвиваємо на ТЕКСТИ.org.ua, ми детально розкажемо, як можна "оживити" статичні дані з картинки, і відповісти на всі поставлені вище питання (і ще на купу інших). Ось що вийшло в результаті:
Таблиця витрат на понаднормові перельоти депутатів
ЯК КОРИСТУВАТИСЯ ТАБЛИЦЕЮ
"Скільки рядків показати" - тут ви можете вибрати кількість високопоставлених пасажирів, яка буде показана на сторінці (загалом у списку 173 призвіщ людей, які в 2010 році на свої перельоти перевищили суму передбачених коштів, що складає 26 800 гривень на одного депутата). Під таблицею знаходяться стрілки ліворуч-праворуч, за ними можна перейти до іншої частини списку.
"Призвіще, ім'я, по-батькові" - клікнувши сюди, ви сортуєте депутатів в алфавітному порядку. Трикутник угору (праворуч від заголовку колонки) - сортування здійснюється від А до Я. Ще раз клікнувши на заголовок, ви відсортуєте нардепів у зворотньому напрямку.
"Рейси" - сортування депутатів за кількістю польотів. Після кліка на слово "Рейси" відбувається сортування. Трикутник угору - сортування починається з тих, хто налітав найменше. Трикутник униз - із тих, хто налітав найбільше.
"Сума" - витрачені на польоти бюджетні кошти. Трикутник угору - сортування починається з тих, хто витратив найменше. Трикутник униз - із тих, хто витратив найбільше.
"Перевитрати" - сума, витрачена понад передбаченого на одного депутата ліміту у 26 800 гривень. Так само, трикутник угору - сортування починається з тих, хто перевищив ліміт найменше. Трикутник униз - із тих, хто перевищив ліміт найбільше.
"Середня вартість польоту" - сортування депутатів за середньою сумою, витраченою на один політ. Трикутник угору - у кого середня вартість польоту найдешевша. Трикутник униз - найдорожча.
"Фракція" - до якої фракції належить депутат. Сортування цієї колонки дає уявлення, скільки депутатів у кожній фракції літали з перевитратою коштів
А тепер про те, як ми зробили цю таблицю.
1. Від зображень до тексту
Як ви вже здогадалися, спочатку необхідно перевести подібні картинки в текст. Для цієї задачі можна використати один з багатьох онлайнових сервісів по розпізнаванню текста на зображеннях. Я використовував онлайн-сервіс від ABBYY, який дозволяє розпізнавати 5 сторінок в день безкоштовно - вам лише треба завести там собі екаунт. Якість розпізнавання - досить висока, цей онлайн сервіс коректно розпізнав більше ніж 95% тексту і чисел. Вибирайте формат Word, - зробити нормальний файл у Excel не вдалося. Витрати часу на цей етап склали пів-години
2. Від тексту до таблиць
Далі я скопіював колонки табличок, які вийшли по кожному відсканованому листу, в таблицю Google Docs. Останні є базовим інструментом практично для всіх наших проектів з візуалізації, через простоту і можливість надати доступ для багатьох людей.
Перевірка коректності даних зайняла близько 2-х годин. Для кількості польотів кожного депутата прийшлось переглянути зображення та порівняти вголос за допомогою доброго помічника. Для більш складних даних варто використовувати дуже цікавий інструмент (також від Google), під назвою Google Refine
3. Покращення даних
Початковій таблиці, на мою думку, не вистачало як мінімум ще одного поля - "фракція". Я написав маленький скрипт на Ruby, який за списком що наведений на сайті ВР, визначав належність кожного з депутатів нашої таблиці до тієї чи іншої фракції.
Цей етап зайняв також близько 2-х годин - програмую я досить повільно - однак наступного разу скрипт можна буде швидко переробити або використати без змін для подібної задачі (за наданими ПІБ депутата знайти належність його до фракції). До речі, з наступного тижня ми почнемо викладати у відкритий доступ усі інструменти, розроблені нами для роботи з даними.
4. Google Docs
Після цього, результат мого скрипта , тобто табличка у форматі CSV була імпортована у цей Google Doc, відкритий на доступ всім бажаючим. Можете скачати його собі на компютер або скопіювати в інше місце онлайн. Нарешті дані стали динамічними, з ними можна працювати в електронних таблицях і використовувати для того, щоб отримати відповіді на будь-які кількісні питання. Наприклад, тепер ми дізналися (якщо знайти суму по всім депутатам), що всього за 2010 рік вони налітали понад 8 млн гривень більше передбаченої норми.
(До речі, весь обмін даними між програмами на різних етапах варто здійснювати за допомогою простого текстового формату, я роблю це за допомогою CSV - це просто файли з полями, що розділені між собою комами.
Візуалізація на сайті
Нарешті, для тих хто не бажає лізти на Google Doc, а хоче просто погратися з цифрами прямо на сторінці сайту, можна використати Google Visualisation API, який добре інтегрований з їх таблицями. Коли у вас готова табличка в документах Google, то інтерактивну таблицю (яку ви вже бачили вище на сторінці), можна створити за декілька хвилин, якщо ви маєте мінімальний досвід програмування у JavaScript.
Бонус: інтерактивні графіки
При наведенні курсора на графік можна подивитися детальніші цифри!
На основі даних, які ми звели в електронну таблицю, можна швидко отримати відповідь на питання, скільки кожна фракція витратила понад нормою на перельоти (діаграма ліворуч) або якою була найбільш популярна середня вартість квитка для депутатів (гістограма праворуч).
Підсумок
Отже, приблизно за 3 - 4 години можна зробити таку візуалізацію даних, як у цій статті. Особисто я переконаний, що подача інформації у подібному вигляді має більшу додану вартість, у порівнняні з просто відсканованими документами.
Інші візуалізації великих масивів інформації дивіться у нашому спеціалізованому розділі
Прохання до журналістів, які хочуть навчитися подібним способам роботи з даними, написати на texty.org.ua+datavis@gmail.com - якщо буде достатня кількість бажаючих, ми спробуємо організувати в кінці весни щось на кшталт міні-семінару.
Сайт TEXTY.org.ua існує завдяки пожертвам наших читачів.
Фінансова підтримка кожного з вас дуже важлива для нас. Звертаємося з проханням здійснити пожертву на підтримку ТЕКСТІВ.
Наш рахунок на ПейПел: ykarchev@gmail.com
Наш гаманець у гривнях на ВебМані
U336801545841
Гроші на рахунок можна слати і на телефон
096 551 68 93 - це Київстар
, телефон тільки для збору пожертв, зв'язатися з нами можна по емейлу texty.org.ua равлик gmail.com
Якщо ви зробили пожертву, то просимо повідомити нас по емейлу texty.org.ua равлик gmail.com і вказати, на яку платіжну систему ви переслали кошти