Некоторое время назад мы организовали оцифровку 90-томного собрания сочинений Льва Николаевича Толстого, в этом нам помогали более 3 тысяч волонтеров. Публикаций об этом краудсорсинговом проекте было много, но ни одна из них не касалась технической части – именно о ней и пойдет речь в этой статье.
Итак, перед нами стояла задача перевести в форматы электронных книг (ePub, fb2, html, mobi), а также в PDF с текстовым слоем самое полное собрание сочинений Толстого. Оно выпускалось в течение 30 лет: с 1928 по 1958 год, каждый том выходил тиражом 5 тыс. экземпляров. До выпуска электронного издания это собрание сочинений не переиздавалось и уже стало труднодоступным раритетом. В 90-томник входят: художественные произведения (1–45 тома), дневники и записные книжки (46–58 тома), письма (59–90 тома). Был ещё секретный 91-й том, который состоял целиком из указателей и поэтому доставил нашим редакторам много
Оцифровать что угодно в наше время не проблема, когда под рукой нужные технологии, а вот вычитать такие большие объемы текста и исправить все неточности распознавания – это огромная работа, которая требует либо неограниченный ресурс времени
Собрание сочинений было отсканировано Российской государственной библиотекой в 2006 году, и нам для работы достались PDF-файлы (только изображения, без текстового слоя), один том (а это от 400 до 600 страниц) – один файл. Файлы вместе занимали всего-то навсего 4 Гб.
Поскольку выверять тексты предстояло волонтерам, мы решили разделить файлы на небольшие части («пакеты») – чтобы работа не казалась людям сложной и трудозатратной, чтобы было интересно и не скучно. Нам показалось, что пакет размером 20 страниц вполне удовлетворяет этим условиям. Итак, все PDF-файлы были автоматически «разрезаны» на части при помощи ABBYY Recognition Server, из каждого тома получилось около 20 файлов – в зависимости от изначального количества страниц, формат остался по-прежнему PDF. При разделении томов никакими другими условиями, кроме количества страниц, мы не руководствовались – так, в один пакет могло попасть окончание одного произведение и начало другого.
Дальше получившиеся пакеты нужно было распознать – это сделал наш сотрудник при помощи ABBYY FineReader (использовалась 11 версия). Обычно распознавание документов состоит из нескольких этапов. Сначала вы сканируете документ (или открываете в программе готовый скан, как было в нашем случае), потом программа анализирует документ и размечает области – изображения (они не распознаются, т.е. текст из них не извлекается), текст, таблицы, сноски. Дальше программа распознаёт всё, что должна распознать, потом у нас есть возможность проверить, всё ли получилось правильно (сравнить скан с результатом распознавания).
Итак, наш сотрудник «прогонял» сканы через FineReader и работал с разметкой областей (проверять правильность распознавания предстояло волонтерам). Тут и началось самое
Обложка одного из томов (стандартная разметка FineReader: область «изображение» выделяется красным цветом, «текст» – зеленым, «таблица» – фиолетовым)
Рукописные заметки Толстого
В некоторых произведениях, например, в «Азбуке», было очень много картинок и совсем мало текста – мы решили, что большая часть содержимого страниц будет оставлена изображениями. Так автоматически разметил области FineReader:
А так было удобно нам:
В выходных данных некоторых томов некоторые фамилии обведены рамками – такие места тоже помечались как изображения. Для дальнейшей работы с текстами было удобно, чтобы номера страниц были помечены областью «колонтитул». В одном из томов у Толстого приведены отрывки из «Повести временных лет» и других произведений на древнерусском языке. Этого языка FineReader не распознает, поэтому мы изначально подготовили таблицу, где такие фрагменты определены как изображения.
Размеченные таким образом и распознанные страницы сохранялись в собственном формате документа (или пакета) FineReader. Такой документ представляет папку, содержащую кучу файлов. Чтобы волонтеры могли скачать пакет одним файлом с сайта, документ архивировался в zip. Когда пакеты были готовы, их выложили на специально созданный сайт проекта, откуда волонтёры могли их скачать для проверки. Вкратце о том, как делали сам сайт, интересующиеся могут прочитать под спойлером.
Нужно было сделать платформу для совместной работы большого количества людей (волонтёров) в весьма сжатые сроки – на разработку самой платформы у нас было всего около месяца.
Платформу писали на Ruby в связке с СУБД MySQL, в качестве репозитория и управления разработкой использовалась система BitBucket. Составляющие платформы:
1. информационная часть (состоит из статических страниц о проекте, новости, FAQ и т.д.)
2. приложение (управляет пользователями, книгами, пакетами и процессами)
3. хранилище файлов в исходном, а также во всех промежуточных состояниях фрагментов книг.
Для надежного функционирования всего проекта в целом была использована архитектура на базе облачного хранилища Amazon с возможностью масштабирования.
По итогам проекта собралась вот такая техническая статистика:
• пиковая нагрузка – 6 запросов в секунду, в среднем 2-3
• пик – 9600 уникальных посетителей в первую неделю проекта, 3000 на третий день (20 июня)
• максимальная посещаемость 12.00-18.00, минимальная 4-6 часов утра.
Механика процесса выглядела так: волонтёр регистрировался на сайте www.readingtolstoy.ru, заходил в личный кабинет, где мог взять один пакет объемом 20 страниц для верификации. Пакеты выдавались пользователям по порядку их следования в томе – чтобы быстрее собирались целые тома.
Все участники получили лицензию к ABBYY FineReader 11 Professional Edition сроком действия до конца 2013 года. В программе уже были настроены языки распознавания, которые встречаются у Толстого – старорусская орфография, английский, французский, немецкий, греческий и т.д.
Перед волонтёрами ставилось две задачи. Первая – проверить правильность разметки областей. Внимательный читатель скажет – ведь это уже было сделано на прошлом этапе. Но при распознавании правильная разметка областей – это примерно половина успеха, поэтому волонтёры тоже должны были убедиться в том, что документ размечен правильно. Вторая – проверить неточно распознанные символы, сравнить результат распознавания с оригиналом и исправить ошибки. Ошибки были двух видов: неправильно распознанные символы в тексте (там, где качество скана было плохим) и в расположении абзацев – абзацы иногда склеивались или, наоборот, разбивались там, где не надо.
Ещё люди должны были корректировать разбивку страницы – в случае переноса слова с одной страницы на другую нужно было «склеивать» слово и оставлять его целиком на одной из страниц. В помощь волонтёрам давалась подробная инструкция.
Пакет нужно было проверить и вернуть на сайт в течение 48 часов. Как мы помним, участник скачивал заархивированный файл и в том же виде должен был его залить обратно на сайт. Если пакет не возвращался, он попадал в выдачу во второй раз. За проверенные пакеты начислялись баллы, самые активные участники получали призы – электронные книги Onyx, программы ABBYY FineReader и другие подарки. А главные герои отправились на двухдневную экскурсию в музей-усадьбу «Ясная Поляна», где могли лично пообщаться с праправнучкой писателя Фёклой Толстой и другими организаторами проекта.
По правде сказать, мы не думали, что наша инициатива получит такой активный отклик среди читателей Толстого, но регистрироваться люди начали уже во время пресс-конференции, посвященной открытию сайта проекта, а всё собрание сочинений проверили всего за две недели.
Первый этап проекта привлёк 1600 участников.
Когда мы стали проверять пакеты, качество работы оказалось неоднородным. Большинство волонтеров подошли к делу ответственно, но были и ошибки. После проверки большей части пакетов начался второй тур – проверка тех же самых пакетов так называемыми «аудиторами».
Аудиторами могли стать как участники первого тура, хорошо справившиеся с работой, так и новые волонтёры. Все претенденты должны были пройти тестирование, которое включало вопросы, связанные с верификацией текстов. Аудиторы проверяли готовые пакеты, исправляли ошибки и выставляли участникам первого тура дополнительные оценки, на которые потом обращали внимание организаторы.
После этого пакеты поступали в специальную базу на сайте. Когда были готовы все пакеты из одного тома, администратор проекта видел это, скачивал все пакеты тома с сайта и собирал обратно в единый документ (всё ещё в формате FineReader) с помощью специальной утилиты, которую написали наши разработчики. Потом наш сотрудник проверял, правильно ли собрался том, не сбита ли нумерация страниц и т.п. После этого готовый том передавался обратно администратору.
Хотя качество работы аудиторов было выше всяких похвал, мы все же хотели перестраховаться и устроили третий тур проверки текстов – на этот раз целыми томами. Из числа волонтеров мы сами выбрали 30 человек, хорошо зарекомендовавших себя на первых этапах, – они стали «редакторами», кроме того, на этом этапе к нам присоединилось небольшое количество новых волонтеров – лингвистов и профессиональных редакторов.
Редактор мог брать том только целиком, на проверку давалась одна неделя, по истечении которой человек должен был выгрузить документ обратно на сайт. Если редактор не успевал проверить том целиком, он указывал количество верифицированных страниц и загружал том на сайт. В этом туре проекта волонтеры работали так хорошо, что даже находили фактические ошибки, допущенные в бумажном издании – например, в выходных данных одного из томов были неправильно указаны инициалы одного из редакторов.
После третьего этапа проверки администратор экспортировал тома в формат MS Word и они отправлялись на проверку нашим штатным редакторам. Редакторы снова вычитывали файлы, исправления вносились как в Word-файл, так и в исходный пакет FineReader (для облегчения последующего сохранения из него в другие форматы).
По итогам проекта нам нужно было получить файлы таких типов:
1. PDF с текстовым слоем
2. Html, а также файлы форматов FB2, epub, mobi для электронных книг (на этом этапе к работе подключились наши партнеры из компании WEXLER, которые и занимались конвертацией полученных нами файлов в форматы электронных книг. Подробнее об этой работе – в статье руководителя центра разработки ПО компании WEXLER Саттара Гюльмамедова.
Ну и немного об итогах. В проекте приняли участие 3249 волонтеров из 49 стран мира. Всего по итогам работ получилось 670 книг, из которых 91 идентичны томам оригинального собрания сочинений и 579 произведений, «извлеченных» из томов. Всего это 2084 файла. Для 91-го тома была сделана только html-версия, поскольку этот указатель не будет интересен в форме электронной книги, а для 9 произведений не стали делать fb2-версию в силу некоторых ограничений формата.
Все электронные книги выложены на официальном портале, посвященном Толстому. А на сайте проекта www.readingtolstoy.ru сейчас размещена интерактивная карта, где каждый, кто скачал произведение Льва Николаевича Толстого, может отметить себя – в результате получается небезынтересная статистика по самым популярным среди пользователей произведениям и по странам и регионам с самими активными читателями.
Конечно, главная цель оцифровки собрания сочинений Толстого – предоставить доступ к наследию писателя всем читателям, но на этом польза не заканчивается. Тексты Толстого в электронном виде представляют большой интерес для исследователей-лингвистов. Об одном из таких исследований мы надеемся рассказать вам в одной из следующих статей.
Комментарии (17)
ishevchuk
04.08.2015 13:04+12Вы и волонтеры проделали большую работу!
По результатам этой работы получили ли вы фидбэк от волонтеров и добавились ли какие-то улучшения/фишечки в продукты ABBYY?
К примеру, стало понятно, что вот это сделано неудобно при редактировании больших объемов и в новой версии было (или планируется) улучшить?luciana
05.08.2015 12:57В версию FineReader 12, готовившуюся параллельно с проектом «Толстой», успели войти замечания по процессу верификации неуверенно распознанных символов (в части Usability и в части добавления возможностей форматирования и ввода неклавиатурных символов в диалоге Проверка). Ещё в стандартном наборе языков распознавания наконец-то появился «Русский с ударениями».
Среди планов на будущее — те проблемы, с которыми столкнулись скорее редакторы при подготовке электронных книг, чем волонтеры: упрощение структуры выходного Word документа, работа со сносками и пр.
zigrus
04.08.2015 17:54+2почему том 91 с указателями не дополнили гиперссылками?
было бы удобней пользоваться
что то вроде карты сайтаluciana
05.08.2015 12:55Все книги 90-томника сделаны в виде отдельных томов и произведений. К тому же, тома размещаются и на других площадках, а это означает, что тогда бы нам пришлось делать свою версию каждого тома для каждой из них. Кроме того, расположение книг может измениться со временем, а это значит, что и ссылки на них поменяются. Поэтому мы приняли решение не делать гиперссылки.
Awake
05.08.2015 07:40+1По «Война и мир» сразу вопрос: почему бы перевод с французского не поместить во всплывающее окно рядом с текстом? В примечании его можно оставить сколь угодно, но вот всплывающие подсказки с переводом были бы очень кстати
luciana
05.08.2015 12:55+1Весь 90-томник готовился под стандартные форматы электронных книг: epub, fb2 и mobi. Отображение комментариев во всплывающих окнах зависит не от формата, а от конкретного разработчика приложения для чтения. Поэтому, в зависимости от установленного программного обеспечения на устройстве, Вы можете видеть комментарии во всплывающих окнах, на каждой странице после текста или в конце книги.
alkresin
05.08.2015 09:27+3Тексты Толстого в электронном виде представляют большой интерес для исследователей-лингвистов. Об одном из таких исследований мы надеемся рассказать вам в одной из следующих статей.
Заинтриговали. Жду.
shurik2533
11.08.2015 12:09+2Это супер-круто! Вот было бы здорово иметь библиотеку всей клиссики в таком же качественном виде. Да что уж там классика… Даешь всемирную библиотеку!
dmitryredkin
04.09.2015 17:16Я конечно понимаю, что параметры распознавания диктовались конечными форматами, но почему бы ту же обложку, к примеру, хотя бы для внутреннних целей, не сохранять в каком-нибудь PDF-подобном формате, где текст подкладывается под картинку?
NeoCode
Скажите пожалуйста, есть ли в FineReader такая возможность, как ограничение набора шрифтов при генерации документа?
Допустим, необходимо распознать книгу. Обычно в книгах не используют все шрифты какие только существуют, а реально пользуются очень ограниченным набором: основным шрифтом (иногда его же — жирным и/или курсивом), и шрифтами для заголовков (которые сами по себе являются отдельным элементом — то есть текст, да не совсем текст, это бы тоже нужно распознавать). Иногда еще моноширинный шрифт для кода (если книга по программированию), и т.п. Итого не более 5 шрифтов на всю книгу.
Хотелось бы, чтобы была возможность учитывать это при распознавании и принудительно ограничивать количество шрифтов, возможно вручную (какое-то окно со списком распознанных шрифтов, статистика по ним и возможность «упростить» форматирование прямо оттуда путем замены)
luciana
Да есть такая возможность.
Можно выбрать, какие шрифты использовать для распознавания (из тех, что установлены на машине у пользователя) в
Меню> Сервис > Настройки на закладке «Распознать».
http://help.abhttp://help.abbyy.com/FineReader/FineReader12/Russian/Recognition/RecOptions.htm#Fonts
luciana
Ещё есть инструмент «Редактор стилей», в нём можно посмотреть список используемых стилей и шрифтов, склеить некоторые стили в один, и поменять шрифты.
Меню> Сервис >Редактор стилей