Мы возрождаем нашу рубрику Инструментарий GIJN, где рассказываем о новейших методах и инструментах для журналистов-расследователей. В этом выпуске мы рассмотрим три бесплатных и сравнительно простых решения, которые журналисты могут использовать для извлечения данных из документов. Эти методики были представлены на недавней конференции журналистов и редакторов-расследователей 2022 года (IRE22). Они вызвали возгласы восхищения и одобрения среди собравшихся журналистов. (Эта спонтанная реакция опытных расследователей – лучшая оценка, на наш взгляд.)
Когда журналистам удается добыть необходимую для расследования информацию, они часто сталкиваются с новой проблемой: как отобрать и извлечь данные для дальнейшего их анализа в электронных таблицах. Для многих небольших редакций варианты вводить всё вручную, создавать сложные программные решения или использовать дорогостоящие коммерческие услуги оптического распознавания символов (OCR) —это совершенно нереалистичные способы извлечения данных.
Более того, на конференции IRE22 опытные представители «сторожевой» журналистики отметили, что общедоступные документы все чаще публикуется в неструктурированных или «мертвых» форматах (таких как отсканированные документы в JPEG или файлы PDF со сведенными слоями). При этом некоторые государственные органы используют такие форматы специально, чтобы усложнить анализ их отчетности.
В довершение всего, чиновники по всему миру часто в ответ на запрос отправляют журналистов добывать необходимые данные на веб-страницах, что требует копирования отдельных полей и их вставки в таблицы вручную или последовательного переключения между многими страницами, чтобы добраться до конца полного массива данных.
«Я подаю множество запросов на получение данных в государственные реестры и замечаю, что мне крайне редко предоставляют документы или данные в том формате, который я запрашивал», заявил Кенни Джейкоби, журналист-расследователь USA Today, который представил на конференции несколько инструментов для работы с файлами PDF. «Иногда кажется, что органы, выдающие документ, намеренно хотят усложнить нам жизнь — они могут убрать текстовый слой из файла PDF или отсканировать его перед отправкой, или отправить данные в каком-то неструктурированном формате без столбцов и строк. Это может сильно замедлить нашу работу, поэтому важно иметь подходящие инструменты».
Новые функции Google Pinpoint для PDF
В 2020 году сеть GIJN одной из первых объявила о появлении нового инструмента для парсинга документов с использованием искусственного интеллекта (ИИ) от Google Journalist Studio, который сегодня работает под брендом «Pinpoint». Можно назвать этот новый инструмент «Ctrl-F с турбонаддувом» — функция поддерживает расширенное распознавание символов и может быстро осуществлять поиск в огромных массивах документов и изображений. На конференции IRE22 во время сессии, посвященной данным, Джейкоби сообщил, что сейчас, отчасти благодаря вкладу журналистов-расследователей в его разработку, Pinpoint превратился в главный бесплатный цифровой инструмент с простым доступом.
Джейкоби показал, что Pinpoint теперь включает следующие функции:
- Предположим, вы ищете ключевое слово «факультет». Так вот, Pinpoint не только найдет это слово в загруженном файле, но также выделит связанные слова, такие как «учитель», «кампус» или «профессор». Он также находит варианты искомого термина в разных временных и падежных формах, поддерживает семь языков, включая португальский, испанский, французский и польский, а при помощи знака «минус» можно исключать нежелательные термины.
- Загружайте пакеты отсканированных документов или документов в формате PDF — или даже страницы рукописных каракулей — и быстро превращайте их в «живые» текстовые документы с возможностями поиска, копирования и вставки. Pinpoint даже читает слова, написанные в направлениях, отличных от горизонтальных.
- Инструмент не только распознает и расшифровывает тексты вывесок или граффити, но может также воспроизводить длинные фрагменты текста, написанные мелким шрифтом на заднем плане изображений. (Во время демонстрации Pinpoint присутствующие журналисты просто ахнули, когда с помощью этого инструмента удалось распознать мелкий плотный текст на фотографии снятой под углом таблички. Валезка Гил, репортер NBC Telemundo, воскликнула: «Боже мой! Вы только что изменили мою жизнь — это сэкономит мне столько времени!»)
- Джейкоби говорит, что в Pinpoint функция транскрибирования аудио и видео стала настолько продвинутой, что теперь он использует Pinpoint для расшифровки своих аудиоинтервью с возможностью поиска вместо платных специализированных сервисов транскрипции Trint или Otter. «Этот инструмент выполняет те же функции, разница в том, что это бесплатно», — сказал он. «Единственное, что он не делает, в отличие от Тринт и Оттер, — не определяет, кто говорит, и не присваивает имя каждому человеку — например, “Спикер 2”. Зато он выявляет логические разрывы в разговоре и точки смены интонации. Можно просто кликнуть на слово в текстовой расшифровке, и именно с этого места начнется воспроизведение аудио».
По словам Джейкоби, бесплатный доступ к функциям Pinpoint упростился, а в случае больших проектов у техподдержки сервиса можно запросить дополнительное пространство для хранения данных.
«Чтобы использовать это дополнительное пространство, нужно получить разрешение, но когда я и моя жена — тоже журналистка — зарегистрировались, то получили его практически мгновенно», — отметил он. «Вам может понадобиться адрес электронной почты в вашем рабочем домене, но это не проблема, да и техподдержка очень активно отвечает».
Но есть и минусы. Pinpoint работает только онлайн.
«Это означает, что вам нужно подключение к интернету, и вы загружаете свои документы куда-то на какой-то сервер, так что если, к примеру, Google получит повестку в суд — есть шанс, что ваши документы будут переданы третьим лицам», — предупредил он. «Кроме того, нельзя скачать документ с распознанным текстом — он доступен только в Pinpoint, поэтому для сохранения документа приходится копировать текст по частям. Но у него, кажется, лучшее распознавание текста среди всех возможных альтернатив».
ImportHTML/ XML для извлечения данных с веб-сайтов
Крейг Сильверман из ProPublica недавно продемонстрировал журналистам сети GIJN, что исходный код любого сайта дает журналистам-расследователям множество инструментов для исследования и, несмотря на пугающий для обычного пользователя вид, он не требует никаких навыков, кроме навигации с помощью «Control-F» или «Command-F».
На сессии IRE22, посвященной парсингу таблиц Google, независимая журналистка Саманта Санн продемонстрировала, как этот код можно использовать для легкого импорта длинных таблиц или определенных данных с сайтов и за считанные секунды преобразовывать все эти данные в необходимый формат в виде электронной таблицы. Не нужно отдельно копировать и вставлять в файл сотни фрагментов. Этот метод предусматривает формулу для таблицы Google – в верхнем левом углу страницы – которая дает команду извлечь нужный элемент исходного кода с веб-страницы (код, который формирует, к примеру, нужную таблицу с данными, содержащимися на следующей странице разворота).
На самом деле, чтобы извлечь хорошо отформатированную таблицу данных с любого сайта, нет никакой необходимости смотреть на программный код. Просто выполните следующие действия:
Чтобы импортировать одну таблицу с веб-страницы, независимо от ее длины, просто введите в таблицах Google следующую строку: =IMPORTHTML(“URL”, “table”) Если же данные отформатированы как список, попробуйте “list” вместо “table” — а если вы хотите, скажем, второй список на странице, попробуйте добавить цифру 2 после запятой и пробела: =IMPORTHTML(“URL”, “list”, 2)
Когда журналисты сети GIJN попробовали использовать этот совет, чтобы импортировать с сайта Федеральной корпорации страхования депозитов (FDIC) США таблицу из 564 банков-банкротов, весь процесс — от копирования URL-адреса сайта учреждения до открытия таблицы Google и получения полного списка банков, идеально отформатированного по столбцам — занял менее 15 секунд. Здесь важно использовать точную пунктуацию команды, включая запятую после URL-адреса и кавычки около двух элементов в скобках. Примечательно, что любые обновления данных на сайте автоматически отображаются в таблице Google, поэтому, если вы не отключили эту функцию автоматического обновления, в процессе расследования не нужно постоянно проверять исходную страницу.
Тем не менее, по словам Санн, чтобы журналисты могли понять, как компьютеры кодируют данные, отображаемые на следующих страницах разворота, как упростить обработку неидеально отформатированной информации и как с помощью более продвинутых команд осуществлять глубокий поиск, им стоит познакомиться с основами html.
Чтобы увидеть программный код, который формирует веб-страницу, просто щелкните правой кнопкой мыши на любом пустом месте сайта и выберите «просмотреть исходный код страницы» или «показать исходный код страницы». По словам журналистки, важно помнить, что любые слова, которые вы видите на предназначенной для человека веб-странице, должны также быть в исходном коде, поэтому вы можете просто нажать «Ctrl-F», чтобы найти любое слово в коде этой страницы, посмотреть, какие теги используются вместе с ним и поэкспериментировать с этими тегами во вводимой команде.
«Команда ImportHTML полезна, хоть она способна извлекать только таблицы и списки, но существует и другая команда – ImportXML, которая может извлекать произвольные элементы HTML», — пояснила Санн. «Выглядит очень похоже: знак равенства; имя команды, URL-адрес — но получить вы можете намного более конкретную информацию». Вот как это можно сделать:
Чтобы импортировать определенные элементы данных с веб-страницы — например, отдельные строки таблицы, только полужирный текст или заголовки — попробуйте следующую формулу (для заголовков данных): =IMPORTXML(“URL”, “//h2”) , или такую (для строк таблицы): =IMPORTXML(“URL”, “//table/tr”)
Существует много часто используемых элементов html, таких как «//h2» (заголовок) и «/tr» (строка таблицы), которые можно найти в словарях html, но Санн рекомендует журналистам просто обратить внимание на элементы, окружающие нужные им данные, и определить ключевые теги, которые могут помочь сделать следующий импорт данных более прицельным. Попробуйте попрактиковаться, используя эти два метода парсинга данных на больших страницах Википедии, которые обычно содержат несколько списков данных и таблиц.
Tesseract и ImageMagick для извлечения данных в оффлайн режиме
Кенни Джейкоби из USA Today рассказал, что инструмент OCR с открытым исходным кодом под названием Tesseract служит отличным решением для извлечения данных из конфиденциальных документов и из очень больших архивов, при условии достаточно хорошего качества входных данных. Примечательно, что его последняя версия распознает более 100 языков и тексты, написанные справа налево – на иврите или арабском языке.
Tesseract преобразует изображения без текстового слоя в файлы PDF с возможностью поиска и выделения текста, и, по словам Джейкоби, он особенно эффективен при преобразовании больших пакетов документов со сведенными слоями в простой текст с возможностью копирования и вставки. Обычно это означает, что журналисты должны сначала преобразовать документы PDF в изображения с высоким разрешением — в идеале, с помощью инструмента с открытым исходным кодом ImageMagick, а затем передать их в Tesseract для дальнейшего извлечения данных.
«Здесь не настолько качественный OCR, как у Pinpoint, но тоже вполне хороший», — сказал Джейкоби. «Большое преимущество – возможность работать офлайн: вы можете делать все локально, на своем устройстве, этим он хорош для конфиденциальной работы. Также он удобен для пакетных преобразований; вы можете взять 1000 документов и распознать их все».
Еще он добавил: «Возможно, вам придется повысить качество изображения или увеличить контрастность, но с помощью ImageMagick вы можете резко поднять качество изображения».
Кроме того, Джейкоби порекомендовал подробное руководство по Tesseract и ImageMagick от журналиста-расследователя Wall Street Journal Чада Дэя, которое можно найти на Github по этой ссылке.
Хотя Tesseract и требует навыков программирования среднего уровня, Джейкоби заявил, что человек с опытом использования командной строки может один раз прийти, настроить программу и оставить журналисту две короткие строки кода, который тот затем сможет неоднократно использовать для извлечения данных. Для извлечения таблиц из файлов в формате PDF, Джейкоби порекомендовал приложение Tabula — хорошо известный инструмент с открытым исходным кодом, созданный журналистами из OpenNews и ProPublica. «По сути, он высвобождает данные из таблиц в файлах PDF и преобразует их в электронные таблицы», — пояснил он.
Tabula позволяет репортерам просто выделять прямоугольную область в таблицах на экранах своих компьютеров для извлечения оттуда нужных данных, а также автоматически обнаруживать таблицы, в том числе без видимых границ. Хотя Tabula требует «живых» или распознанных документов, он сказал, что инструмент хорошо работает и с текстовыми файлами, созданными при помощи Tesseract. «Кроме того, работать можно оффлайн, так что это очень безопасно», — отметил он.
Рован Филп (Rowan Philp) – лауреат многих журналистских наград, работавший более чем в двух десятках стран. В течение 15 лет Филп был главным репортером и главой лондонского бюро Sunday Times в Южной Африке. Сейчас он живет и работает в Бостоне.